Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Muskalla2008-04-17 12:32:47 +0000
committerBenjamin Muskalla2008-04-17 12:32:47 +0000
commit965c8508cd5f4cb2f3b0ff47001cb53354ef99ab (patch)
treeca62320b628fcc3606bee57e7b6dbf75a4185afb /bundles/org.eclipse.rap.ui/schema
parent764219da5a998d6746380e886285f6c5e7c8d519 (diff)
downloadorg.eclipse.rap-965c8508cd5f4cb2f3b0ff47001cb53354ef99ab.tar.gz
org.eclipse.rap-965c8508cd5f4cb2f3b0ff47001cb53354ef99ab.tar.xz
org.eclipse.rap-965c8508cd5f4cb2f3b0ff47001cb53354ef99ab.zip
initial import of ui bundle
Diffstat (limited to 'bundles/org.eclipse.rap.ui/schema')
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/acceleratorConfigurations.exsd163
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/acceleratorScopes.exsd167
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/acceleratorSets.exsd206
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/actionDefinitions.exsd164
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/actionSetPartAssociations.exsd127
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/actionSets.exsd604
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/activities.exsd368
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/activitySupport.exsd302
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/bindings.exsd297
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/browserSupport.exsd127
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/commandImages.exsd169
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/commands.exsd864
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/commonAction.exsd173
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/commonExpression.exsd274
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/contexts.exsd143
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/decorators.exsd282
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/dropActions.exsd167
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/editorActions.exsd559
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/editors.exsd336
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/elementFactories.exsd167
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/encodings.exsd125
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/exportWizards.exsd254
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/fontDefinitions.exsd193
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/handlers.exsd305
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/helpSupport.exsd121
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/importWizards.exsd251
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/internalTweaklets.exsd172
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/intro.exsd204
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/keywords.exsd136
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/menus.exsd958
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/newWizards.exsd337
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/perspectiveExtensions.exsd327
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/perspectives.exsd180
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/popupMenus.exsd637
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/preferencePages.exsd195
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/preferenceTransfer.exsd318
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/presentationFactories.exsd134
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/propertyPages.exsd295
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/services.exsd235
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/splashHandlers.exsd164
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/startup.exsd123
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/statusHandlers.exsd267
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/systemSummarySections.exsd142
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/themes.exsd695
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/viewActions.exsd485
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/views.exsd308
-rwxr-xr-xbundles/org.eclipse.rap.ui/schema/workingSets.exsd192
47 files changed, 13412 insertions, 0 deletions
diff --git a/bundles/org.eclipse.rap.ui/schema/acceleratorConfigurations.exsd b/bundles/org.eclipse.rap.ui/schema/acceleratorConfigurations.exsd
new file mode 100755
index 0000000000..74dfe4bb65
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/acceleratorConfigurations.exsd
@@ -0,0 +1,163 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="acceleratorConfigurations" name="Accelerator Configurations"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+&lt;b&gt;WARNING: This extension point is DEPRECATED.&lt;/b&gt;&lt;br&gt;
+Do not use this extension point, it will be removed in future versions of this product.
+Instead, use the extension point &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;org.eclipse.ui.commands&lt;/a&gt;
+&lt;/p&gt;
+This extension point is used to register accelerator configuration extensions. Accelerator configurations are configurations to which accelerator sets may be registered. The workbench allows the user to select an accelerator configuration from the Workbench preference page. Only one accelerator configuration may be active at a time.
+&lt;p&gt;
+An accelerator configuration represents a general style or theme of accelerators for Workbench actions. For example, the Workbench provides the &quot;Emacs&quot; accelerator configuration. When the &quot;Emacs&quot; accelerator configuration is active, accelerators belonging to accelerator sets registered to the &quot;Emacs&quot; configuration are active. These accelerators are defined to mimic the accelerators in Emacs (a popular text editor amongst developers).
+&lt;p&gt;
+An accelerator set registers with an accelerator configuration by listing the configuration&apos;s id as the value of its &quot;configurationId&quot; attribute (see the Accelerator Sets extension point). Many accelerator sets can be registered to the same accelerator configuration.
+&lt;p&gt;
+Note the accelerator configuration name presented to the user is the same as the value of the attribute &quot;name&quot; of the extension element of org.eclipse.ui.acceleratorConfigurations extension point.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="acceleratorConfiguration" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="acceleratorConfiguration">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this accelerator configuration.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the accelerator configuration to be presented to the user.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string" use="required">
+ <annotation>
+ <documentation>
+ a short description of the accelerator configuration.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of an accelerator configuration extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.acceleratorConfigurations&quot;&gt;
+ &lt;acceleratorConfiguration
+ id=&quot;org.eclipse.ui.viAcceleratorConfiguration&quot;
+ name=&quot;VI&quot;
+ description=&quot;VI style accelerator configuration&quot;&gt;
+ &lt;/acceleratorConfiguration&gt;
+ &lt;acceleratorConfiguration
+ id=&quot;org.eclipse.ui.jonDoeAcceleratorConfiguration&quot;
+ name=&quot;Jon Doe&quot;
+ description=&quot;Personal accelerator configuration for Jon Doe&quot;&gt;
+ &lt;/acceleratorConfiguration&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides the Default and Emacs accelerator configurations.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/acceleratorScopes.exsd b/bundles/org.eclipse.rap.ui/schema/acceleratorScopes.exsd
new file mode 100755
index 0000000000..1a6e6a7870
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/acceleratorScopes.exsd
@@ -0,0 +1,167 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="acceleratorScopes" name="Accelerator Scopes"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+&lt;b&gt;WARNING: This extension point is DEPRECATED.&lt;/b&gt;&lt;br&gt;
+Do not use this extension point, it will be removed in future versions of this product.
+Instead, use the extension point &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;org.eclipse.ui.commands&lt;/a&gt;
+&lt;/p&gt;
+This extension point is used to register accelerator scope extensions. Accelerator scopes are scopes for which accelerator sets may be applicable. For example, if an accelerator set is applicable for the scope entitled &quot;Text Editor Scope&quot;, the accelerators of that accelerator set will only operate if the &quot;Text Editor Scope&quot; or one of its children is active (in other words, if the active part is a participating text editor).
+&lt;p&gt;
+An accelerator set declares what scope it is applicable for by listing the scope&apos;s id as the value of its &quot;scopeId&quot; attribute (see the Accelerator Sets extension point). Many accelerator sets can be applicable for the same accelerator scope.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="acceleratorScope" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="acceleratorScope">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this accelerator scope.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the accelerator scope.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string" use="required">
+ <annotation>
+ <documentation>
+ a short description of the accelerator scope.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentScope" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute which represents a scope which is active whenever this scope is active. For most scopes, org.eclipse.ui.globalScope will be the parent scope
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of an accelerator scope extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.acceleratorScopes&quot;&gt;
+ &lt;acceleratorScope
+ id=&quot;org.eclipse.ui.globalScope&quot;
+ name=&quot;Global&quot;
+ description=&quot;Action accelerator key applicable to all views and editors unless explicitly overridden.&quot;&gt;
+ &lt;/acceleratorScope&gt;
+ &lt;acceleratorScope
+ id=&quot;org.eclipse.ui.javaEditorScope&quot;
+ name=&quot;Java Editor&quot;
+ description=&quot;Action accelerator key applicable only when java editor active.&quot;
+ parentScope=&quot;org.eclipse.ui.globalScope&quot;&gt;
+ &lt;/acceleratorScope&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The method public IKeyBindingService getKeyBindingService() was added to IEditorSite.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides the Global accelerator scope and the Text Editor accelerator scope.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/acceleratorSets.exsd b/bundles/org.eclipse.rap.ui/schema/acceleratorSets.exsd
new file mode 100755
index 0000000000..50bb681150
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/acceleratorSets.exsd
@@ -0,0 +1,206 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="acceleratorSets" name="Accelerator Sets"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+&lt;b&gt;WARNING: This extension point is DEPRECATED.&lt;/b&gt;&lt;br&gt;
+Do not use this extension point, it will be removed in future versions of this product.
+Instead, use the extension point &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;org.eclipse.ui.commands&lt;/a&gt;
+&lt;/p&gt;
+This extension point is used to register accelerator set extensions. Accelerator sets are just what the name implies, sets of accelerators. An accelerator is an association between one or more sequences of accelerator keys and a workbench action. An accelerator key sequence may be of length one or greater.
+&lt;p&gt;
+An accelerator set is registered with an accelerator configuration (see the Accelerator Configuration extension point) and is applicable for an accelerator scope (see the Accelerator Scope extension point).
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="acceleratorSet" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="acceleratorSet">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ <documentation>
+ @deprecated Please use the &quot;org.eclipse.ui.bindings&quot; extension point instead. Use the &lt;code&gt;key&lt;/code&gt; element.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="accelerator" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="configurationId" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that identifies the accelerator configuration to which this accelerator set is registered.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="scopeId" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that identifies the accelerator scope for which this accelerator set is applicable.
+@deprecated When migrating to the new bindings extension point, it is recommended that you change any occurrences of &quot;org.eclipse.ui.globalScope&quot; to &quot;org.eclipse.ui.contexts.window&quot;.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="accelerator">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ <documentation>
+ @deprecated Please use the &quot;org.eclipse.ui.bindings&quot; extension point instead. Use the &lt;code&gt;key&lt;/code&gt; element.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ the unique identifier of the action definition of the action associated with this accelerator. If the id is not specified this accelerator deletes any mappings with the same key. This is used to delete a key binding for a specific Locale.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="key" type="string" use="required">
+ <annotation>
+ <documentation>
+ an attribute representing the sequence(s) of accelerator keys used to perform the action associated with this accelerator. Sequences are separated by &apos;||&apos;, and individual keys in a sequence are separated by a space. A key may be modified by the CTRL, ALT, or SHIFT keys. Depending on keyboard layout, some keys (&apos;?&apos; for example) may need the SHIFT to be accessed but the accelerator should be specified without the SHIFT so it will be independent of keyboard layout. E.g. if CTRL+? is specified as an accelerator, the user may have to press CTRL+SHIFT+? depending on the keyboard layout.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="locale" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute which specifies a locale for which the accelerator is applicable. If this attribute is not specified, the accelerator is applicable for all locales.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="platform" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute which specifies a platform on which the accelerator is applicable. If this attribute is not specified, the accelerator is applicable on all platforms.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of an accelerator set extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.acceleratorSets&quot;&gt;
+ &lt;acceleratorSet
+ configurationId=&quot;org.eclipse.ui.exampleAcceleratorConfiguration&quot;
+ scopeId=&quot;org.eclipse.ui.globalScope&quot;&gt;
+ &lt;accelerator
+ id=&quot;org.eclipse.ui.ExampleActionA&quot;
+ key=&quot;CTRL+R CTRL+A&quot;&gt;
+ &lt;/accelerator&gt;
+ &lt;accelerator
+ id=&quot;org.eclipse.ui.ExampleActionB&quot;
+ key=&quot;CTRL+R CTRL+B&quot;&gt;
+ &lt;/accelerator&gt;
+ &lt;accelerator
+ id=&quot;org.eclipse.ui.ExampleActionC&quot;
+ key=&quot;CTRL+R CTRL+C || CTRL+SHIFT+DELETE&quot;&gt;
+ &lt;/accelerator&gt;
+ &lt;/acceleratorSet&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ More than one accelerator may be specified for the same action in the accelerator set but only one will be used.
+&lt;p&gt;
+If the locale and/or the platform is specified, the accelerator that better matches the current locale and platform will be used. The current locale is determined by the API Locale.getDefault() and the platform by the API SWT.getPlatform(). If the platform and/or the locale is specified and it does not match the current locale and/or platform, the accelerator is discarded. If accelerator A defines only the locale and B defines only the platform, B is used. If accelerator A defines &quot;ja&quot; as its locale and B defines &quot;ja_JP&quot;, B is used in case the current locale is &quot;ja_JP&quot;.
+&lt;p&gt;
+If two accelerators are defined in accelerators sets in different plugins, the chosen accelerator will depend on the plugins. If plugin A depends on B, the accelerators defined in B is used. If A and B don&apos;t depend on each other, they will be alphabetically sorted by the plugin id.
+&lt;p&gt;
+If two accelerators are defined in different scopes, the accelerator defined in the current scope will be used. If an accelerator is not defined in the current scope or one of its parents it is discarded. If an accelerator is defined in a parent and child scope, the one in the child is used.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides accelerator sets for the Default and Emacs accelerator configurations.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/actionDefinitions.exsd b/bundles/org.eclipse.rap.ui/schema/actionDefinitions.exsd
new file mode 100755
index 0000000000..6c42025655
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/actionDefinitions.exsd
@@ -0,0 +1,164 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="actionDefinitions" name="Action Definitions"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+&lt;b&gt;WARNING: This extension point is DEPRECATED.&lt;/b&gt;&lt;br&gt;
+Do not use this extension point, it will be removed in future versions of this product.
+Instead, use the extension point &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;org.eclipse.ui.commands&lt;/a&gt;
+&lt;/p&gt;
+This extension point is used to register action definitions. Accelerators (see the Accelerator Sets extension point) use action definitions to reference actions. An action associates itself with a given accelerator by registering with that accelerator&apos;s associated action definition. An action registers itself with an action definition by calling the setActionDefinitionId(String id) method and supplying the action definition&apos;s id as an argument.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="actionDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="actionDefinition">
+ <annotation>
+ <appInfo>
+ <meta.element deprecated="true"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this action.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ the name of the action as displayed to the user.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ a short description of the action to display to the user.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of an action definition extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.actionDefinitions&quot;&gt;
+ &lt;actionDefinition
+ id=&quot;org.eclipse.ui.file.save&quot;&gt;
+ &lt;/actionDefinition&gt;
+ &lt;actionDefinition
+ id=&quot;org.eclipse.ui.file.saveAll&quot;&gt;
+ &lt;/actionDefinition&gt;
+ &lt;actionDefinition
+ id=&quot;org.eclipse.ui.file.close&quot;&gt;
+ &lt;/actionDefinition&gt;
+ &lt;actionDefinition
+ id=&quot;org.eclipse.ui.file.closeAll&quot;&gt;
+ &lt;/actionDefinition&gt;
+ &lt;actionDefinition
+ id=&quot;org.eclipse.ui.file.print&quot;&gt;
+ &lt;/actionDefinition&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The methods public void setActionDefinitionId(String id) and public String getActionDefinitionId() have been added to IAction.
+&lt;p&gt;
+&lt;B&gt;&lt;font color=&quot;#FF0000&quot;&gt;NOTE&lt;/font&gt; -&lt;/b&gt; other attributes may be added in the future, as needed.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides many action definitions.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/actionSetPartAssociations.exsd b/bundles/org.eclipse.rap.ui/schema/actionSetPartAssociations.exsd
new file mode 100755
index 0000000000..9d695f9d3c
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/actionSetPartAssociations.exsd
@@ -0,0 +1,127 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="actionSetPartAssociations" name="Action Set Part Associations"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to define an action set which should be added to a perspective when a part (view or editor) is opened in the perspective.
+In the case of an editor, the action set will remain visible while the editor is the current editor.
+In the case of a view, the action set will be visible when the view is the active part.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="actionSetPartAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="actionSetPartAssociation">
+ <complexType>
+ <sequence>
+ <element ref="part" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="targetID" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the action set (as specified in the
+registry) which is to be associated with particular workbench
+views and/or editors.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.actionSets/actionSet/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="part">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the part (view or editor) to be associated with the action set.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of an action set part association (note the subelement and the way attributes are used):
+
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.actionSetPartAssociations&quot;&gt;
+ &lt;actionSetPartAssociation targetID=&quot;org.eclipse.jdt.ui.refactoring.actionSet&quot;&gt;
+ &lt;part id=&quot;org.eclipse.jdt.ui.PackageExplorer&quot;/&gt;
+ &lt;part id=&quot;org.eclipse.jdt.ui.CompilationUnitError&quot;/&gt;
+ &lt;/actionSetPartAssociation&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+
+In the example above, a view or editor are associated with the refactoring action set.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The user may override these associations using the customize perspective dialog. Regardless of these associations,
+action sets which the user turns off will never appear and action sets which the user turns on will always be visible.
+ </documentation>
+ </annotation>
+
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/actionSets.exsd b/bundles/org.eclipse.rap.ui/schema/actionSets.exsd
new file mode 100755
index 0000000000..80188ac36a
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/actionSets.exsd
@@ -0,0 +1,604 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="actionSets" name="Action Sets"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+This extension point is used to add menus, menu items
+and toolbar buttons to the common areas in the Workbench
+window. These contributions are collectively known
+as an &lt;i&gt;action set&lt;/i&gt; and appear within the
+Workbench window by the user customizing a perspective.
+&lt;/p&gt;
+&lt;p&gt;
+You can now use &lt;a href=&quot;org_eclipse_ui_menus.html&quot;&gt;org.eclipse.ui.menus&lt;/a&gt; to place commands in menus and toolbars as well.
+&lt;/p&gt;
+&lt;p&gt;
+There is an implementation limitation which currently affects action sets. It is important to define the entire menu structure that is to be referenced within the action set. So, for example, if another action set defines a menu called &quot;example&quot;, it is not possible to rely on &quot;example&quot; existing. It is necessary to redefine the &quot;example&quot; menu in every action set that wishes to use it.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="commonAction.exsd"/>
+
+ <include schemaLocation="commonExpression.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="actionSet" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="actionSet">
+ <annotation>
+ <documentation>
+ This element is used to define a group of actions and/or menus.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="menu" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier for this action set.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name used by the Workbench to represent this action set to the user.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="visible" type="boolean">
+ <annotation>
+ <documentation>
+ an optional attribute indicating whether the action set is initially visible when a perspective is open. This option is only honoured when the user opens a perspective which has not been customized. The user can override this option from the &quot;Customize Perspective Dialog&quot;. This attribute should be used with great care so as not to overwhelm the user with too many actions.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ a translatable description used by the Workbench to represent this action set to the user.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="action">
+ <annotation>
+ <documentation>
+ This element defines an action that the user can invoke in the UI.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <choice>
+ <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+ </choice>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used as a reference for this action.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name used either as the menu item text or toolbar button label. The name can include mnenomic information.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="accelerator" type="string">
+ <annotation>
+ <documentation>
+ &lt;b&gt;&lt;font color=&quot;#FF0000&quot;&gt;Deprecated:&lt;/font&gt;&lt;/b&gt; Use the &lt;samp&gt;definitionId&lt;/samp&gt; attribute instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="definitionId" type="string">
+ <annotation>
+ <documentation>
+ Specifies the command that this action will handle. By specifying and action, the key binding service can assign a key sequence to this action. See the extension point &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;org.eclipse.ui.commands&lt;/a&gt; for more information.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="menubarPath" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) used to specify the location of this action in the menu bar.
+Each token in the path, except the last one, must represent a valid identifier of an existing menu in the hierarchy. The last token represents the named group into which this action will be added. If the path is omitted, this action will not appear in the menu bar.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="toolbarPath" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) that is used to specify the location of this action in the toolbar. The first token represents the toolbar identifier (with &quot;Normal&quot; being the default toolbar), while the second token is the named group within the toolbar that this action will be added to. If the group does not exist in the toolbar, it will be created.
+If toolbarPath is omitted, the action will not appear in the toolbar.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context.
+If omitted and the action appears in the toolbar, the Workbench will use a placeholder icon. The path is relative to the location of the plugin.xml file of the contributing plug-in. The icon will appear in toolbars but not in menus. Enabled actions will be represented in menus by the hoverIcon.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="disabledIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the action is disabled. If omitted, the normal icon will simply appear greyed out. The path is relative to the location of the plugin.xml file of the contributing plug-in. The disabled icon will appear in toolbars but not in menus. Icons for disabled actions in menus will be supplied by the OS.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="hoverIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the mouse pointer is over the action. If omitted, the normal icon will be used. The path is relative to the location of the plugin.xml file of the contributing plug-in.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="tooltip" type="string">
+ <annotation>
+ <documentation>
+ a translatable text representing the action&apos;s tool tip. Only used if the action appears in the toolbar.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContextId" type="string">
+ <annotation>
+ <documentation>
+ a unique identifier indicating the help context for this action. If the action appears as a menu item, then pressing F1 while the menu item is highlighted will display help.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="style" use="default" value="push">
+ <annotation>
+ <documentation>
+ an attribute to define the user interface style type for the action. If omitted, then it is &lt;samp&gt;push&lt;/samp&gt; by default. The attribute value will be one of the following:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;push&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a regular menu item or tool item.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;radio&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a radio style menu item or tool item. Actions with the radio style within the same menu or toolbar group behave as a radio set. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;toggle&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a checked style menu item or as a toggle tool item. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;pulldown&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a cascading style menu item or as a drop down menu beside the tool item.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="push">
+ </enumeration>
+ <enumeration value="radio">
+ </enumeration>
+ <enumeration value="toggle">
+ </enumeration>
+ <enumeration value="pulldown">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="state" type="boolean">
+ <annotation>
+ <documentation>
+ an optional attribute indicating the initial state (either &lt;samp&gt;true&lt;/samp&gt; or &lt;samp&gt;false&lt;/samp&gt;). Used only when the &lt;samp&gt;style&lt;/samp&gt; attribute has the value &lt;samp&gt;radio&lt;/samp&gt; or &lt;samp&gt;toggle&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="pulldown" type="boolean">
+ <annotation>
+ <documentation>
+ &lt;b&gt;&lt;font color=&quot;#FF0000&quot;&gt;Deprecated:&lt;/font&gt;&lt;/b&gt; Use the &lt;samp&gt;style&lt;/samp&gt; attribute with the value &lt;samp&gt;pulldown&lt;/samp&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ a fully qualified name of a class which implements &lt;samp&gt;org.eclipse.ui.IWorkbenchWindowActionDelegate&lt;/samp&gt; or &lt;samp&gt;org.eclipse.ui.IWorkbenchWindowPulldownDelegate&lt;/samp&gt;. The latter should be implemented in cases where the &lt;samp&gt;style&lt;/samp&gt; attribute has the value &lt;samp&gt;pulldown&lt;/samp&gt;. This class is the handler responsible for performing the action. If the &lt;samp&gt;retarget&lt;/samp&gt; attribute is true, this attribute is ignored and should not be supplied.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IWorkbenchWindowActionDelegate"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="retarget" type="boolean">
+ <annotation>
+ <documentation>
+ an optional attribute to retarget this action. When true, view and editor parts may supply a handler for this action using the standard mechanism for setting a global action handler on their site using this action&apos;s identifier. If this attribute is true, the &lt;samp&gt;class&lt;/samp&gt; attribute should not be supplied.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="allowLabelUpdate" type="boolean">
+ <annotation>
+ <documentation>
+ optional attribute indicating whether the retarget action allows the handler to override it&apos;s label and tooltip. Only applies if &lt;samp&gt;retarget&lt;/samp&gt; attribute is true.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="enablesFor" type="string">
+ <annotation>
+ <documentation>
+ a value indicating the selection count which must be met to enable the action. If specified and the condition is not met, the action is disabled. If omitted, the action enablement state is not affected. The following attribute formats are supported:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;!&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;?&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 or 1 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 1 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;multiple, 2+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 2 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;n&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- a precise number of items selected.a precise number of items selected.&amp;nbsp;
+ For example: enablesFor=&amp;quot; 4&amp;quot; enables the action only when 4
+ items are selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;*&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- any number of items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="mode">
+ <annotation>
+ <documentation>
+ For actions appearing in a toolbar, &lt;code&gt;FORCE_TEXT&lt;/code&gt; will show text even if there is an icon. See ActionContribuitonItem.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="FORCE_TEXT">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <documentation>
+ A parameter element to be used within an IExecutableExtension element. This will be passed as initialization data to the instantiated class.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter name
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter value
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation>
+ <documentation>
+ The element version of the &lt;code&gt;class&lt;/code&gt; attribute. This is used when the class implements &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt; and there is parameterized data that you wish used in its initialization.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ A class that implements &lt;code&gt;org.eclipse.ui.IWorkbenchWindowActionDelegate&lt;/code&gt;. It may also implement &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of an action set (note
+the sub-elements and the way attributes are used):
+
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point = &quot;org.eclipse.ui.actionSets&quot;&gt;
+ &lt;actionSet
+ id=&quot;com.xyz.actionSet&quot;
+ label=&quot;My Actions&quot;&gt;
+ &lt;menu
+ id=&quot;com.xyz.xyzMenu&quot;
+ label=&quot;XYZ Menu&quot;
+ path=&quot;additions&quot;&gt;
+ &lt;separator name=&quot;group1&quot;/&gt;
+ &lt;separator name=&quot;option1&quot;/&gt;
+ &lt;/menu&gt;
+
+ &lt;action
+ id=&quot;com.xyz.runXYZ&quot;
+ label=&quot;&amp;amp;Run XYZ Tool&quot;
+ style=&quot;toggle&quot;
+ state=&quot;false&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/group1&quot;
+ icon=&quot;icons/runXYZ.gif&quot;
+ tooltip=&quot;Run XYZ Tool&quot;
+ helpContextId=&quot;com.xyz.run_action_context&quot;
+ class=&quot;com.xyz.actions.RunXYZ&quot;
+ enablesFor=&quot;1&quot;&gt;
+ &lt;selection class=&quot;org.eclipse.core.resources.IFile&quot; name=&quot;*.java&quot;/&gt;
+ &lt;/action&gt;
+ &lt;action
+ id=&quot;com.xyz.runABC&quot;
+ label=&quot;&amp;amp;Run ABC Tool&quot;
+ style=&quot;push&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/group1&quot;
+ toolbarPath=&quot;Normal/XYZ&quot;
+ icon=&quot;icons/runABC.gif&quot;
+ tooltip=&quot;Run ABC Tool&quot;
+ helpContextId=&quot;com.xyz.run_abc_action_context&quot;
+ retarget=&quot;true&quot;
+ allowLabelUpdate=&quot;true&quot;&gt;
+ &lt;enablement&gt;
+ &lt;and&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
+ &lt;not&gt;
+ &lt;objectState name=&quot;extension&quot; value=&quot;java&quot;/&gt;
+ &lt;/not&gt;
+ &lt;/and&gt;
+ &lt;/enablement&gt;
+ &lt;/action&gt;
+
+ &lt;action
+ id=&quot;com.xyz.runDEF&quot;
+ label=&quot;&amp;amp;Run DEF Tool&quot;
+ style=&quot;radio&quot;
+ state=&quot;true&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/option1&quot;
+ icon=&quot;icons/runDEF.gif&quot;
+ tooltip=&quot;Run DEF Tool&quot;
+ class=&quot;com.xyz.actions.RunDEF&quot;
+ helpContextId=&quot;com.xyz.run_def_action_context&quot;&gt;
+ &lt;/action&gt;
+ &lt;action
+ id=&quot;com.xyz.runGHI&quot;
+ label=&quot;&amp;amp;Run GHI Tool&quot;
+ style=&quot;radio&quot;
+ state=&quot;false&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/option1&quot;
+ icon=&quot;icons/runGHI.gif&quot;
+ tooltip=&quot;Run GHI Tool&quot;
+ class=&quot;com.xyz.actions.RunGHI&quot;
+ helpContextId=&quot;com.xyz.run_ghi_action_context&quot;&gt;
+ &lt;/action&gt;
+ &lt;action
+ id=&quot;com.xyz.runJKL&quot;
+ label=&quot;&amp;amp;Run JKL Tool&quot;
+ style=&quot;radio&quot;
+ state=&quot;false&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/option1&quot;
+ icon=&quot;icons/runJKL.gif&quot;
+ tooltip=&quot;Run JKL Tool&quot;
+ class=&quot;com.xyz.actions.RunJKL&quot;
+ helpContextId=&quot;com.xyz.run_jkl_action_context&quot;&gt;
+ &lt;/action&gt;
+ &lt;/actionSet&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In the example above, the specified action set, named &quot;My Actions&quot;, is not initially visible within each perspective because the &lt;samp&gt;visible&lt;/samp&gt; attribute is not specified.
+&lt;/p&gt;
+&lt;p&gt;
+The XYZ action will appear as a check box menu item, initially not checked. It is enabled only if the selection count is 1 and if the selection contains a Java file resource.
+&lt;/p&gt;
+&lt;p&gt;
+The ABC action will appear both in the menu and on the toolbar. It is enabled only if the selection does not contain any Java file resources. Note also this is a label retarget action therefore it does not supply a &lt;samp&gt;class&lt;/samp&gt; attribute.
+&lt;/p&gt;
+&lt;p&gt;
+The actions DEF, GHI, and JKL appear as radio button menu items. They are enabled all the time, independent of the current selection state.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the class attribute must be the fully qualified name of a class that implements &lt;samp&gt;org.eclipse.ui.IWorkbenchWindowActionDelegate&lt;/samp&gt; or &lt;samp&gt;org.eclipse.ui.IWorkbenchWindowPulldownDelegate&lt;/samp&gt;. The latter should be implemented in cases where the &lt;samp&gt;style&lt;/samp&gt; attribute has the value &lt;samp&gt;pulldown&lt;/samp&gt;. This class is the handler responsible for performing the action. If the &lt;samp&gt;retarget&lt;/samp&gt; attribute is true, this attribute is ignored and should not be supplied. This class is loaded as late as possible to avoid loading the entire plug-in before it is really needed.
+&lt;p&gt;
+The enablement criteria for an action extension is initially defined by &lt;samp&gt;enablesFor&lt;/samp&gt;, and also either &lt;samp&gt;selection&lt;/samp&gt; or &lt;samp&gt;enablement&lt;/samp&gt;. However, once the action delegate has been instantiated, it may control the action enable state directly within its &lt;samp&gt;selectionChanged&lt;/samp&gt; method.
+&lt;p&gt;
+It is important to note that the workbench does not generate menus on a plug-in&apos;s behalf. Menu paths must reference menus that already exist.
+&lt;p&gt;
+Action and menu labels may contain special characters that encode mnemonics using the following rules:
+&lt;ol&gt;
+&lt;li&gt;
+Mnemonics are specified using the ampersand (&apos;&amp;amp;&apos;) character in front of a selected character in the translated text. Since ampersand is not allowed in XML strings, use &lt;samp&gt;&amp;amp;amp;&lt;/samp&gt; character entity.&lt;/li&gt;
+&lt;/ol&gt;
+If two or more actions are contributed to a menu or toolbar by a single extension the actions will appear in the reverse order of how they are listed in the plugin.xml file. This behavior is admittedly unintuitive. However, it was discovered after the Eclipse Platform API was frozen. Changing the behavior now would break every plug-in which relies upon the existing behavior.
+&lt;p&gt;
+The &lt;samp&gt;selection&lt;/samp&gt; and &lt;samp&gt;enablement&lt;/samp&gt; elements are mutually exclusive. The &lt;samp&gt;enablement&lt;/samp&gt; element can replace the &lt;samp&gt;selection&lt;/samp&gt; element using the sub-elements &lt;samp&gt;objectClass&lt;/samp&gt; and &lt;samp&gt;objectState&lt;/samp&gt;. For example, the following:
+&lt;pre&gt;
+ &lt;selection
+ class=&quot;org.eclipse.core.resources.IFile&quot;
+ name=&quot;*.java&quot;&gt;
+ &lt;/selection&gt;
+&lt;/pre&gt;
+can be expressed using:
+&lt;pre&gt;
+ &lt;enablement&gt;
+ &lt;and&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
+ &lt;objectState name=&quot;extension&quot; value=&quot;java&quot;/&gt;
+ &lt;/and&gt;
+ &lt;/enablement&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ Plug-ins may use this extension point to add new top level menus. Plug-ins can also define named groups which allow other plug-ins to contribute their actions into them.
+&lt;p&gt;
+Top level menus are created by using the following values
+for the path attribute:
+&lt;ul&gt;
+&lt;li&gt;additions - represents a group immediately to the left of the &lt;samp&gt;Window&lt;/samp&gt; menu.
+&lt;/ul&gt;
+Omitting the path attribute will result in adding the new menu into the additions menu bar group.
+&lt;/p&gt;
+&lt;p&gt;
+The default groups in a workbench window are defined in the
+&lt;samp&gt;IWorkbenchActionConstants&lt;/samp&gt; interface. These
+constants can be used in code for dynamic contribution.
+The values can also be copied into an XML file for fine
+grained integration with the existing workbench menus
+and toolbar.
+&lt;/p&gt;
+&lt;p&gt;
+Various menu and toolbar items within the workbench
+window are defined algorithmically. In these cases
+a separate mechanism must be used to extend the
+window. For example, adding a new workbench view
+results in a new menu item appearing in the
+Perspective menu. Import, Export, and New Wizards
+extensions are also added automatically to the window.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2000, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/activities.exsd b/bundles/org.eclipse.rap.ui/schema/activities.exsd
new file mode 100755
index 0000000000..be1a72df46
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/activities.exsd
@@ -0,0 +1,368 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="activities" name="Activities"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The &lt;code&gt;org.eclipse.ui.activities&lt;/code&gt; extension point is used to declare activities and associated elements. Activities are used by the platform to filter certain plugin contributions from the users view until such a time that they express interest in them. This allows Eclipse to grow dynamically based on the usage pattern of a user.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+ <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <element ref="activity"/>
+ <element ref="activityRequirementBinding"/>
+ <element ref="activityPatternBinding"/>
+ <element ref="category"/>
+ <element ref="categoryActivityBinding"/>
+ <element ref="defaultEnablement"/>
+ </sequence>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="activity">
+ <annotation>
+ <documentation>
+ This element is used to define activities. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the registry) is considered valid.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="enabledWhen" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ a translatable short description of this activity for display in the UI
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of this activity
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the translatable name of this activity for display in the UI
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="activityRequirementBinding">
+ <annotation>
+ <documentation>
+ This element allows one to bind activities to activities. The relationship is such that if the activityId is ever enabled then the requiredActivityId is enabled as well.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="requiredActivityId" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of required activity to bind
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/activity/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="activityId" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the activity to bind
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/activity/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="activityPatternBinding">
+ <annotation>
+ <documentation>
+ This element allows one to bind activities to patterns.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="activityId" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the activity to bind
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/activity/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="pattern" type="string" use="required">
+ <annotation>
+ <documentation>
+ the pattern to be bound. Patterns are regular expressions which match unique identifiers. Please see the Java documentation for &lt;code&gt;java.util.regex.Pattern&lt;/code&gt; for further details.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="isEqualityPattern" type="boolean">
+ <annotation>
+ <documentation>
+ if the pattern should be considered &quot;as is&quot;. This is an optional attribute and if ommited the value is false If this is false the pattern string will be compiled into a regular expression when determining whether or not a given identifier matches the pattern. If this is true, a direct equality comparison is performed instead.
+
+Since 3.4
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="category">
+ <annotation>
+ <documentation>
+ This element is used to define categories. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the registry) is considered valid.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ a translatable short description of this category for display in the UI
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of this category
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the translatable name of this category for display in the UI
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="categoryActivityBinding">
+ <annotation>
+ <documentation>
+ This element allows one to bind categories to activities.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="activityId" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the activity to bind
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/activity/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="categoryId" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the category to bind
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="defaultEnablement">
+ <annotation>
+ <documentation>
+ This element allows one to specify that a given activity should be enabled by default.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the activity
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/activity/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="enabledWhen">
+ <annotation>
+ <documentation>
+ &lt;p&gt;Contains a core expression used by the workbench handler proxy to determine when this handler is enabled without loading it.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="not"/>
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="instanceof"/>
+ <element ref="test"/>
+ <element ref="systemTest"/>
+ <element ref="equals"/>
+ <element ref="count"/>
+ <element ref="with"/>
+ <element ref="resolve"/>
+ <element ref="adapt"/>
+ <element ref="iterate"/>
+ <element ref="reference"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+3.0
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of several activity and category definitions as well as associated bindings.
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.activities&quot;&gt;
+ &lt;activity id=&quot;com.xyz.Activity&quot;
+ description=&quot;Filters contributions from com.xyz&quot;
+ name=&quot;My Activity&quot; /&gt;
+
+ &lt;activity id=&quot;com.xyz.OtherActivity&quot;
+ description=&quot;Filters other contributions from com.xyz&quot;
+ name=&quot;My Other Activity&quot; /&gt;
+ &lt;!-- other activity requires activity --&gt;
+ &lt;activityRequirementBinding activityId=&quot;com.xyz.OtherActivity&quot;
+ requiredActivityId=&quot;com.xyz.Activity&quot; /&gt;
+ &lt;category id=&quot;com.xyz.Category&quot;
+ description=&quot;com.xyz Activities&quot;
+ name=&quot;My Category&quot; /&gt;
+
+ &lt;!-- put the activity in the category --&gt;
+ &lt;categoryActivityBinding activityId=&quot;com.xyz.Activity&quot;
+ categoryId=&quot;com.xyz.Category&quot; /&gt;
+
+ &lt;!-- bind all contributions from plugin com.xyz --&gt;
+ &lt;activityPatternBinding id=&quot;com.xyz.Activity&quot;
+ pattern=&quot;com\.xyz/.*&quot; /&gt;
+
+ &lt;!-- bind my.contribution from plugin com.xyz.other --&gt;
+ &lt;activityPatternBinding id=&quot;com.xyz.OtherActivity&quot;
+ pattern=&quot;com\.xyz\.other/my.contribution&quot; /&gt;
+
+ &lt;!-- the same, but not with a regular expression, since the pattern
+ should match the id exactly anyway --&gt;
+ &lt;activityPatternBinding id=&quot;com.xyz.OtherActivity&quot;
+ isEqualityPattern=&quot;true&quot;
+ pattern=&quot;com.xyz.other/my.contribution&quot; /&gt;
+
+ &lt;!-- our activity should be enabled by default --&gt;
+ &lt;defaultEnablement id=&quot;com.xyz.Activity&quot; /&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+There is currently no public API for declaring activities or associated elements other than this extension point. The state of activities in the workbench is accessible via &lt;code&gt;org.eclipse.ui.IWorkbench.getActivitySupport()&lt;/code&gt;. From here you may query and update the set of currently enabled activities.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ There are no &quot;default activities&quot; provided by the workbench. Activities are intended to be defined at the product level, such as the Eclipse SDK, so as to tightly integrate all of the (known) components that product contains.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/activitySupport.exsd b/bundles/org.eclipse.rap.ui/schema/activitySupport.exsd
new file mode 100755
index 0000000000..40c8013860
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/activitySupport.exsd
@@ -0,0 +1,302 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="activitySupport" name="Activity Support"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;This extension point is used to register various support extensions relating to the activities infrastucture.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="triggerPoint"/>
+ <element ref="triggerPointAdvisor"/>
+ <element ref="triggerPointAdvisorProductBinding"/>
+ <element ref="categoryImageBinding"/>
+ <element ref="activityImageBinding"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="triggerPoint">
+ <annotation>
+ <documentation>
+ Specifies a trigger point. A trigger point is an identifer that is used by the activity engine to determine whether or not an action should cause the enablement of activities.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="hint" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier for this trigger point
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="hint">
+ <annotation>
+ <documentation>
+ &lt;p&gt;A hint represents some data that may be used by the eclipse infrastructure to determine the behaviour of the activity support relating to the hosting trigger point.&lt;/p&gt;
+&lt;p&gt;The following hints are &quot;well known&quot; and it is expected that trigger point advisors acknowledge them:
+&lt;dl&gt;
+&lt;dt&gt;interactive&lt;/dt&gt;&lt;dd&gt;Whether this trigger point is hint in an &quot;interactive&quot; way. Ie: it is the explicit result of an action undertaken by the user such as activating a wizard in the wizard dialog. Accepted values are &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;false&lt;/code&gt;&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier for this hint
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the value of this hint
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="triggerPointAdvisor">
+ <annotation>
+ <documentation>
+ A trigger point advisor is a policy mechanism that is consulted whenever the system undertakes an action that has disabled activities associated with it. It is the advisors responsibility to answer whether an action should proceed, and if it can, what activities to enable.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier for this trigger point advisor
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class implementing the &lt;code&gt;org.eclipse.ui.activities.ITriggerPointAdvisor&lt;/code&gt; interface.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.activities.ITriggerPointAdvisor"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="triggerPointAdvisorProductBinding">
+ <annotation>
+ <documentation>
+ Specifies a binding between a product and an advisor. These bindings determine which advisor is appropriate for the current product (as defined by &lt;code&gt;org.eclipse.core.runtime.Platform.getProduct()&lt;/code&gt;).
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="productId" type="string" use="required">
+ <annotation>
+ <documentation>
+ unique id of a product
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="triggerPointAdvisorId" type="string" use="required">
+ <annotation>
+ <documentation>
+ unique id of a trigger point advisor
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activitySupport/triggerPointAdvisor/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="categoryImageBinding">
+ <annotation>
+ <documentation>
+ This element allows binding of icons to categories These icons may be used by user interface components that wish to visualize categories in some way.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the id of the category to bind an icon to
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the icon that will be used for this category
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="activityImageBinding">
+ <annotation>
+ <documentation>
+ This element allows binding of icons to activities. These icons may be used by user interface components that wish to visualize activities in some way.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the id of the activity to bind an icon to
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.activities/activity/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the icon that will be used for this activity
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 3.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of a non-interactive trigger point:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.activitySupport&quot;&gt;
+ &lt;triggerPoint
+ id=&quot;com.example.xyz.myTriggerPoint&quot;&gt;
+ &lt;hint id=&quot;interactive&quot;
+ value=&quot;false&quot; /&gt;
+ &lt;/triggerPoint&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+
+The following is an example of a trigger point advisor bound to a particular product:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.activitySupport&quot;&gt;
+ &lt;triggerPointAdvisor
+ id=&quot;com.example.xyz.myTriggerPointAdvisor&quot;
+ class=&quot;com.example.xyz.AdvisorImpl&quot;/&gt;
+ &lt;triggerPointAdvisorProductBinding
+ productId=&quot;myProduct&quot;
+ triggerPointAdvisorId=&quot;com.example.xyz.myTriggerPointAdvisor&quot; /&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+
+The following is an example of binding images to activities and categories:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.activitySupport&quot;&gt;
+ &lt;activityImageBinding
+ id=&quot;some.activity.id&quot;
+ icon=&quot;icons/someIcon.gif&quot;/&gt;
+ &lt;categoryImageBinding
+ id=&quot;some.category.id&quot;
+ icon=&quot;icons/someIcon.gif&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the &lt;code&gt;class&lt;/code&gt; attribute of the triggerPointAdvisor tag must be the fully qualified name of a class that implements the &lt;code&gt;org.eclipse.ui.activities.ITriggerPointAdvisor&lt;/code&gt;.
+ </documentation>
+ </annotation>
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The workbench implementation (&lt;code&gt;org.eclipse.ui.activities.WorkbenchTriggerPointAdvisor&lt;/code&gt;) is available for clients to subclass and reuse.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/bindings.exsd b/bundles/org.eclipse.rap.ui/schema/bindings.exsd
new file mode 100755
index 0000000000..7a73a99ecd
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/bindings.exsd
@@ -0,0 +1,297 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="bindings" name="Bindings"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The &lt;code&gt;org.eclipse.ui.bindings&lt;/code&gt; extension point is used to declare bindings and schemes. Schemes are sets of one or more bindings. A binding is a mapping between a certain group of conditions, some user input and a triggered command.
+&lt;/p&gt;
+&lt;p&gt;
+All bindings require a trigger of some kind, a context in which they are active and scheme in which they exist. If you&apos;re not sure which context to chose, then just leave it blank. It will default to &lt;code&gt;&quot;org.eclipse.ui.contexts.window&quot;&lt;/code&gt; context. This context means that the binding will apply in any Eclipse main window. When the context becomes active, the binding will become active as well. Bindings from child contexts will override bindings from parent contexts. For more information about contexts, please see the &lt;code&gt;org.eclipse.ui.contexts&lt;/code&gt; extension point.
+&lt;/p&gt;
+&lt;p&gt;
+If a binding does not define a command identifier, then it is a deletion marker. This means that if all the conditions are met, it will cancel any bindings with the same trigger in the same context. This mechanism can be used, for example, to change a binding on a particular platform.
+&lt;/p&gt;
+&lt;p&gt;
+One type of binding is a &lt;code&gt;key&lt;/code&gt; binding (i.e., a keyboard shortcut). For example, binding &lt;code&gt;Ctrl+C&lt;/code&gt; to &lt;code&gt;Copy&lt;/code&gt; is considered a &lt;code&gt;key&lt;/code&gt; binding. The trigger for a key binding is a sequence of key strokes.
+&lt;/p&gt;
+&lt;p&gt;
+A scheme is a group of these bindings into a set that the end user can select. For example, a user might want to use the default scheme, but they might also want an Emacs-style scheme or a Brief-style scheme.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="scheme" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="key" 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="scheme">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+A scheme is a grouping of bindings that an end user can chose to use.
+&lt;/p&gt;
+&lt;p&gt;
+It is possible for schemes to inherit bindings from a parent scheme. This is intended to make it easier for plug-in developers to create customized binding sets. An active binding defined in a child scheme will always override an active binding in a parent scheme, if they have the same trigger. This technique is used to provide the Emacs scheme in the workbench.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier for this scheme.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name for this scheme, as it should be displayed to an end-user. This value should be translated.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ The description for this scheme, as it would be displayed to an end user. This value should be translated.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentId" type="string">
+ <annotation>
+ <documentation>
+ The identifier for the parent of this scheme. If there is no parent, then do not specify this attribute.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.bindings/scheme/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="key">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="commandId"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;A binding between some keyboard input and the triggering of a command.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </choice>
+ <attribute name="sequence" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+The key sequence for this binding. This key sequence should consist of one or more key strokes. Key strokes are separated by spaces. Key strokes consist of one or more keys held down at the same time. This should be zero or more modifier keys, and one other key. The keys are separated by the &lt;code&gt;+&lt;/code&gt; character.
+&lt;/p&gt;
+&lt;p&gt;
+The recognized modifiers keys are &lt;code&gt;M1&lt;/code&gt;, &lt;code&gt;M2&lt;/code&gt;, &lt;code&gt;M3&lt;/code&gt;, &lt;code&gt;M4&lt;/code&gt;, &lt;code&gt;ALT&lt;/code&gt;, &lt;code&gt;COMMAND&lt;/code&gt;, &lt;code&gt;CTRL&lt;/code&gt;, and &lt;code&gt;SHIFT&lt;/code&gt;. The &quot;M&quot; modifier keys are a platform-independent way of representing keys, and these are generally preferred. &lt;code&gt;M1&lt;/code&gt; is the &lt;code&gt;COMMAND&lt;/code&gt; key on MacOS X, and the &lt;code&gt;CTRL&lt;/code&gt; key on most other platforms. &lt;code&gt;M2&lt;/code&gt; is the &lt;code&gt;SHIFT&lt;/code&gt; key. &lt;code&gt;M3&lt;/code&gt; is the &lt;code&gt;Option&lt;/code&gt; key on MacOS X, and the &lt;code&gt;ALT&lt;/code&gt; key on most other platforms. &lt;code&gt;M4&lt;/code&gt; is the &lt;code&gt;CTRL&lt;/code&gt; key on MacOS X, and is undefined on other platforms.
+Since &lt;code&gt;M2+M3+&amp;lt;Letter&amp;gt;&lt;/code&gt; (&lt;code&gt;Alt+Shift+&amp;lt;Letter&amp;gt;&lt;/code&gt;) is reserved on MacOS X for writing special characters, such bindings are commonly undefined for &lt;code&gt;platform=&quot;carbon&quot;&lt;/code&gt; and redefined as &lt;code&gt;M1+M3+&amp;lt;Letter&amp;gt;&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+The actual key is generally specified simply as the ASCII character, in uppercase. So, for example &lt;code&gt;F&lt;/code&gt; or &lt;code&gt;,&lt;/code&gt; are examples of such keys. However, there are some special keys; keys that have no printable ASCII representation. The following is a list of the current special keys: &lt;code&gt;ARROW_DOWN&lt;/code&gt;, &lt;code&gt;ARROW_LEFT&lt;/code&gt;, &lt;code&gt;ARROW_RIGHT&lt;/code&gt;, &lt;code&gt;ARROW_UP&lt;/code&gt;, &lt;code&gt;BREAK&lt;/code&gt;, &lt;code&gt;BS&lt;/code&gt;, &lt;code&gt;CAPS_LOCK&lt;/code&gt;, &lt;code&gt;CR&lt;/code&gt;, &lt;code&gt;DEL&lt;/code&gt;, &lt;code&gt;END&lt;/code&gt;, &lt;code&gt;ESC&lt;/code&gt;, &lt;code&gt;F1&lt;/code&gt;, &lt;code&gt;F2&lt;/code&gt;, &lt;code&gt;F3&lt;/code&gt;, &lt;code&gt;F4&lt;/code&gt;, &lt;code&gt;F5&lt;/code&gt;, &lt;code&gt;F6&lt;/code&gt;, &lt;code&gt;F7&lt;/code&gt;, &lt;code&gt;F8&lt;/code&gt;, &lt;code&gt;F9&lt;/code&gt;, &lt;code&gt;F10&lt;/code&gt;, &lt;code&gt;F11&lt;/code&gt;, &lt;code&gt;F12&lt;/code&gt;, &lt;code&gt;F13&lt;/code&gt;, &lt;code&gt;F14&lt;/code&gt;, &lt;code&gt;F15&lt;/code&gt;, &lt;code&gt;FF&lt;/code&gt;, &lt;code&gt;HOME&lt;/code&gt;, &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;LF&lt;/code&gt;, &lt;code&gt;NUL&lt;/code&gt;, &lt;code&gt;NUM_LOCK&lt;/code&gt;, &lt;code&gt;NUMPAD_0&lt;/code&gt;, &lt;code&gt;NUMPAD_1&lt;/code&gt;, &lt;code&gt;NUMPAD_2&lt;/code&gt;, &lt;code&gt;NUMPAD_3&lt;/code&gt;, &lt;code&gt;NUMPAD_4&lt;/code&gt;, &lt;code&gt;NUMPAD_5&lt;/code&gt;, &lt;code&gt;NUMPAD_6&lt;/code&gt;, &lt;code&gt;NUMPAD_7&lt;/code&gt;, &lt;code&gt;NUMPAD_8&lt;/code&gt;, &lt;code&gt;NUMPAD_9&lt;/code&gt;, &lt;code&gt;NUMPAD_ADD&lt;/code&gt;, &lt;code&gt;NUMPAD_DECIMAL&lt;/code&gt;, &lt;code&gt;NUMPAD_DIVIDE&lt;/code&gt;, &lt;code&gt;NUMPAD_ENTER&lt;/code&gt;, &lt;code&gt;NUMPAD_EQUAL&lt;/code&gt;, &lt;code&gt;NUMPAD_MULTIPLY&lt;/code&gt;, &lt;code&gt;NUMPAD_SUBTRACT&lt;/code&gt;, &lt;code&gt;PAGE_UP&lt;/code&gt;, &lt;code&gt;PAGE_DOWN&lt;/code&gt;, &lt;code&gt;PAUSE&lt;/code&gt;, &lt;code&gt;PRINT_SCREEN&lt;/code&gt;, &lt;code&gt;SCROLL_LOCK&lt;/code&gt;, &lt;code&gt;SPACE&lt;/code&gt;, &lt;code&gt;TAB&lt;/code&gt; and &lt;code&gt;VT&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+We also understand some alternative names for some common special keys. For example, we accept both &lt;code&gt;ESC&lt;/code&gt; and &lt;code&gt;ESCAPE&lt;/code&gt;, and &lt;code&gt;CR&lt;/code&gt;, &lt;code&gt;ENTER&lt;/code&gt; and &lt;code&gt;RETURN&lt;/code&gt; are all the same.
+&lt;/p&gt;
+&lt;p&gt;
+It is also strongly recommended that you keep the key sequences short. One or two is the most you should need. Use contexts to give key sequences different meanings in different parts of your application. At the very most, you should not use any key sequence that contains more than four key strokes.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="schemeId" type="string" use="required">
+ <annotation>
+ <documentation>
+ The identifier of the scheme in which this key binding is active.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.bindings/scheme/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="contextId" type="string" use="default" value="org.eclipse.ui.contexts.window">
+ <annotation>
+ <documentation>
+ The identifier of the context in which this key binding is active. Please see the &lt;code&gt;org.eclipse.ui.contexts&lt;/code&gt; extension point. If this is not specified, then it defaults to &lt;code&gt;org.eclipse.ui.contexts.window&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.contexts/context/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="commandId" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+The identifier of the command which should be executed when this binding is triggered.
+&lt;/p&gt;
+&lt;p&gt;
+If no command identifier is specified, this is a deletion marker. This means that any binding in the same context with the same sequence, platform and locale will become inactive when this binding becomes active. If the platform or locale on a deletion is not specified, then it matches any platform or locale.
+&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="platform" type="string">
+ <annotation>
+ <documentation>
+ The platform on which this binding applies. The platform should be specified in the same way as the string from &lt;code&gt;SWT.getPlatform()&lt;/code&gt;. For example, the following strings are considered valid: &lt;code&gt;win32&lt;/code&gt;, &lt;code&gt;gtk&lt;/code&gt;, &lt;code&gt;motif&lt;/code&gt;, &lt;code&gt;carbon&lt;/code&gt; and &lt;code&gt;photon&lt;/code&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="locale" type="string">
+ <annotation>
+ <documentation>
+ The locale on which this bindings applies. This is useful for changing bindings that conflict with locale-specific input method editors (IMEs). The locale is specified in the same way as &lt;code&gt;Locale.toString()&lt;/code&gt;. For example, &lt;code&gt;&quot;en&quot;&lt;/code&gt; or &lt;code&gt;&quot;en_CA&quot;&lt;/code&gt; are both understood.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="id"/>
+ </appinfo>
+ <documentation>
+ A parameter name and value that should be passed to the command when it is executed. This allows for the command to be qualified in some way. For example, a &quot;Show View&quot; command might accept the view id as a parameter.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ The parameter name as understood by the command. This is not a translatable name, but the key to name-value map.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/commandParameter/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ The value for the parameter. This value is a free-form string, but it should be parseable by the command. Consult the command to see what format it expects these values to take.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 3.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ &lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.bindings&quot;&gt;
+ &lt;key
+ sequence=&quot;M2+F5&quot;
+ commandId=&quot;example.commandId&quot;
+ schemeId=&quot;org.eclipse.ui.defaultAcceleratorConfiguration&quot;
+ contextId=&quot;org.eclipse.ui.contexts.dialog&quot; /&gt;
+ &lt;key
+ sequence=&quot;M2+F7&quot;
+ commandId=&quot;other.commandId&quot;
+ schemeId=&quot;default.id&quot;
+ contextId=&quot;org.eclipse.ui.contexts.dialog&quot; /&gt;
+ &lt;scheme
+ name=&quot;Default&quot;
+ description=&quot;Default shortcuts for Eclipse&quot;
+ id=&quot;default.id&quot; /&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+There is no public API for defining bindings. To try to achieve stability for the user, bindings are only defined through the extension points. If you are an RCP application, you should be able to override this behaviour in the &lt;code&gt;WorkbenchAdvisor&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+For bindings to work, you must have defined a &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;command&lt;/a&gt;. For the binding to work, the command must have an active &lt;a href=&quot;org_eclipse_ui_handlers.html&quot;&gt;handler&lt;/a&gt;. Handlers can be registered programmatically; please see the &lt;a href=&quot;org_eclipse_ui_handlers.html&quot;&gt;org.eclipse.ui.handlers&lt;/a&gt; extension point.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2005,2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/browserSupport.exsd b/bundles/org.eclipse.rap.ui/schema/browserSupport.exsd
new file mode 100755
index 0000000000..d2a940d5b4
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/browserSupport.exsd
@@ -0,0 +1,127 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="browserSupport" name="Browser Support"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to contribute workbench browser support. The support is responsible for opening URLs for all the Eclipse plug-ins. Workbench provides a very rudimentary implementation with a more complete implementation available as an optional RCP plug-in.
+&lt;p&gt;
+Contributions that are meant to be shipped with the product as the standard support should be marked as &lt;code&gt;default&lt;/code&gt;. This way, it is possible to override the support with another contribution that is not marked as &lt;code&gt;default&lt;/code&gt;. Note however that only one support can be active at any point in time. In case of multiple default and/or non-default contributions, the result is non-deterministic.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="support" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ A fully qualified identifier of the target extension point.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ An optional identifier of the extension instance.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ An optional name of the extension instance.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="support">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class providing the browser support for the workbench. This class should extend &lt;code&gt;org.eclipse.ui.browser.AbstractWorkbenchBrowserSupport&lt;/code&gt;.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.browser.AbstractWorkbenchBrowserSupport"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="default" type="boolean" use="default" value="false">
+ <annotation>
+ <documentation>
+ indicates whether this support is the default. Browser support should be marked as default if it is normally shipped with the product as the standard browser support. Browser supports that need to override the default support should have this flag set to &lt;code&gt;false&lt;/code&gt;. When workbench encounters two extensions, it will pick a non-default over a default one.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a browser support contribution:
+
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.browserSupport&quot;&gt;
+ &lt;support
+ default=&quot;true&quot;
+ class=&quot;com.example.xyz.MyBrowserSupport&quot;&gt;
+ &lt;/support&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The contributors are expected to provide a class that extends &lt;code&gt;org.eclipse.ui.browser.AbstractWorkbenchBrowserSupport&lt;/code&gt;.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides a simple implementation of the browser support that is used when no contributions are found in the registry.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/commandImages.exsd b/bundles/org.eclipse.rap.ui/schema/commandImages.exsd
new file mode 100755
index 0000000000..58e46a7ae5
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/commandImages.exsd
@@ -0,0 +1,169 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="commandImages" name="Command Images"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The images extension point provides a way of linking different types of images and icons to a particular command. These images can be used, as appropriate, wherever the command appears in the user interface. To accommodate some boundary cases (e.g., tool bar drop-down items), it is possible to group the images for a particular commands into &quot;styles&quot;. These styles can then be specifically requested when a command is to be displayed.
+&lt;/p&gt;
+&lt;p&gt;
+Commands placed in menus using the &lt;a href=&quot;org_eclipse_ui_menus.html&quot;&gt;org.eclipse.ui.menus&lt;/a&gt; extension point will use the default image if available, and commands placed in a toolbar will use the &lt;code&gt;toolbar&lt;/code&gt; style images if available, followed by the default images.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="image" 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="image">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="commandId"/>
+ </appinfo>
+ <documentation>
+ The images to associate with a particular command.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="commandId" type="string" use="required">
+ <annotation>
+ <documentation>
+ The identifier of the command with which the images should be associated.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string" use="required">
+ <annotation>
+ <documentation>
+ The path to the icon which should be used in the default case. This will appear when the icon is enabled and mouse is not hovering over it. It will also be used in any situation where such a more specific icon is not available.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="disabledIcon" type="string">
+ <annotation>
+ <documentation>
+ The icon to display when the command is disabled.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="hoverIcon" type="string">
+ <annotation>
+ <documentation>
+ The icon to display when the user is hovering over the command.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="style" type="string">
+ <annotation>
+ <documentation>
+ The particular scenario in which this block of icons apply. For example, it may be desirable to have different icons when the command is displayed as a toolbar drop-down item. Currently the org.eclipse.ui.menus extension will use the default style (no style) for menu icons and the &lt;code&gt;toolbar&lt;/code&gt; style for toolbar contributions. If no &lt;code&gt;toolbar&lt;/code&gt; entry is available for that command, it uses the default style.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 3.2
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ &lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.commandImages&quot;&gt;
+ &lt;image
+ commandId=&quot;org.eclipse.example.ProfileLast&quot;
+ hoverIcon=&quot;icons/full/etool16/profile.gif&quot;
+ disabledIcon=&quot;icons/full/dtool16/profile.gif&quot;
+ icon=&quot;icons/full/etool16/profile.gif&quot; /&gt;
+ &lt;image
+ commandId=&quot;org.eclipse.example.ProfileLast&quot;
+ hoverIcon=&quot;icons/full/etool16/history.gif&quot;
+ disabledIcon=&quot;icons/full/dtool16/history.gif&quot;
+ icon=&quot;icons/full/etool16/history.gif&quot;
+ style=&quot;toolbar&quot; /&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+Within the workbench, it is possible to get images for commands using the &lt;code&gt;org.eclipse.ui.commands.ICommandImageService&lt;/code&gt; interface. This interface can be retrieved from supporting workbench objects, such as &lt;code&gt;IWorkbench&lt;/code&gt; itself, the &lt;code&gt;IWorkbenchWindow&lt;/code&gt;, or the &lt;code&gt;IWorkbenchPartSite&lt;/code&gt;. To retrieve the service, you would make a call like &lt;code&gt;workbench.getService(ICommandImageService.class)&lt;/code&gt;.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2005,2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/commands.exsd b/bundles/org.eclipse.rap.ui/schema/commands.exsd
new file mode 100755
index 0000000000..95b32c548b
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/commands.exsd
@@ -0,0 +1,864 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="commands" name="Commands"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The &lt;code&gt;org.eclipse.ui.commands&lt;/code&gt; extension point is used to declare commands and command categories, using the &lt;code&gt;command&lt;/code&gt; and &lt;code&gt;category&lt;/code&gt; elements. A command is an abstract representation of some semantic behaviour, but not it&apos;s actual implementation. This allows different developers to contribute specific behaviour for their individual parts. For example, there might be a &quot;paste&quot; command with one implementation in an editor and a different implementation in an explorer widget. These implementations are called handlers. Commands can also be viewed as declarative function pointers, or signal handlers.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="category" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="command" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="commandParameterType" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="keyBinding" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="keyConfiguration" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="context" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="scope" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="activeKeyConfiguration" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ An optional identifier of the extension instance.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ An optional name of the extension instance.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ A fully qualified identifier of the target extension point.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="command">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+This element is used to define commands. A command represents an request from the user that can be handled by an action, and should be semantically unique among other commands. Do not define a command if there is already one defined with the same meaning. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the plugin registry) is considered valid. See the extension points &lt;a href=&quot;org_eclipse_ui_actionSets.html&quot;&gt;org.eclipse.ui.actionSets&lt;/a&gt; and &lt;a href=&quot;org_eclipse_ui_editorActions.html&quot;&gt;org.eclipse.ui.editorActions&lt;/a&gt; to understand how actions are connected to commands.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="defaultHandler" minOccurs="0" maxOccurs="1"/>
+ <element ref="state" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="commandParameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ Please use &lt;code&gt;categoryId&lt;/code&gt; instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ A translatable short description of this command for display in the UI.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier of this command.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The translatable name of this command for display in the UI. Commands are typically named in the form of an imperative verb.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="categoryId" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+The unique id of the category for this command. If this command does not specify a category it will be placed in an global &quot;Uncategorized&quot; category.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.0&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="defaultHandler" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+The default handler for this command (see the &lt;a href=&quot;org_eclipse_ui_handlers.html&quot;&gt;org.eclipse.ui.handlers&lt;/a&gt; extension point). If no other handler is active, this handler will be active. This handler will conflict with other handler definitions that specify no &lt;code&gt;activeWhen&lt;/code&gt; conditions. If you are creating an &lt;code&gt;IExecutableExtension&lt;/code&gt;, you can use the &lt;code&gt;defaultHandler&lt;/code&gt; element instead.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.1&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.core.commands.IHandler"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="returnTypeId" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+The id of a &lt;code&gt;commandParameterType&lt;/code&gt; indicating the type of value returned by this command. Specifying a &lt;code&gt;returnTypeId&lt;/code&gt; allows clients executing the command to associate the value returned with a Java type and to convert the value to a String form that may be stored and/or passed to another command that accepts parameters of the same type.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.2&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/commandParameterType/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContextId" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+The identifier of the help context that relates to this command in general. Handlers can override this context identifier to provide help that is more specific to their particular behaviours.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.2&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="category">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+In the UI, commands are often organized by category to make them more manageable. This element is used to define these categories. Commands can add themselves to at most one category. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the plugin registry) is considered valid.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ A translatable short description of this category for display in the UI.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier of this category.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The translatable name of this category for display in the UI.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="commandParameter">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="id"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+Defines a parameter that a command should understand. A parameter is a way to provide more information to a handler at execution time. For example, a &quot;show view&quot; command might take a view as a parameter. Handlers should be able to understand these parameters, so they should be treated like API.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.1&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="values" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier for this parameter.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name for the parameter. This is the name as it will be displayed to an end-user. As such, it should be translatable. The name should be short -- preferrably one word.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="values" type="string">
+ <annotation>
+ <documentation>
+ The class providing a list of parameter values for the user to select. This class should implement &lt;code&gt;org.eclipse.core.commands.IParameterValues&lt;/code&gt;. If this class is not specified, you must specify the more verbose &lt;code&gt;values&lt;/code&gt; element. Please see &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.core.commands.IParameterValues"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="typeId" type="string">
+ <annotation>
+ <documentation>
+ The id of a commandParameterType for this commandParameter. Specifying a typeId allows handlers of a command to convert string parameter values to objects in a consistent way and it allows potential callers of a command to look for commands that take objects of various types for their parameters.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/commandParameterType/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="optional" type="boolean" use="default" value="true">
+ <annotation>
+ <documentation>
+ Whether this parameter is optional. If a parameter is optional, the handler should be able to handle the absence of the parameter. By default, all parameters are optional.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="commandParameterType">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+Defines the object type of a commandParameter and may specify an &lt;code&gt;org.eclipse.core.commands.AbstractParameterValueConverter&lt;/code&gt; subclass to convert between string parameter values and objects.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.2&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier for this commandParameterType.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="type" type="string">
+ <annotation>
+ <documentation>
+ The fully qualified name of a Java class or interface to use as the type of this command parameter. This attribute is optional, however if omitted, &lt;code&gt;java.lang.Object&lt;/code&gt; will be used as the parameter type.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="converter" type="string">
+ <annotation>
+ <documentation>
+ The class for converting between objects and string representations of objects for command parameter values. This class should extend &lt;code&gt;org.eclipse.core.commands.AbstractParameterValueConverter&lt;/code&gt;. The converter should produce and consume objects of the type indicated in the &lt;code&gt;type&lt;/code&gt; attribute. If this class is not specified, this facility to convert between string and object values for this parameter type will not be available (the &lt;code&gt;getValueConverter()&lt;/code&gt; on class &lt;code&gt;ParameterType&lt;/code&gt; will return &lt;code&gt;null&lt;/code&gt;).
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.core.commands.AbstractParameterValueConverter"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="values">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="class"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The more verbose version of the &lt;code&gt;values&lt;/code&gt; attribute on the &lt;code&gt;commandParameter&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.1&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </choice>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class providing a list of parameter values for the user to select. This class should implement &lt;code&gt;org.eclipse.core.commands.IParameterValues&lt;/code&gt;. If this class is not specified, you must specify the more verbose &lt;code&gt;values&lt;/code&gt; element. Please see &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.core.commands.IParameterValues"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+A possible value for a parameter.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.1&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name of the parameter to pass to the &lt;code&gt;IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ The value of the parameter to pass to the &lt;code&gt;IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="defaultHandler">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="class"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The default handler for this command. If no other handler is active, this handler will be active. This handler will conflict with other handler definitions that specify no &lt;code&gt;activeWhen&lt;/code&gt; conditions. If you are not creating an &lt;code&gt;IExecutableExtension&lt;/code&gt;, you can use the &lt;code&gt;defaultHandler&lt;/code&gt; attribute instead.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.1&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter"/>
+ </sequence>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class which implements &lt;code&gt;org.eclipse.core.commands.IHandler&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.core.commands.IHandler"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="state">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="class"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+State information shared between all handlers, and potentially persisted between sessions.The state is simply a class that is loaded to look after the state. See the API Information for more details. This is not used for UI attributes like a menu contribution check box state or label.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.2&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ The class that can be loaded to store the state of this command. State is shared amongst handlers, and can be persisted between sessions. This class must implement &lt;code&gt;org.eclipse.core.commands.State&lt;/code&gt;. Please see API Information.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+A unique identifier for this state. This is used for persisting the state between sessions (if the state is an instance of &lt;code&gt;org.eclipse.jface.commands.PersistentState&lt;/code&gt;). Certain common identifiers (see &lt;code&gt;org.eclipse.jface.menus.IMenuStateIds&lt;/code&gt;) are understood when the command is being rendered in the menus or tool bars. The identifier only needs to be unique within the command defining the state.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="class"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The class that can be loaded to store the state of this command. This element is used if you wish to pass multiple parameters to an &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.2&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class that can be loaded to store the state of this command. State is shared amongst handlers, and can be persisted between sessions. This class must implement &lt;code&gt;org.eclipse.core.commands.State&lt;/code&gt;. Please see API Information.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="keyConfiguration">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ This element is used to define key configurations. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the plugin registry) is considered valid. Please use the &quot;org.eclipse.ui.bindings&quot; extension point instead.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ A translatable short description of this key configuration for display in the UI.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier of this key configuration.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The translatable name of this key configuration for display in the UI. If this key configuration has a parent, it is not necessary to add &quot;(extends ...)&quot; to the name. This will be automatically added by the UI where necessary.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parent" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the parent key configuration. If this key configuration has a parent, it will borrow all key bindings from its parent, in addition to the key bindings defined in its own key configuration.
+@deprecated Please use parentId instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentId" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the parent key configuration. If this key configuration has a parent, it will borrow all key bindings from its parent, in addition to the key bindings defined in its own key configuration.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="context">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ This element is used to define contexts. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the plugin registry) is considered valid. Please use the &lt;a href=&quot;org_eclipse_ui_contexts.html&quot;&gt;org.eclipse.ui.contexts&lt;/a&gt; extension point instead.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ A translatable short description of this context for display in the UI.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier of this context.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The translatable name of this context for display in the UI. If this context has a parent, it is not necessary to add &quot;(extends parent)&quot; to the name. This will be automatically added by the UI where necessary.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parent" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the parent context. If this context has a parent, it will borrow all key bindings from its parent, in addition to the key bindings defined in its own context.
+@deprecated Please use &quot;parentId&quot; instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentId" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the parent context. If this context has a parent, it will borrow all key bindings from its parent, in addition to the key bindings defined in its own context.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="scope">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="id" deprecated="true"/>
+ </appinfo>
+ <documentation>
+ This element is used to define scopes. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the plugin registry) is considered valid.
+@deprecated Please use the &quot;org.eclipse.ui.contexts&quot; extension point instead.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ A translatable short description of this scope for display in the UI.
+
+@deprecated Please use the &quot;org.eclipse.ui.contexts&quot; extension point instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier of this scope.
+
+@deprecated Please use the &quot;org.eclipse.ui.contexts&quot; extension point instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The translatable name of this scope for display in the UI. If this scope has a parent, it is not necessary to add &quot;(extends parent)&quot; to the name. This will be automatically added by the UI where necessary.
+
+@deprecated Please use the &quot;org.eclipse.ui.contexts&quot; extension point instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parent" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the parent scope. If this scope has a parent, it will borrow all key bindings from its parent, in addition to the key bindings defined in its own scope.
+
+@deprecated Please use the &quot;org.eclipse.ui.contexts&quot; extension point instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="activeKeyConfiguration">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+This element is used to define the initial active key configuration for Eclipse. If more than one of these elements exist, only the last declared element (in order of reading the plugin registry) is considered valid.
+&lt;/p&gt;
+&lt;p&gt;
+This element has been replaced with a preference. If your application needs to change the default key configuration, then specify the following in your &lt;code&gt;plugin_customization.ini&lt;/code&gt; file: &lt;code&gt;org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id&lt;/code&gt;.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ The unique id (&lt;code&gt;id&lt;/code&gt; attribute) of the keyConfiguration element one wishes to be initially active.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="keyConfigurationId" type="string">
+ <annotation>
+ <documentation>
+ The unique id (&lt;code&gt;id&lt;/code&gt; attribute) of the keyConfiguration element one wishes to be initially active.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="keyBinding">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ This element allows one to assign key sequences to commands. Please use the &lt;code&gt;key&lt;/code&gt; element in the &quot;org.eclipse.ui.bindings&quot; extension point instead.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="configuration" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the key configuration of this key binding.
+@deprecated Please use keyConfigurationId instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="command" type="string">
+ <annotation>
+ <documentation>
+ The unique identifier of the command to which the key sequence specified by this key binding is assigned. If the value of this attribute is an empty string, the key sequence is assigned to an internal &apos;no operation&apos; command. This is useful for &apos;undefining&apos; key bindings in specific key configurations and contexts which may have been borrowed from their parents.
+@deprecated Please use &quot;commandId&quot; instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="locale" type="string">
+ <annotation>
+ <documentation>
+ An optional attribute indicating that this key binding is only defined for the specified locale. Locales are specified according to the format declared in &lt;code&gt;java.util.Locale&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="platform" type="string">
+ <annotation>
+ <documentation>
+ An optional attribute indicating that this key binding is only defined for the specified platform. The possible values of the &lt;code&gt;platform&lt;/code&gt; attribute are the set of the possible values returned by &lt;code&gt;org.eclipse.swt.SWT.getPlatform()&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="contextId" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the context of this key binding.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="string" type="string">
+ <annotation>
+ <documentation>
+ The key sequence to assign to the command. Key sequences consist of one or more key strokes, where a key stroke consists of a key on the keyboard, optionally pressed in combination with one or more of the following modifiers: Ctrl, Alt, Shift, and Command. Key strokes are separated by spaces, and modifiers are separated by &apos;+&apos; characters.
+@deprecated Please use &quot;keySequence&quot; instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="scope" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the context of this key binding.
+@deprecated Please use &quot;contextId&quot; instead. The old default scope, &quot;org.eclipse.ui.globalScope&quot;, has been changed to &quot;org.eclipse.ui.contexts.window&quot;. The old name is still supported, but it is deprecated.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="keyConfigurationId" type="string">
+ <annotation>
+ <documentation>
+ The unique id of the key configuration of this key binding.
+@deprecated Please use the &lt;code&gt;schemeId&lt;/code&gt; attribute on the &lt;code&gt;key&lt;/code&gt; element in the new &quot;org.eclipse.ui.bindings&quot; extension point.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="commandId" type="string">
+ <annotation>
+ <documentation>
+ The unique identifier of the command to which the key sequence specified by this key binding is assigned. If the value of this attribute is an empty string, the key sequence is assigned to an internal &apos;no operation&apos; command. This is useful for &apos;undefining&apos; key bindings in specific key configurations and contexts which may have been borrowed from their parents.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="keySequence" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;The key sequence to assign to the command. Key sequences consist of one or more key strokes, where a key stroke consists of a key on the keyboard, optionally pressed in combination with one or more of the following modifiers: Ctrl, Alt, Shift, and Command. Key strokes are separated by spaces, and modifiers are separated by &apos;+&apos; characters.&lt;/p&gt;
+&lt;p&gt;The modifier keys can also be expressed in a platform-independent way. On MacOS X, for example, &quot;Command&quot; is almost always used in place of &quot;Ctrl&quot;. So, we provide &quot;M1&quot; which will map to either &quot;Ctrl&quot; or &quot;Command&quot;, as appropriate. Similarly, &quot;M2&quot; is &quot;Shift&quot;; &quot;M3&quot; is &quot;Alt&quot;; and &quot;M4&quot; is &quot;Ctrl&quot; (MacOS X). If more platforms are added, then you can count on these aliases being mapped to good platform defaults.&lt;/p&gt;
+&lt;p&gt;The syntax for this string is defined in &lt;code&gt;org.eclipse.ui.internal.keys&lt;/code&gt;. Briefly, the string is case insensitive -- though all capitals is preferred stylistically. If the key is a letter, then simply append the letter. If the key is a special key (i.e., non-ASCII), then use one of the following: ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, BREAK, CAPS_LOCK, END, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, HOME, INSERT, NUM_LOCK, NUMPAD_0, NUMPAD_1, NUMPAD_2, NUMPAD_3, NUMPAD_4, NUMPAD_5, NUMPAD_6, NUMPAD_7, NUMPAD_8, NUMPAD_9, NUMPAD_ADD, NUMPAD_DECIMAL, NUMPAD_DIVIDE, NUMPAD_ENTER, NUMPAD_EQUAL, NUMPAD_MULTIPLY, NUMPAD_SUBTRACT, PAGE_UP, PAGE_DOWN, PAUSE, PRINT_SCREEN, or SCROLL_LOCK. If the key is a non-printable ASCII key, then use one of the following: BS, CR, DEL, ESC, FF, LF, NUL, SPACE, TAB, or VT. Note that the main keyboard enter/return key is CR.&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+2.1
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The &lt;code&gt;plugin.xml&lt;/code&gt; file in the &lt;code&gt;org.eclipse.ui&lt;/code&gt; plugin makes extensive use of the &lt;code&gt;org.eclipse.ui.commands&lt;/code&gt; extension point.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+Handlers can be registered with commands using the &lt;code&gt;org.eclipse.ui.handlers.IHandlerService&lt;/code&gt;. This can be retrieved from various workbench components (e.g., workbench, workbench window, part site, etc.) by calling &lt;code&gt;getService(IHandlerService.class)&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+In general, it is preferrably to declare all commands statically (in &lt;code&gt;plugin.xml&lt;/code&gt;). This is so that users can attach key bindings to the commands. However, it is possible to declare commands at run-time. To do this, retrieve the &lt;code&gt;org.eclipse.ui.commands.ICommandService&lt;/code&gt; from a workbench component, call &lt;code&gt;getCommand(yourCommandID)&lt;/code&gt; and then call &lt;code&gt;Command.define(...)&lt;/code&gt;.
+Commands defined programmatically must be cleaned up by the plugin if it is unloaded.
+&lt;/p&gt;
+&lt;p&gt;
+There are a few default implementations of handler states that may be useful to users of this extension point:
+&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;org.eclipse.jface.commands.TextState&lt;/li&gt;
+&lt;li&gt;org.eclipse.jface.commands.RadioState&lt;/li&gt;
+&lt;li&gt;org.eclipse.jface.commands.ToggleState&lt;/li&gt;
+&lt;li&gt;org.eclipse.ui.handlers.RegistryRadioState&lt;/li&gt;
+&lt;li&gt;org.eclipse.ui.handlers.RegistryToggleState&lt;/li&gt;
+&lt;/ul&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2000, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/commonAction.exsd b/bundles/org.eclipse.rap.ui/schema/commonAction.exsd
new file mode 100755
index 0000000000..84951290d4
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/commonAction.exsd
@@ -0,0 +1,173 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="commonAction" name="Common Action"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <element name="menu">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="label"/>
+ </appInfo>
+ <documentation>
+ This element is used to defined a new menu.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="separator" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="groupMarker" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier that can be used to reference this menu.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name used by the Workbench for this new menu. The name should include mnemonic information.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="path" type="string">
+ <annotation>
+ <documentation>
+ the location of the new menu starting from the root of the menu. Each token in the path must refer to an existing menu, except the last token which should represent a named group in the last menu in the path. If omitted, the new menu will be added to the &lt;samp&gt;additions&lt;/samp&gt; named group of the menu.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="separator">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ <documentation>
+ This element is used to create a menu separator in the new menu.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the menu separator. This name can later be referenced as the last token in a menu path. Therefore, a separator also serves as named group into which actions and menus can be added.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="groupMarker">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ <documentation>
+ This element is used to create a named group in the new menu. It has no visual representation in the new menu, unlike the &lt;samp&gt;separator&lt;/samp&gt; element.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the group marker. This name can later be referenced as the last token in the menu path. It serves as named group into which actions and menus can be added.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="selection">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="class"/>
+ </appInfo>
+ <documentation>
+ This element is used to help determine the action enablement based on the current selection. Ignored if the &lt;samp&gt;enablement&lt;/samp&gt; element is specified.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class or interface that each object in the selection must implement in order to enable the action.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="java.lang.Object"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional wild card filter for the name that can be applied to all objects in the selection. If specified and the match fails, the action will be disabled.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2000, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/commonExpression.exsd b/bundles/org.eclipse.rap.ui/schema/commonExpression.exsd
new file mode 100755
index 0000000000..7ef94fffa4
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/commonExpression.exsd
@@ -0,0 +1,274 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="commonExpression" name="Common Expressions"/>
+ </appInfo>
+ <documentation>
+ An action&apos;s enablement and/or visibility can be defined using the elements &lt;samp&gt;enablement&lt;/samp&gt; and &lt;samp&gt;visibility&lt;/samp&gt; respectively. These two elements contain a boolean expression that is evaluated to determine the enablement and/or visibility.
+&lt;p&gt;
+The syntax is the same for the &lt;samp&gt;enablement&lt;/samp&gt; and &lt;samp&gt;visibility&lt;/samp&gt; elements. Both contain only one boolean expression sub-element. In the simplest case, this will be an &lt;samp&gt;objectClass&lt;/samp&gt;, &lt;samp&gt;objectState&lt;/samp&gt;, &lt;samp&gt;pluginState&lt;/samp&gt;, or &lt;samp&gt;systemProperty&lt;/samp&gt; element. In the more complex case, the &lt;samp&gt;and&lt;/samp&gt;, &lt;samp&gt;or&lt;/samp&gt;, and &lt;samp&gt;not&lt;/samp&gt; elements can be combined to form a boolean expression. Both the &lt;samp&gt;and&lt;/samp&gt;, and &lt;samp&gt;or&lt;/samp&gt; elements must contain 2 sub-elements. The &lt;samp&gt;not&lt;/samp&gt; element must contain only 1 sub-element.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="enablement">
+ <annotation>
+ <documentation>
+ This element is used to define the enablement for the extension.
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="not"/>
+ <element ref="objectClass"/>
+ <element ref="objectState"/>
+ <element ref="pluginState"/>
+ <element ref="systemProperty"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="visibility">
+ <annotation>
+ <documentation>
+ This element is used to define the visibility for the extension.
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="not"/>
+ <element ref="objectClass"/>
+ <element ref="objectState"/>
+ <element ref="pluginState"/>
+ <element ref="systemProperty"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="and">
+ <annotation>
+ <documentation>
+ This element represent a boolean AND operation on the result of evaluating its two sub-element expressions.
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice minOccurs="2" maxOccurs="unbounded">
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="not"/>
+ <element ref="objectClass"/>
+ <element ref="objectState"/>
+ <element ref="pluginState"/>
+ <element ref="systemProperty"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="or">
+ <annotation>
+ <documentation>
+ This element represent a boolean OR operation on the result of evaluating its two sub-element expressions.
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice minOccurs="2" maxOccurs="unbounded">
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="not"/>
+ <element ref="objectClass"/>
+ <element ref="objectState"/>
+ <element ref="pluginState"/>
+ <element ref="systemProperty"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="not">
+ <annotation>
+ <documentation>
+ This element represent a boolean NOT operation on the result of evaluating its sub-element expressions.
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="not"/>
+ <element ref="objectClass"/>
+ <element ref="objectState"/>
+ <element ref="pluginState"/>
+ <element ref="systemProperty"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="objectClass">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ <documentation>
+ This element is used to evaluate the class or interface of each object in the current selection. If each object in the selection implements the specified class or interface, the expression is evaluated as true.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of a class or interface. The expression is evaluated as true only if all objects within the selection implement this class or interface.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="java.lang.Object"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="objectState">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ <documentation>
+ This element is used to evaluate the attribute state of each object in the current selection. If each object in the selection has the specified attribute state, the expression is evaluated as true. To evaluate this type of expression, each object in the selection must implement, or adapt to, &lt;samp&gt;org.eclipse.ui.IActionFilter&lt;/samp&gt; interface.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of an object&apos;s attribute. Acceptable names reflect the object type, and should be publicly declared by the plug-in where the object type is declared.
+
+@see IResourceActionFilter for a list of the supported constants
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the required value of the object&apos;s attribute. The acceptable values for the object&apos;s attribute should be publicly declared.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="pluginState">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="id"/>
+ </appInfo>
+ <documentation>
+ This element is used to evaluate the state of a plug-in. The state of the plug-in may be one of the following: &lt;samp&gt;installed&lt;/samp&gt; (equivalent to the OSGi concept of &quot;resolved&quot;) or &lt;samp&gt;activated&lt;/samp&gt; (equivalent to the OSGi concept of &quot;active&quot;).
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the identifier of a plug-in which may or may not exist in the plug-in registry.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" use="default" value="installed">
+ <annotation>
+ <documentation>
+ the required state of the plug-in. The state of the plug-in may be one of the following: &lt;samp&gt;installed&lt;/samp&gt; (equivalent to the OSGi concept of &quot;resolved&quot;) or &lt;samp&gt;activated&lt;/samp&gt; (equivalent to the OSGi concept of &quot;active&quot;).
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="installed">
+ </enumeration>
+ <enumeration value="activated">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="systemProperty">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ <documentation>
+ This element is used to evaluate the state of some system property. The property value is retrieved from the &lt;samp&gt;java.lang.System&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the system property.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the required value of the system property.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/contexts.exsd b/bundles/org.eclipse.rap.ui/schema/contexts.exsd
new file mode 100755
index 0000000000..a87480d11e
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/contexts.exsd
@@ -0,0 +1,143 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="contexts" name="Contexts"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The &lt;code&gt;org.eclipse.ui.contexts&lt;/code&gt; extension point is used to declare contexts and associated elements.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="context" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ An optional identifier of the extension instance.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ An optional name of the extension instance.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ A fully qualified identifier of the target extension point.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="context">
+ <annotation>
+ <documentation>
+ This element is used to define contexts. If more than one of these elements exist with the same &lt;code&gt;id&lt;/code&gt; attribute, only the last declared element (in order of reading the registry) is considered valid.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ A translatable short description of this context for display in the UI.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier of this context.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The translatable name of this context for display in the UI.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentId" type="string">
+ <annotation>
+ <documentation>
+ The unique identifier of the parent of this context.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.contexts/context/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+3.0
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The &lt;code&gt;plugin.xml&lt;/code&gt; file in the &lt;code&gt;org.eclipse.ui&lt;/code&gt; plugin makes use of the &lt;code&gt;org.eclipse.ui.contexts&lt;/code&gt; extension point.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+In general, it is preferrably to declare all contexts statically (in &lt;code&gt;plugin.xml&lt;/code&gt;). This is so that users can use them in key bindings. However, it is possible to declare contexts at run-time. To do this, retrieve the &lt;code&gt;org.eclipse.ui.commands.IContextService&lt;/code&gt; from a workbench component, call &lt;code&gt;getContext(contextId)&lt;/code&gt; and then call &lt;code&gt;Context#define(...)&lt;/code&gt;.
+Contexts defined programmatically must be cleaned up by the plugin if it is unloaded.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2000, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/decorators.exsd b/bundles/org.eclipse.rap.ui/schema/decorators.exsd
new file mode 100755
index 0000000000..50ee7aea8c
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/decorators.exsd
@@ -0,0 +1,282 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="decorators" name="Decorators"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to add decorators to views that subscribe to a decorator manager. As of 2.1 there is the concept of a lightweight decorator that will handle the image management for the decorator. It is also possible to declare a lightweight decorator that simply overlays an icon when enabled that requires no implementation from the plug-in.
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="commonExpression.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="decorator" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="decorator">
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this decorator.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the workbench window menu to represent this decorator.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ a fully qualified name of a class which implements &lt;samp&gt;org.eclipse.jface.viewers.ILabelDecorator&lt;/samp&gt;
+if &lt;b&gt;&lt;i&gt; lightweight&lt;/i&gt;&lt;/b&gt; is false or &lt;samp&gt;org.eclipse.jface.viewers.ILightweightLabelDecorator&lt;/samp&gt; if lightweight is true. The default value is false. If there is no &lt;b&gt;&lt;i&gt;class&lt;/i&gt;&lt;/b&gt; element it is assumed to be lightweight.
+
+In the case where there is no decorator class this is said to be declarative. Declarative decorators with an enablement based on session properties, persistant properties or project description values (such as natures) will need to be updated explicitly when these values change using &lt;code&gt;IDecoratorManager#update()&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ILabelDecorator"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="objectClass" type="string">
+ <annotation>
+ <documentation>
+ a fully qualified name of a class which this decorator will be applied to. Deprecated in 2.1. Make this value part of the enablement.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="java.lang.Object" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="adaptable" type="boolean">
+ <annotation>
+ <documentation>
+ a flag that indicates if types that can adapt to objects other than thier objectClass should use this object contribution.
+For non-lightweight decorators, this flag only has an effect if objectClass adapts to IResource. For lightweight decorators, adaptability to any objectClass is supported as long as adaptability is defined through the adapter manager (see the class org.eclipse.runtime.IAdapterManager). Default value is false.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="state" type="boolean">
+ <annotation>
+ <documentation>
+ a flag that indicates if the decorator is on by default. Default value is false.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="lightweight">
+ <annotation>
+ <documentation>
+ The lightweight flag indicates that the decorator is either
+declarative or implements
+&lt;samp&gt;org.eclipse.jface.viewers.ILightweightLabelDecorator&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="true">
+ </enumeration>
+ <enumeration value="false">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ if the decorator is &lt;b&gt;&lt;i&gt;lightweight&lt;/i&gt;&lt;/b&gt; and the &lt;b&gt;&lt;i&gt;class&lt;/i&gt;&lt;/b&gt; is not specified this is the path to the overlay image to apply
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="location">
+ <annotation>
+ <documentation>
+ if the decorator is &lt;b&gt;&lt;i&gt;lightweight&lt;/i&gt;&lt;/b&gt; this is the location to apply the decorator to. Defaults to BOTTOM_RIGHT. A new possible value REPLACE was added in 3.4.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="TOP_LEFT">
+ </enumeration>
+ <enumeration value="TOP_RIGHT">
+ </enumeration>
+ <enumeration value="BOTTOM_LEFT">
+ </enumeration>
+ <enumeration value="BOTTOM_RIGHT">
+ </enumeration>
+ <enumeration value="UNDERLAY">
+ </enumeration>
+ <enumeration value="REPLACE">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <documentation>
+ an optional subelement whose body should contain text providing a short description of the decorator. This will be shown in the Decorators preference page so it is recommended that this is included. Default value is an empty String.
+ </documentation>
+ </annotation>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following are example of decorators:
+&lt;p&gt;
+A full decorator. The plug-in developer must handle their own image support.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.decorators&quot;&gt;
+ &lt;decorator
+ id=&quot;com.xyz.decorator&quot;
+ label=&quot;XYZ Decorator&quot;
+ state=&quot;true&quot;
+ class=&quot;com.xyz.DecoratorContributor&quot;&gt;
+ &lt;enablement&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IResource&quot;/&gt;
+ &lt;/enablement&gt;
+ &lt;/decorator&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+
+&lt;p&gt;
+A lightweight decorator. There is a concrete class but as it is an
+ILightweightLabelDecorator it only needs to supply text and an ImageDescriptor and therefore needs no resource handling.
+&lt;/p&gt;
+
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.decorators&quot;&gt;
+ &lt;decorator
+ id=&quot;com.xyz.lightweight.decorator&quot;
+ label=&quot;XYZ Lightweight Decorator&quot;
+ state=&quot;false&quot;
+ class=&quot;com.xyz.LightweightDecoratorContributor&quot;
+ lightweight=&quot;true&quot; &gt;
+ &lt;enablement&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IResource&quot;/&gt;
+ &lt;/enablement&gt;
+ &lt;/decorator&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;A declarative lightweight decorator. There is no concrete class so it
+supplies an icon and a quadrant to apply that icon.
+&lt;/p&gt;
+
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.decorators&quot;&gt;
+ &lt;decorator
+ id=&quot;com.xyz.lightweight.declarative.decorator&quot;
+ label=&quot;XYZ Lightweight Declarative Decorator&quot;
+ state=&quot;false&quot;
+ lightweight=&quot;true&quot;
+ icon=&quot;icons/full/declarative.gif&quot;
+ location=&quot;TOP_LEFT&quot;&gt;
+ &lt;enablement&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IResource&quot;/&gt;
+ &lt;/enablement&gt;
+ &lt;/decorator&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must be the fully qualified name of a class that implements &lt;samp&gt;org.eclipse.jface.viewers.ILabelDecorator&lt;/samp&gt; (if lightweight is false) or &lt;samp&gt;org.eclipse.jface.viewers.ILightweightLabelDecorator&lt;/samp&gt;. This class is loaded as late as possible to avoid loading the entire plug-in before it is really needed. Declarative decorators do not entail any plug-in activation and should be used whenever possible. Non-lightweight decorators will eventually be deprecated.
+ </documentation>
+ </annotation>
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ Plug-ins may use this extension point to add new decorators to be applied to views that use the decorator manager as their label decorator.
+To use the decorator manager, use the result of IViewPart.getDecoratorManager() as the decorator for an instance of DecoratingLabelProvider.
+This is currently in use by the Resource Navigator.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/dropActions.exsd b/bundles/org.eclipse.rap.ui/schema/dropActions.exsd
new file mode 100755
index 0000000000..b6d589dad5
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/dropActions.exsd
@@ -0,0 +1,167 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="dropActions" name="Drop Actions"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to add drop behaviour to
+views defined by other plugins.
+&lt;p&gt;
+Due to the UI layering imposed by the plugin
+mechanism, views are often not aware of the content
+and nature of other views. This can make drag and
+drop operations between plugins difficult.
+For example, one may wish to provide Java
+refactoring support whereby the user drags a
+method from the Java editor&apos;s content outliner
+into another java file in the resource navigator.
+Since the resource navigator doesn&apos;t know anything
+about Java content, it doesn&apos;t know how to behave
+when java methods are dropped onto it.
+Similarly, an ISV may want to drop some of
+their content into one of the Java viewers.
+&lt;p&gt;
+The &lt;samp&gt;org.eclipse.ui.dropActions&lt;/samp&gt; extension point is
+provided by the Platform to address these situations.
+This mechanism delegates the drop behaviour back to
+the originator of the drag operation.
+This behaviour is contained in an action that
+must implement
+&lt;samp&gt;org.eclipse.ui.part.IDropActionDelegate&lt;/samp&gt;.
+The viewer that is the source of the drag
+operation must support
+&lt;samp&gt;the org.eclipse.ui.part.PluginTransfer&lt;/samp&gt;
+transfer type, and place a
+&lt;samp&gt;PluginTransferData&lt;/samp&gt; object in the drag event.
+See org.eclipse.jface.viewers.StructuredViewer#addDragSupport
+to learn how to add drag support to a viewer.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="action">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier that can be used to reference this action
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the fully qualified class that implements
+&lt;samp&gt;org.eclipse.ui.part.IDropActionDelegate&lt;/samp&gt;.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.part.IDropActionDelegate"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a drop action extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.dropActions&quot;&gt;
+ &lt;action
+ id=&quot;my_drop_action&quot;
+ class=&quot;com.xyz.eclipse.TestDropAction&quot;&gt;
+ &lt;/action&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+Here is an example of a drag listener that makes use of the drop
+action defined above.
+&lt;p&gt;
+&lt;pre&gt;
+class MyDragListener extends DragSourceAdapter {
+ public void dragSetData(DragSourceEvent event) {
+ if (PluginTransfer.getInstance().isSupportedType(event.dataType)) {
+ byte[] dataToSend = ...//enter the data to be sent.
+ event.data = new PluginTransferData(
+ &quot;my_drop_action&quot;, dataToSend);
+ }
+ }
+}
+&lt;/pre&gt;
+&lt;/p&gt;
+For a more complete example, see the Platform
+readme example. In that example, a drop action is
+defined in ReadmeDropActionDelegate, and it is used
+by ReadmeContentOutlineDragListener.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The value of the class attribute must be a fully qualified name of a Java class that implements &lt;samp&gt;org.eclipse.ui.part.IDropActionDelegate&lt;/samp&gt;. This class is loaded as late as possible to avoid loading the entire plug-in before it is really needed
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench does not provide an implementation for this extension point. Plug-ins can contribute to this extension point to add drop behavior to views defined by other plugins.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/editorActions.exsd b/bundles/org.eclipse.rap.ui/schema/editorActions.exsd
new file mode 100755
index 0000000000..494b2e8755
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/editorActions.exsd
@@ -0,0 +1,559 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="editorActions" name="Editor Menus, Toolbars and Actions"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to add actions to the menu
+and toolbar for editors registered by other plug-ins.
+&lt;p&gt;
+You can now use &lt;a href=&quot;org_eclipse_ui_menus.html&quot;&gt;org.eclipse.ui.menus&lt;/a&gt; to place commands in menus and toolbars as well.
+&lt;/p&gt;
+&lt;p&gt;
+The initial contribution set for an editor is defined
+by another extension point (org.eclipse.ui.editors).
+One set of actions is created and shared by all
+instances of the same editor type. When invoked,
+these action act upon the active editor. This
+extension point follows the same pattern. Each
+action extension is created and shared by all
+instances of the same editor type. The action
+class is required to implement
+&lt;samp&gt;org.eclipse.ui.IEditorActionDelegate&lt;/samp&gt;.
+The active editor is passed to the delegate by invoking
+&lt;samp&gt;IEditorActionDelegate.setActiveEditor&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="commonAction.exsd"/>
+
+ <include schemaLocation="commonExpression.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="editorContribution" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="editorContribution">
+ <annotation>
+ <documentation>
+ This element is used to define a group of editor actions and/or menus.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="menu" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used to reference this contribution.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="targetID" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier of a registered editor that is the target of this contribution.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.editors/editor/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="action">
+ <annotation>
+ <documentation>
+ This element defines an action that the user can invoke in the UI.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <choice>
+ <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+ </choice>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used as a reference for this action.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name used either as the menu item text or toolbar button label. The name can include mnenomic information. This label should either be non-empty or a definitionId should be provided.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="accelerator" type="string">
+ <annotation>
+ <documentation>
+ &lt;b&gt;&lt;font color=&quot;#FF0000&quot;&gt;Deprecated:&lt;/font&gt;&lt;/b&gt; Use the &lt;samp&gt;definitionId&lt;/samp&gt; attribute instead.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="definitionId" type="string">
+ <annotation>
+ <documentation>
+ Specifies the command that this action will handle. By specifying and action, the key binding service can assign a key sequence to this action. See the extension point &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;org.eclipse.ui.commands&lt;/a&gt; for more information.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="menubarPath" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) used to specify the location of this action in the menu bar.
+Each token in the path, except the last one, must represent a valid identifier of an existing menu in the hierarchy. The last token represents the named group into which this action will be added. If the path is omitted, this action will not appear in the menu bar.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="toolbarPath" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) that is used to specify the location of this action in the toolbar. The first token represents the toolbar identifier (with &quot;Normal&quot; being the default toolbar), while the second token is the named group within the toolbar that this action will be added to. If the group does not exist in the toolbar, it will be created.
+If toolbarPath is omitted, the action will not appear in the toolbar.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context.
+If omitted and the action appears in the toolbar, the Workbench will use a placeholder icon. The path is relative to the location of the plugin.xml file of the contributing plug-in. The icon will appear in toolbars but not in menus. Enabled actions will be represented in menus by the hoverIcon.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="disabledIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the action is disabled. If omitted, the normal icon will simply appear greyed out. The path is relative to the location of the plugin.xml file of the contributing plug-in. The disabled icon will appear in toolbars but not in menus. Icons for disabled actions in menus will be supplied by the OS.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="hoverIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the mouse pointer is over the action. If omitted, the normal icon will be used. The path is relative to the location of the plugin.xml file of the contributing plug-in.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="tooltip" type="string">
+ <annotation>
+ <documentation>
+ a translatable text representing the action&apos;s tool tip. Only used if the action appears in the toolbar.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContextId" type="string">
+ <annotation>
+ <documentation>
+ a unique identifier indicating the help context for this action. If the action appears as a menu item, then pressing F1 while the menu item is highlighted will display help.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="style" use="default" value="push">
+ <annotation>
+ <documentation>
+ an optional attribute to define the user interface style type for the action. If defined, the attribute value will be one of the following:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;push&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a regular menu item or tool item.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;radio&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a radio style menu item or tool item. Actions with the radio style within the same menu or toolbar group behave as a radio set. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;toggle&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a checked style menu item or as a toggle tool item. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="push">
+ </enumeration>
+ <enumeration value="radio">
+ </enumeration>
+ <enumeration value="toggle">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="state" type="boolean">
+ <annotation>
+ <documentation>
+ an optional attribute indicating the initial state (either &lt;samp&gt;true&lt;/samp&gt; or &lt;samp&gt;false&lt;/samp&gt;), used when the &lt;samp&gt;style&lt;/samp&gt; attribute has the value &lt;samp&gt;radio&lt;/samp&gt; or &lt;samp&gt;toggle&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the fully qualified class that implements &lt;samp&gt;org.eclipse.ui.IEditorActionDelegate&lt;/samp&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IEditorActionDelegate"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="enablesFor" type="string">
+ <annotation>
+ <documentation>
+ a value indicating the selection count which must be met to enable the action.
+If this attribute is specified and the condition is met, the action is enabled.
+If the condition is not met, the action is disabled.
+If no attribute is specified, the action is enabled for any number of items selected.
+The following attribute formats are supported:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;!&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;?&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 or 1 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 1 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;multiple, 2+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 2 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;n&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- a precise number of items selected.a precise number of items selected.&amp;nbsp;
+ For example: enablesFor=&amp;quot; 4&amp;quot; enables the action only when 4
+ items are selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;*&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- any number of items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="actionID" type="string">
+ <annotation>
+ <documentation>
+ Internal tag for use by the text editors. Should not be used by plug-in developers. The following IDs have special meaning for the text editor framework:
+&lt;ul&gt;
+&lt;li&gt;&quot;RulerClick&quot;: the contributed action which is invoked upon single-click in the (left) vertical ruler&lt;/li&gt;
+&lt;li&gt;&quot;RulerDoubleClick&quot;: the contributed action which is invoked upon single-click in the (left) vertical ruler&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;
+If multiple extensions contribute ruler actions to the same text editor, the extension whose plug-in is at the top of the prerequisite tree wins. If there are multiple such plug-ins, the first wins.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="mode">
+ <annotation>
+ <documentation>
+ For actions appearing in a toolbar, &lt;code&gt;FORCE_TEXT&lt;/code&gt; will show text even if there is an icon. See ActionContribuitonItem.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="FORCE_TEXT">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <documentation>
+ A parameter element to be used within an IExecutableExtension element. This will be passed as initialization data to the instantiated class.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter name
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter value
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation>
+ <documentation>
+ The element version of the &lt;code&gt;class&lt;/code&gt; attribute. This is used when the class implements &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt; and there is parameterized data that you wish used in its initialization.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ A class that implements &lt;code&gt;org.eclipse.ui.IEditorActionDelegate&lt;/code&gt;. It may also implement &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of an editor action extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.editorActions&quot;&gt;
+ &lt;editorContribution
+ id=&quot;com.xyz.xyzContribution&quot;
+ targetID=&quot;com.ibm.XMLEditor&quot;&gt;
+ &lt;menu
+ id=&quot;XYZ&quot;
+ label=&quot;&amp;amp;XYZ Menu&quot;&gt;
+ &lt;separator name=&quot;group1&quot;/&gt;
+ &lt;/menu&gt;
+ &lt;action
+ id=&quot;com.xyz.runXYZ&quot;
+ label=&quot;&amp;amp;Run XYZ Tool&quot;
+ menubarPath=&quot;XYZ/group1&quot;
+ toolbarPath=&quot;Normal/additions&quot;
+ style=&quot;toggle&quot;
+ state=&quot;true&quot;
+ icon=&quot;icons/runXYZ.gif&quot;
+ tooltip=&quot;Run XYZ Tool&quot;
+ helpContextId=&quot;com.xyz.run_action_context&quot;
+ class=&quot;com.xyz.actions.RunXYZ&quot;&gt;
+ &lt;selection class=&quot;org.eclipse.core.resources.IFile&quot; name=&quot;*.java&quot;/&gt;
+ &lt;/action&gt;
+ &lt;/editorContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In the example above, the specified action will appear as a check box item in the new top-level menu named &quot;XYZ Menu&quot;, and as a toggle button in the toolbar. The action is enabled if the selection contains only Java file resources.
+&lt;p&gt;
+The following is an other example of an editor action extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.editorActions&quot;&gt;
+ &lt;editorContribution
+ id=&quot;com.xyz.xyz2Contribution&quot;
+ targetID=&quot;com.ibm.XMLEditor&quot;&gt;
+ &lt;menu
+ id=&quot;XYZ2&quot;
+ label=&quot;&amp;amp;XYZ2 Menu&quot;
+ path=&quot;edit/additions&quot;&gt;
+ &lt;separator name=&quot;group1&quot;/&gt;
+ &lt;/menu&gt;
+ &lt;action
+ id=&quot;com.xyz.runXYZ2&quot;
+ label=&quot;&amp;amp;Run XYZ2 Tool&quot;
+ menubarPath=&quot;edit/XYZ2/group1&quot;
+ style=&quot;push&quot;
+ icon=&quot;icons/runXYZ2.gif&quot;
+ tooltip=&quot;Run XYZ2 Tool&quot;
+ helpContextId=&quot;com.xyz.run_action_context2&quot;
+ class=&quot;com.xyz.actions.RunXYZ2&quot;&gt;
+ &lt;enablement&gt;
+ &lt;and&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
+ &lt;not&gt;
+ &lt;objectState name=&quot;extension&quot; value=&quot;java&quot;/&gt;
+ &lt;/not&gt;
+ &lt;/and&gt;
+ &lt;/enablement&gt;
+ &lt;/action&gt;
+ &lt;/editorContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In the example above, the specified action will appear as a menu item in the sub-menu named &quot;XYZ2 Menu&quot; in the top level &quot;Edit&quot; menu. The action is enabled if the selection contains no Java file resources.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the class attribute must be a fully qualified
+name of a Java class that implements
+&lt;samp&gt;org.eclipse.ui.IEditorActionDelegate&lt;/samp&gt;.
+This class is loaded as late as possible to
+avoid loading the entire plug-in before it is really
+needed. The method &lt;samp&gt;setActiveEditor&lt;/samp&gt; will be
+called each time an editor of the specified type is
+activated. Only one set of actions and menus will be
+created for all instances of the specified editor
+type, regardless of the number of editor instances
+currently opened in the Workbench.
+&lt;p&gt;
+This extension point can be used to contribute actions
+into menus previously created by the target editor.
+In addition, menus and actions can be contributed to
+the Workbench window. The identifiers for actions and
+major groups within the Workbench window are defined in
+&lt;samp&gt;org.eclipse.ui.IWorkbenchActionConstants&lt;/samp&gt;.
+These should be used as a reference point for
+the addition of new actions. Top level menus are
+created by using the following values for the
+path attribute:
+&lt;ul&gt;
+&lt;li&gt;
+additions - represents a named group immediately to the left of the &lt;samp&gt;Window&lt;/samp&gt; menu.
+&lt;/li&gt;
+&lt;/ul&gt;
+Omitting the path attribute will result in adding the new menu into the additions menu bar group.
+&lt;p&gt;
+Actions and menus added into these paths will only
+be shown while the associated editor is active. When
+the editor is closed, menus and actions will be removed.
+&lt;p&gt;
+The enablement criteria for an action extension is initially defined by &lt;samp&gt;enablesFor&lt;/samp&gt;, and also either &lt;samp&gt;selection&lt;/samp&gt; or &lt;samp&gt;enablement&lt;/samp&gt;. However, once the action delegate has been instantiated, it may control the action enable state directly within its &lt;samp&gt;selectionChanged&lt;/samp&gt; method.
+&lt;p&gt;
+Action and menu labels may contain special characters that encode mnemonics using the following rules:
+&lt;ol&gt;
+&lt;li&gt;
+Mnemonics are specified using the ampersand (&apos;&amp;amp;&apos;) character in front
+of a selected character in the translated text. Since ampersand is not
+allowed in XML strings, use &lt;samp&gt;&amp;amp;amp;&lt;/samp&gt; character entity.&lt;/li&gt;
+&lt;/ol&gt;
+If two or more actions are contributed to a menu or toolbar by a single
+extension the actions will appear in the reverse order of how they are
+listed in the plugin.xml file. This behavior is admittedly unintuitive.
+However, it was discovered after the Eclipse Platform API was frozen.
+Changing the behavior now would break every plug-in which relies upon the
+existing behavior.
+&lt;p&gt;
+The &lt;samp&gt;selection&lt;/samp&gt; and &lt;samp&gt;enablement&lt;/samp&gt; elements are mutually exclusive. The &lt;samp&gt;enablement&lt;/samp&gt; element can replace the &lt;samp&gt;selection&lt;/samp&gt; element using the sub-elements &lt;samp&gt;objectClass&lt;/samp&gt; and &lt;samp&gt;objectState&lt;/samp&gt;. For example, the following:
+&lt;pre&gt;
+ &lt;selection
+ class=&quot;org.eclipse.core.resources.IFile&quot;
+ name=&quot;*.java&quot;&gt;
+ &lt;/selection&gt;
+&lt;/pre&gt;
+can be expressed using:
+&lt;pre&gt;
+ &lt;enablement&gt;
+ &lt;and&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
+ &lt;objectState name=&quot;extension&quot; value=&quot;java&quot;/&gt;
+ &lt;/and&gt;
+ &lt;/enablement&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The Workbench provides a built-in &quot;Default Text Editor&quot;. Plug-ins can contribute into this default editor or editors provided by other plug-ins.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2000, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/editors.exsd b/bundles/org.eclipse.rap.ui/schema/editors.exsd
new file mode 100755
index 0000000000..45169a85f2
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/editors.exsd
@@ -0,0 +1,336 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="editors" name="Internal and External Editors"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to add new editors to the
+workbench. A editor is a visual component within a
+workbench page. It is typically used to edit or browse
+a document or input object. To open an editor, the user
+will typically invoke &quot;Open&quot; on an &lt;samp&gt;IFile&lt;/samp&gt;.
+When this action is performed the workbench registry
+is consulted to determine an appropriate editor for
+the file type and then a new instance of the editor
+type is created. The actual result depends on the
+type of the editor. The workbench provides support
+for the creation of internal editors, which are tightly
+integrated into the workbench, and external editors,
+which are launched in a separate frame window.
+There are also various level of integration between
+these extremes.
+&lt;p&gt;
+In the case of an internal editor tight integration can
+be achieved between the workbench window and the editor
+part. The workbench menu and toolbar are pre-loaded
+with a number of common actions, such as cut, copy, and
+paste. The active part, view or editor, is expected to
+provide the implementation for these actions. An internal
+editor may also define new actions which appear in the
+workbench window. These actions only appear when the
+editor is active.
+&lt;p&gt;
+The integration between the workbench and external
+editors is more tenuous. In this case the workbench
+may launch an editor but after has no way of determining
+the state of the external editor or collaborating
+with it by any means except through the file system.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="editor" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="editor">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name" icon="icon"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="contentTypeBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this editor
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the UI for this editor
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ A relative name of the icon that will be used for all resources that match the specified extensions. Editors should provide an icon to make it easy for users to distinguish between different editor types. If you specify a command rather than a class, an icon is not needed. In that case, the workbench
+will use the icon provided by the operating system.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="extensions" type="string">
+ <annotation>
+ <documentation>
+ an optional field containing the list of file types understood by the editor. This is a string containing comma separate file extensions. For instance, an editor which understands hypertext documents may register for &quot;htm, html&quot;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ the name of a class that implements &lt;samp&gt;org.eclipse.ui.IEditorPart&lt;/samp&gt;. The attributes &lt;samp&gt;class&lt;/samp&gt;, &lt;samp&gt;command&lt;/samp&gt;, and &lt;samp&gt;launcher&lt;/samp&gt; are mutually exclusive. If this attribute is defined then &lt;samp&gt;contributorClass&lt;/samp&gt; should also be defined.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.part.EditorPart"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="command" type="string">
+ <annotation>
+ <documentation>
+ a command to run in order to launch an external editor. The executable command must be located on the system path or in the plug-in&apos;s directory. The attributes &lt;samp&gt;class&lt;/samp&gt;, &lt;samp&gt;command&lt;/samp&gt;, and &lt;samp&gt;launcher&lt;/samp&gt; are mutually exclusive.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="launcher" type="string">
+ <annotation>
+ <documentation>
+ the name of a class which that implements &lt;samp&gt;org.eclipse.ui.IEditorLauncher&lt;/samp&gt;.
+A launcher will open an external editor. The attributes &lt;samp&gt;class&lt;/samp&gt;, &lt;samp&gt;command&lt;/samp&gt;, and &lt;samp&gt;launcher&lt;/samp&gt; are mutually exclusive.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IEditorLauncher"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="contributorClass" type="string">
+ <annotation>
+ <documentation>
+ the name of a class that implements &lt;samp&gt;org.eclipse.ui.IEditorActionBarContributor&lt;/samp&gt;. This attribute should only be defined if the &lt;samp&gt;class&lt;/samp&gt; attribute is defined. This class is used to add new actions to the workbench menu and tool bar which reflect the features of the editor type.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.part.EditorActionBarContributor"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="default" type="boolean" use="default" value="false">
+ <annotation>
+ <documentation>
+ if true, this editor will be used as the default editor for the
+type. This is only relevant in a case where more than one editor
+is registered for the same type. If an editor is not the default
+for the type, it can still be launched using &quot;Open with...&quot;
+submenu for the selected resource.
+&lt;p&gt;
+Please note that this attribute is only honored for filename and extension associations at this time. It will not be honored for content type bindings. Content type-based resolution will occur on a first come, first serve basis and is not explicitly specified.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="filenames" type="string">
+ <annotation>
+ <documentation>
+ an optional field containing the list of file names
+understood by the editor. This is a string
+containing comma separate file names. For instance,
+an editor which understands specific hypertext
+documents may register for &quot;ejb.htm, ejb.html&quot;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="symbolicFontName" type="string">
+ <annotation>
+ <documentation>
+ the symbolic name of a font. The symbolic font name must be the id of a defined font (see org.eclipse.ui.fontDefinitions). If this attribute is missing or invalid then the font name is the value of &quot;org.eclipse.jface.textfont&quot; in the editor&apos;s preferences store. If there is no preference store or the key is not defined then the JFace text font will be used. The editor implementation decides if it uses this symbolic font name to set the font.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="matchingStrategy" type="string">
+ <annotation>
+ <documentation>
+ the name of a class that implements &lt;samp&gt;org.eclipse.ui.IEditorMatchingStrategy&lt;/samp&gt;. This attribute should only be defined if the &lt;samp&gt;class&lt;/samp&gt; attribute is defined. This allows the editor extension to provide its own algorithm for matching the input of one of its editors to a given editor input.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IEditorMatchingStrategy"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="contentTypeBinding">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="contentTypeId"/>
+ </appInfo>
+ <documentation>
+ Advertises that the containing editor understands the given content type and is suitable for editing files of that type.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="contentTypeId" type="string" use="required">
+ <annotation>
+ <documentation>
+ The content type identifier. This is an ID defined by the &apos;org.eclipse.core.runtime.contentTypes&apos; extension point.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example
+of an internal editor extension definition:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.editors&quot;&gt;
+ &lt;editor
+ id=&quot;com.xyz.XMLEditor&quot;
+ name=&quot;Fancy XYZ XML editor&quot;
+ icon=&quot;./icons/XMLEditor.gif&quot;
+ extensions=&quot;xml&quot;
+ class=&quot;com.xyz.XMLEditor&quot;
+ contributorClass=&quot;com.xyz.XMLEditorContributor&quot;
+ symbolicFontName=&quot;org.eclipse.jface.textfont&quot;
+ default=&quot;false&quot;&gt;
+ &lt;/editor&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ If the command attribute is used, it will be treated
+as an external program command line that will be executed
+ in a platform-dependent manner.
+&lt;p&gt;
+If the launcher attribute is used the editor will also
+be treated as an external program. In this case the
+specified class must implement
+&lt;samp&gt;org.eclipse.ui.IEditorLauncher&lt;/samp&gt;.
+The launcher will be instantiated and then
+&lt;samp&gt;open(IPath path)&lt;/samp&gt; will be invoked to
+launch the editor on the provided local file system path.
+&lt;p&gt;
+If the class attribute is used, the workbench will
+assume that it is an internal editor and the specified
+class must implement &lt;samp&gt;org.eclipse.ui.IEditorPart&lt;/samp&gt;.
+It is common practice to
+&lt;samp&gt;subclass org.eclipse.ui.EditorPart&lt;/samp&gt; when
+defining a new editor type. It is also necessary to
+define a &lt;samp&gt;contributorClass&lt;/samp&gt; attribute.
+The specified class must implement
+&lt;samp&gt;org.eclipse.ui.IEditorActionBarContributor&lt;/samp&gt;,
+and is used to add new actions to the workbench
+menu and tool bar which reflect the features of the
+editor type.
+&lt;p&gt;
+Within the workbench there may be more than one open
+editor of a particular type. For instance, there may
+be one or more open Java Editors. To avoid the creation
+of duplicate actions and action images the editor
+concept has been split into two. An
+&lt;samp&gt;IEditorActionBarContributor&lt;/samp&gt; is responsible
+for the creation of actions. The editor is responsible
+for action implementation. Furthermore, the contributor
+is shared by each open editor. As a result of this
+design there is only one set of actions for one or
+more open editors.
+&lt;p&gt;
+The contributor will add new actions to the workbench
+menu and toolbar which reflect the editor type. These
+actions are shared and, when invoked, act upon the
+active editor. The active editor is passed to the
+contributor by invoking
+&lt;samp&gt;IEditorActionBarContributor.setActiveEditor&lt;/samp&gt;.
+The identifiers for actions and major groups within
+the workbench window are defined in
+&lt;samp&gt;org.eclipse.ui.IWorkbenchActionConstants&lt;/samp&gt;.
+These should be used as a reference point for the
+addition of new actions. Top level menus are created
+by using the following values for the path attribute:
+&lt;ul&gt;
+&lt;li&gt;
+additions - represents a group to the left of the Window menu.
+&lt;/li&gt;
+&lt;/ul&gt;
+Actions and menus added into these paths will only be
+shown while the associated editor is active. When the
+editor is closed, menus and actions will be removed.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides a &quot;Default Text Editor&quot;. The end user product may contain other editors as part of the shipping bundle. In that case, editors will be registered as extensions using the syntax described above.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/elementFactories.exsd b/bundles/org.eclipse.rap.ui/schema/elementFactories.exsd
new file mode 100755
index 0000000000..78198d866f
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/elementFactories.exsd
@@ -0,0 +1,167 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="elementFactories" name="Element Factories"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to add element factories
+to the workbench. An element factory is used to
+recreate &lt;samp&gt;IAdaptable&lt;/samp&gt; objects which are
+persisted during workbench shutdown.
+&lt;p&gt;
+As an example, the element factory is used to
+persist editor input. The input for an
+editor must implement
+&lt;samp&gt;org.eclipse.ui.EditorInput&lt;/samp&gt;.
+The life cycle of an &lt;samp&gt;IEditorInput&lt;/samp&gt; within
+an editor has a number of phases.
+&lt;ol&gt;
+&lt;li&gt;
+The initial input for an editor is passed in during
+editor creation.
+&lt;/li&gt;
+&lt;li&gt;
+On shutdown the workbench state is captured.
+In this process the workbench will create a memento
+for each open editor and its input. The input is
+saved as a two part memento containing a factory ID
+and any primitive data required to recreate the
+element on startup. For more information see
+the documentation on
+&lt;samp&gt;org.eclipse.ui.IPersistableElement&lt;/samp&gt;.
+&lt;/li&gt;
+&lt;li&gt;
+On startup the workbench state is read and the
+editors from the previous session are recreated.
+In this process the workbench will recreate the input
+element for each open editor. To do this it will
+map the original factory ID for the input element
+to a concrete factory class defined in the registry.
+If a mapping exists, and the factory class is valid,
+an instance of the factory class is created. Then
+the workbench asks the factory to recreate the original
+element from the remaining primitive data within the
+memento. The resulting &lt;samp&gt;IAdaptable&lt;/samp&gt; is cast
+to an &lt;samp&gt;IEditorInput&lt;/samp&gt; and passed to the
+new editor.
+&lt;/li&gt;
+&lt;/ol&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="factory" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="factory">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this factory.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of a class that implements
+&lt;samp&gt;org.eclipse.ui.IElementFactory&lt;/samp&gt;
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IElementFactory"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of an element factory extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point = &quot;org.eclipse.ui.elementFactories&quot;&gt;
+ &lt;factory
+ id =&quot;com.xyz.ElementFactory&quot;
+ class=&quot;com.xyz.ElementFactory&quot;&gt;
+ &lt;/factory&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must
+be a fully qualified name of a class that implements
+&lt;samp&gt;org.eclipse.ui.IElementFactory&lt;/samp&gt;. An instance
+of this class must create an &lt;samp&gt;IAdaptable&lt;/samp&gt;
+object from a workbench memento.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides an &lt;samp&gt;IResource&lt;/samp&gt; factory.
+Additional factories should be added to recreate other
+&lt;samp&gt;IAdaptable&lt;/samp&gt; types commonly found in other
+object models, such as the Java Model.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/encodings.exsd b/bundles/org.eclipse.rap.ui/schema/encodings.exsd
new file mode 100755
index 0000000000..093aaf4b07
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/encodings.exsd
@@ -0,0 +1,125 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="encodings" name="Encodings"/>
+ </appInfo>
+ <documentation>
+ A list of encodings that will be made available to the user for selection of file encodings. This list corresponds to the values of Charset#getName() for a series of Charsets. Those that are specified but not avaiable will be indicated as such in the workbench and will not be selectable by the user.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <documentation>
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="encoding" 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="encoding">
+ <annotation>
+ <documentation>
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name of the charset. If this value is sent to Charset#getName(String) the corresponding Charset would be returned.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of an encodings extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.encodings&quot;&gt;
+ &lt;encoding name=&quot;ISO-8859-1&quot;/&gt;
+ &lt;encoding name=&quot;UTF-8&quot;/&gt;
+ &lt;encoding name=&quot;US-ASCII&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ Use method &lt;code&gt;org.eclipse.ui.WorkbenchEncoding.getDefinedEncodings&lt;/code&gt; to retrieve the encodings defined by this extension point.
+Use method &lt;code&gt;org.eclipse.ui.WorkbenchEncoding.getWorkbenchDefaultEncoding&lt;/code&gt; to retrieve the default encoding from the virtual machine.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides some commonly used encodings.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2004,2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/exportWizards.exsd b/bundles/org.eclipse.rap.ui/schema/exportWizards.exsd
new file mode 100755
index 0000000000..6b15ea7c66
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/exportWizards.exsd
@@ -0,0 +1,254 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="exportWizards" name="Export Wizards"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to register export wizard extensions. Export wizards appear as choices within the &quot;Export Dialog&quot;, and are used to export resources from the workbench.
+&lt;p&gt;
+Wizards may optionally specify a description subelement whose body should contain short text about the wizard.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="category"/>
+ <element ref="wizard"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="category">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name"/>
+ </appinfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this category
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the category that will be used in the dialog box
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentCategory" type="string">
+ <annotation>
+ <documentation>
+ a path to another category if this category should be added as a child
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.exportWizards/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="wizard">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name" icon="icon"/>
+ </appinfo>
+ <documentation>
+ an element that will be used to create export wizard
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this wizard
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the dialog box to represent this wizard
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) of category IDs. Each token in the
+path must represent a valid category ID previously defined
+by this or some other plug-in. If omitted, the wizard will be
+added to the &quot;Other&quot; category.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.exportWizards/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class that implements &lt;tt&gt;org.eclipse.ui.IExportWizard&lt;/tt&gt;
+interface
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jface.wizard.Wizard:org.eclipse.ui.IExportWizard"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative name of the icon that will be used
+alongside the wizard name in the export engine listing.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <appinfo>
+ <meta.element translatable="true"/>
+ </appinfo>
+ <documentation>
+ an optional subelement whose body should represent a short description
+of the export engine functionality.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="selection">
+ <annotation>
+ <documentation>
+ an optional element that restricts the types and names of objects that can be selected
+when the wizard is invoked.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name filter. Each object in the workbench selection must match the name filter to be passed to the wizard.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified class name. If each object in the workbench selection implements this interface the selection will be passed to the wizard. Otherwise, an empty selection is passed.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of an export extension definition:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.exportWizards&quot;&gt;
+ &lt;wizard
+ id=&quot;com.xyz.ExportWizard1&quot;
+ name=&quot;XYZ Web Exporter&quot;
+ class=&quot;com.xyz.exports.ExportWizard1&quot;
+ icon=&quot;./icons/import1.gif&quot;&gt;
+ &lt;description&gt;
+ A simple engine that exports Web project
+ &lt;/description&gt;
+ &lt;selection class=&quot;org.eclipse.core.resources.IProject&quot;/&gt;
+ &lt;/wizard&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute
+must be a name of the class that implements
+&lt;samp&gt;org.eclipse.ui.IExportWizard&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The workbench comes preloaded with basic export engines
+for files and directories.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/fontDefinitions.exsd b/bundles/org.eclipse.rap.ui/schema/fontDefinitions.exsd
new file mode 100755
index 0000000000..e62c8e4f06
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/fontDefinitions.exsd
@@ -0,0 +1,193 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="fontDefinitions" name="Font Definitions"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to register fonts with the JFace FontRegistry and with the workbench preference store for use by the Fonts preference page.
+
+This extension point has been deprecated in 3.0. You should now add fontDefinition elements to org.eclipse.ui.themes.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="fontDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="fontDefinition">
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this font definition.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the font to be presented to the user.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;the font value. This is in the form: &lt;code&gt;fontname-style-height&lt;/code&gt; where &lt;code&gt;fontname&lt;/code&gt; is the name of a font, &lt;code&gt;style&lt;/code&gt; is a font style (one of &lt;code&gt;&quot;regular&quot;&lt;/code&gt;, &lt;code&gt;&quot;bold&quot;&lt;/code&gt;, &lt;code&gt;&quot;italic&quot;&lt;/code&gt;, or &lt;code&gt;&quot;bold italic&quot;&lt;/code&gt;) and &lt;code&gt;height&lt;/code&gt; is an integer representing the font height.&lt;/p&gt;
+&lt;p&gt;Example: &lt;code&gt;Times New Roman-bold-36&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;
+Only one (or neither) of value or defaultsTo may be used.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="categoryId" type="string">
+ <annotation>
+ <documentation>
+ the optional id of the presentation category this font belongs to.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="defaultsTo" type="string">
+ <annotation>
+ <documentation>
+ the id of another font definition that is the default setting for the receiver. When there is no preference for this font the font registry will have the value of defaultsTo set for it in the registry.
+&lt;p&gt;
+Only one or neither of value or defaultsTo may be used.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description">
+ <annotation>
+ <appInfo>
+ <meta.element translatable="true"/>
+ </appInfo>
+ <documentation>
+ a short description of the fonts usage
+ </documentation>
+ </annotation>
+ <complexType>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of an a font definition extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.fontDefinition&quot;&gt;
+ &lt;fontDefinition
+ id=&quot;org.eclipse.examples.textFont&quot;
+ label=&quot;Text&quot;&gt;
+ &lt;description&gt;
+ The text font
+ &lt;/description&gt;
+ &lt;/fontDefinition&gt;
+
+ &lt;fontDefinition
+ id=&quot;org.eclipse.examples.userFont&quot;
+ label=&quot;User&quot;
+ defaultsTo=&quot;org.eclipse.jface.textFont&quot;&gt;
+ &lt;description&gt;
+ The user font
+ &lt;/description&gt;
+ &lt;/fontDefinition&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The defaultsTo tag is used as a directive by
+the Workbench to set the value of the font definition to the value of defaultsTo
+whenever the defaultsTo fontDefinition is updated. This only occurs if the
+fontDefinition is at its default value - once it is set by the user this updates
+will not occur. The workbench provides 4 fonts:
+&lt;P&gt;&lt;b&gt;org.eclipse.jface.bannerfont&lt;/b&gt;. The banner font is used in wizard banners.&lt;br&gt;
+&lt;b&gt;org.eclipse.jface.dialogfont&lt;/b&gt;. The dialog font is the font for widgets in dialogs.&lt;br&gt;
+&lt;b&gt;org.eclipse.jface.headerfont&lt;/b&gt;. The header font is used for section headers in composite text pages.&lt;br&gt;
+&lt;b&gt;org.eclipse.jface.textfont&lt;/b&gt;. The text font is used by text editors.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides the font
+definitions for the text, dialog, banner and header fonts.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/handlers.exsd b/bundles/org.eclipse.rap.ui/schema/handlers.exsd
new file mode 100755
index 0000000000..edcd9783a1
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/handlers.exsd
@@ -0,0 +1,305 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="handlers" name="Handlers"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+The handlers extension point is an elaboration of the experimental &lt;code&gt;handlerSubmission&lt;/code&gt; element defined in Eclipse 3.0. A handler is the behaviour of a command at a particular point in time. A command can have zero or more handlers associated with it. At any one point in time, however, a command will either have no active handler or one active handler. The active handler is the one which is currently responsible for carrying out the behaviour of the command. This is very similar to the concept of an action handler and a retargettable action.
+&lt;/p&gt;
+&lt;p&gt;
+The handlers extension point allows a plug-in developer to specify a handler that should become active and/or enabled under certain conditions. If a handler is inactive, then no command will delegate its behaviour to the handler. If a handler is disabled, then the handler will not be asked to execute; execution of the handler is blocked. The conditions are defined using the expression language facility added during 3.0. They are expressed using &lt;code&gt;activeWhen&lt;/code&gt; and &lt;code&gt;enabledWhen&lt;/code&gt; clauses.
+&lt;/p&gt;
+&lt;p&gt;
+The workbench provides some variables that these expressions can rely on. Variables that are valid in activeWhen and enabledWhen expressions can be found in &lt;code&gt;org.eclipse.ui.ISources&lt;/code&gt;. The types of the variables are determined by the &lt;code&gt;org.eclipse.ui.ISourceProvider&lt;/code&gt; that provides them.
+&lt;/p&gt;
+&lt;p&gt;
+A handler that specifies no conditions is a default handler. A default handler is only active if no other handler has all of its conditions satisfied. If two handlers still have conditions that are satisfied, then the conditions are compared. The idea is to select a handler whose condition is more specific or more local. To do this, the variables referred to by the condition are looked at. The condition that refers to the most specific variable &quot;wins&quot;. The order of specificity (from least specific to most specific) is suggested in &lt;code&gt;org.eclipse.ui.ISources&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+If this still doesn&apos;t resolve the conflict, then no handler is active. If a particular tracing option is turned on, then this leads to a message in the log. A conflict can also occur if there are two default handlers. It is the responsibility of the plug-in developers and integration testers to ensure that this does not happen.
+&lt;/p&gt;
+&lt;p&gt;
+These conditions are used to avoid unnecessary plug-in loading. These handler definitions are wrapped in a proxy. For a proxy to load its underlying handler, two things must happen: the conditions for the proxy must be met so that it becomes active, and the command must be asked to do something which it must delegate (e.g., execute(), isEnabled()).
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="handler" 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>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="handler">
+ <annotation>
+ <documentation>
+ &lt;p&gt;Associated a command with a handler implementation.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="activeWhen" minOccurs="0" maxOccurs="1"/>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ <element ref="enabledWhen" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="commandId" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;The id of the command to associate with this handler implementation.&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;The handler class that imlements &lt;code&gt;org.eclipse.core.commands.IHandler&lt;/code&gt; or extends &lt;code&gt;org.eclipse.core.commands.AbstractHandler&lt;/code&gt;.&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.core.commands.IHandler"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContextId" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+The identifier of the help context that relates to this specific handler. While a command can provide a general description of a command&apos;s behaviour, it is sometimes appropriate for a handler to provide help more specific to their implementation.
+&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Since: 3.2&lt;/em&gt;&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="activeWhen">
+ <annotation>
+ <documentation>
+ &lt;p&gt;Contains a core expression used by the &lt;code&gt;IHandlerService&lt;/code&gt; to determine when this handler is active.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="not"/>
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="instanceof"/>
+ <element ref="test"/>
+ <element ref="systemTest"/>
+ <element ref="equals"/>
+ <element ref="count"/>
+ <element ref="with"/>
+ <element ref="resolve"/>
+ <element ref="adapt"/>
+ <element ref="iterate"/>
+ <element ref="reference"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="enabledWhen">
+ <annotation>
+ <documentation>
+ &lt;p&gt;Contains a core expression used by the workbench handler proxy to determine when this handler is enabled without loading it.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="not"/>
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="instanceof"/>
+ <element ref="test"/>
+ <element ref="systemTest"/>
+ <element ref="equals"/>
+ <element ref="count"/>
+ <element ref="with"/>
+ <element ref="resolve"/>
+ <element ref="adapt"/>
+ <element ref="iterate"/>
+ <element ref="reference"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation>
+ <documentation>
+ &lt;p&gt;Used when creating an &lt;code&gt;IExecutableExtension&lt;/code&gt; with a named parameter, or more than one.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;The handler class that imlements &lt;code&gt;org.eclipse.core.commands.IHandler&lt;/code&gt; or extends &lt;code&gt;org.eclipse.core.commands.AbstractHandler&lt;/code&gt;.&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.core.commands.IHandler"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <documentation>
+ &lt;p&gt;A parameter for an &lt;code&gt;IExecutableExtension&lt;/code&gt;.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;The parameter name.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;The parameter value.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 3.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+Variables that are valid in activeWhen and enabledWhen expressions can be found in &lt;code&gt;org.eclipse.ui.ISources&lt;/code&gt;. The types of the variables are determined by the &lt;code&gt;org.eclipse.ui.ISourceProvider&lt;/code&gt; that provides them.
+&lt;/p&gt;
+&lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.handlers&quot;&gt;
+ &lt;handler
+ commandId=&quot;commandId&quot;
+ class=&quot;org.eclipse.compare.Command&quot;&gt;
+ &lt;activeWhen&gt;
+ &lt;with variable=&quot;selection&quot;&gt;
+ &lt;count value=&quot;1&quot; /&gt;
+ &lt;iterate operator=&quot;and&quot;&gt;
+ &lt;adapt type=&quot;org.eclipse.core.resources.IResource&quot; /&gt;
+ &lt;/iterate&gt;
+ &lt;/with&gt;
+ &lt;/activeWhen&gt;
+ &lt;/handler&gt;
+ &lt;handler
+ commandId=&quot;other.commandId&quot;
+ class=&quot;org.eclipse.ui.TalkToMe&quot;&gt;
+ &lt;activeWhen&gt;
+ &lt;with variable=&quot;activePartId&quot;&gt;
+ &lt;equals value=&quot;org.eclipse.ui.views.SampleView&quot;/&gt;
+ &lt;/with&gt;
+ &lt;/activeWhen&gt;
+ &lt;/handler&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+&lt;p&gt;
+To further avoid plug-in loading, it is possible to specify when the handler is enabled. If the proxy has not yet loaded the handler, then only the expressions syntax is used to decide if the handler is enabled. If the proxy has loaded the handler, then the expressions syntax is consulted first. If the expressions syntax evaluates to true, then the handler is asked if it is enabled. (This is a short-circuit Boolean &quot;and&quot; operation between the expressions syntax and the handler&apos;s enabled state.)
+&lt;/p&gt;
+&lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.handlers&quot;&gt;
+ &lt;handler
+ commandId=&quot;commandId&quot;
+ class=&quot;org.eclipse.Handler&quot;&gt;
+ &lt;enabledWhen&gt;
+ &lt;with variable=&quot;activeContexts&quot;&gt;
+ &lt;iterator operator=&quot;or&quot;&gt;
+ &lt;equals value=&quot;org.eclipse.ui.contexts.window&quot;/&gt;
+ &lt;/iterator&gt;
+ &lt;/with&gt;
+ &lt;/enabledWhen&gt;
+ &lt;/handler&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+All handlers implement &lt;code&gt;org.eclipse.core.commands.IHandler&lt;/code&gt;, and can use &lt;code&gt;org.eclipse.core.commands.AbstractHandler&lt;/code&gt; as a base class. Within the workbench, it is possible to activate and deactivate handlers using the &lt;code&gt;org.eclipse.ui.handlers.IHandlerService&lt;/code&gt; interface. This interface can be retrieved from supporting workbench objects, such as &lt;code&gt;IWorkbench&lt;/code&gt; itself, a workbench window, or a part site. To retrieve the service, you would make a call like &lt;code&gt;IWorkbench.getService(IHandlerService.class)&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+It is also possible to activate and deactive handlers using legacy code in the workbench. This can be done through the legacy mechanism shown below. This mechanism is useful to clients who are using actions to contribute to menus or toolbars. This is deprecated and not recommended.
+&lt;/p&gt;
+&lt;pre&gt;
+ IWorkbenchPartSite mySite;
+ IAction myAction;
+
+ myAction.setActionDefinitionId(commandId);
+ IKeyBindingService service = mySite.getKeyBindingService();
+ service.registerAction(myAction);
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2005, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/helpSupport.exsd b/bundles/org.eclipse.rap.ui/schema/helpSupport.exsd
new file mode 100755
index 0000000000..ea1ca2e875
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/helpSupport.exsd
@@ -0,0 +1,121 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="helpSupport" name="HelpSupport"/>
+ </appInfo>
+ <documentation>
+ This extension point is for contributing the help system UI. The platform should be configured with no more than one help system UI.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="config" minOccurs="0" maxOccurs="1"/>
+ </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="config">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ the implementation class for displaying online and context-sensitive
+help. This class must implement the &lt;samp&gt;org.eclipse.ui.help.AbstractHelpUI&lt;/samp&gt;
+interface.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.help.AbstractHelpUI"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.0 (originally named org.eclipse.help.support)
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is a sample usage of the help support extension point:
+
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.helpSupport&quot;&gt;
+ &lt;config class=&quot;com.example.XYZHelpUI&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The supplied class must implement a subclass of &lt;samp&gt;org.eclipse.ui.help.AbstractHelpUI&lt;/samp&gt;.
+Implementation of the abstract methods in that class
+determine what happens when a user asks for online help or context-sensitive help. The implementation should access contributed help information using org.eclipse.help.HelpSystem.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The &lt;samp&gt;org.eclipse.help.ui&lt;/samp&gt; plug-in contains an implementation of the help system UI.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/importWizards.exsd b/bundles/org.eclipse.rap.ui/schema/importWizards.exsd
new file mode 100755
index 0000000000..5b160e3998
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/importWizards.exsd
@@ -0,0 +1,251 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="importWizards" name="Import Wizards"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to register import wizard extensions. Import wizards appear as choices within the &quot;Import Dialog&quot; and are used to import resources into the workbench.
+&lt;p&gt;
+Wizards may optionally specify a description subelement whose body should contain short text about the wizard.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="category"/>
+ <element ref="wizard"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="category">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name"/>
+ </appinfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this category
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the category that will be used in the dialog box
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentCategory" type="string">
+ <annotation>
+ <documentation>
+ a path to another category if this category should be added as a child
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.importWizards/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="wizard">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name" icon="icon"/>
+ </appinfo>
+ <documentation>
+ an element that will be used to create import wizard
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this wizard
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the dialog box to represent this wizard
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) of category IDs. Each token in the
+path must represent a valid category ID previously defined
+by this or some other plug-in. If omitted, the wizard will be
+added to the &quot;Other&quot; category.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.importWizards/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class that implements &lt;samp&gt;org.eclipse.ui.IImportWizard&lt;/samp&gt; interface
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jface.wizard.Wizard:org.eclipse.ui.IImportWizard"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative name of the icon that will be used alongside the wizard name in the import engine listing.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <appinfo>
+ <meta.element translatable="true"/>
+ </appinfo>
+ <documentation>
+ an optional subelement whose body should represent a short description of the import engine functionality.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="selection">
+ <annotation>
+ <documentation>
+ an optional element that restricts the types and names of objects that can be selected when the wizard is invoked.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name filter. Each object in the workbench selection must match the name filter to be passed to the wizard.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ fully qualified class name. If each object in the workbench selection implements this interface the selection will be passed to the wizard. Otherwise, an empty selection is passed.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of an import extension definition:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.importWizards&quot;&gt;
+ &lt;wizard
+ id=&quot;com.xyz.ImportWizard1&quot;
+ name=&quot;XYZ Web Scraper&quot;
+ class=&quot;com.xyz.imports.ImportWizard1&quot;
+ icon=&quot;./icons/import1.gif&quot;&gt;
+ &lt;description&gt;
+ A simple engine that searches the Web and imports files
+ &lt;/description&gt;
+ &lt;selection class=&quot;org.eclipse.core.resources.IResource&quot;/&gt;
+ &lt;/wizard&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must represent a name of the class that implements
+ &lt;samp&gt;org.eclipse.ui.IImportWizard&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The workbench comes preloaded with the basic import engines for files and directories.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/internalTweaklets.exsd b/bundles/org.eclipse.rap.ui/schema/internalTweaklets.exsd
new file mode 100755
index 0000000000..94395842a8
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/internalTweaklets.exsd
@@ -0,0 +1,172 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="internalTweaklets" name="%ExtPoint.tweaklets"/>
+ </appInfo>
+ <documentation>
+ This internal extension point is not considered API. It is used to define tweaklets. A tweaklet is anything that can be used to tweak the look and feel of the Workbench.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="tweaklet"/>
+ </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="tweaklet">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name" icon="icon"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this tweaklet
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the UI for this tweaklet
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ a translatable short description of this tweaklet, to be used in the UI
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="definition" type="string">
+ <annotation>
+ <documentation>
+ an identifier of the tweaklet definition in the workbench, typically a fully qualified type name
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="implementation" type="string">
+ <annotation>
+ <documentation>
+ an identifier of the tweaklet implementation provided by the extender, typically a fully qualified class name
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative name of the icon that will
+be associated with the tweaklet.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.3
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example tweaklet:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.internalTweaklets&quot;&gt;
+ &lt;tweaklet
+ id=&quot;org.eclipse.ui.internal.tweaklets.ConcreteXYZTweaklet&quot;
+ name=&quot;XYZ Tweaklet&quot;
+ description=&quot;Short description of the tweak&quot;
+ definition=&quot;org.eclipse.ui.internal.tweaklets.AbstractXYZTweaklet&quot;
+ implementation=&quot;org.eclipse.ui.internal.tweaklets.ConcreteXYZTweaklet&quot;
+ icon=&quot;icons/XYZ.gif&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ Typically, although not required, the value of the &lt;samp&gt;definition&lt;/samp&gt; attribute is the
+fully qualified name of an abstract class or an interface defined by the
+workbench, and the value of the &lt;samp&gt;implementation&lt;/samp&gt; attribute is the
+fully qualified name of a non-abstract class provided by the extending plug-in.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ Tweaklet implementations can be found in the Eclipse Platform incubator.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/intro.exsd b/bundles/org.eclipse.rap.ui/schema/intro.exsd
new file mode 100755
index 0000000000..29ffa19d5a
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/intro.exsd
@@ -0,0 +1,204 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="intro" name="Intro Part"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;This extension point is used to register implementations of special workbench parts, called intro parts, that are responsible for introducing a product to new users. An intro part is typically shown the first time a product is started up. Rules for associating an intro part implementation with particular products are also contributed via this extension point.
+&lt;/p&gt;
+The life cycle is as follows:
+&lt;ul&gt;
+&lt;li&gt;The intro area is created on workbench start up. As with editor and view areas, this area is managed by an intro site (implementing &lt;code&gt;org.eclipse.ui.intro.IIntroSite&lt;/code&gt;).&lt;/li&gt;
+&lt;li&gt;The id of the current product (Platform.getProduct()) is used to choose the relevant intro part implementation.
+&lt;/li&gt;
+&lt;li&gt;The intro part class (implementing &lt;code&gt;org.eclipse.ui.intro.IIntroPart&lt;/code&gt;) is created and initialized with the intro site.
+&lt;/li&gt;
+&lt;li&gt;While the intro part is showing to the user, it can transition back and forth between full and standby mode (either programmatically or explicitly by the user).
+&lt;/li&gt;
+&lt;li&gt;Eventually the intro part is closed (either programmatically or explicitly by the user). The current perspective takes over the entire workbench window area.
+&lt;/li&gt;
+&lt;/ul&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="intro" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="introProductBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="intro">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="id" icon="icon"/>
+ </appInfo>
+ <documentation>
+ Specifies an introduction. An introduction is a product-specific presentation shown to first-time users on product start up.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier for this introduction
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a plug-in-relative file name of the icon that will be associated with this introduction
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class implementing the &lt;code&gt;org.eclipse.ui.intro.IIntroPart&lt;/code&gt; interface. A common practice
+is to subclass &lt;samp&gt;org.eclipse.ui.part.intro.IntroPart&lt;/samp&gt;
+in order to inherit the default functionality. This class implements the introduction.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.intro.IIntroPart"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="contentDetector" type="string">
+ <annotation>
+ <documentation>
+ a fully qualified name of a class extending &lt;code&gt;org.eclipse.ui.intro.IntroContentDetector&lt;/code&gt;. This optional class is used to detect newly added introduction content. If new content is available, the view showing the introduction will be opened again.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.intro.IntroContentDetector"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string">
+ <annotation>
+ <documentation>
+ an string label for this introduction that will be used in the construction of the open action as well as the part label
+Since 3.2
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="introProductBinding">
+ <annotation>
+ <documentation>
+ Specifies a binding between a product and an introduction. These bindings determine which introduction is appropriate for the current product (as defined by &lt;code&gt;org.eclipse.core.runtime.Platform.getProduct()&lt;/code&gt;).
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="productId" type="string" use="required">
+ <annotation>
+ <documentation>
+ unique id of a product
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="introId" type="string" use="required">
+ <annotation>
+ <documentation>
+ unique id of an introduction
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of an intro part extension that contributes an particular introduction and associates it with a particular product:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.intro&quot;&gt;
+ &lt;intro
+ id=&quot;com.example.xyz.intro.custom&quot;
+ class=&quot;com.example.xyz.intro.IntroPart&quot;/&gt;
+ &lt;introProductBinding
+ productId=&quot;com.example.xyz.Product&quot;
+ introId=&quot;com.example.xyz.intro.custom&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The value of the &lt;code&gt;class&lt;/code&gt; attribute must be the fully qualified name of a class that implements the&lt;code&gt;org.eclipse.ui.intro.IIntroPart&lt;/code&gt; interface by subclassing &lt;code&gt;org.eclipse.ui.part.intro.IntroPart&lt;/code&gt;.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ There are no default implementations of the initial user experience. Each Eclipse-based product is responsible for providing one that is closely matched to its branding and function.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2004, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/keywords.exsd b/bundles/org.eclipse.rap.ui/schema/keywords.exsd
new file mode 100755
index 0000000000..f1dde3a660
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/keywords.exsd
@@ -0,0 +1,136 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="keywords" name="Keywords"/>
+ </appInfo>
+ <documentation>
+ The keywords extension point defines keywords and a unique id for reference by other schemas.
+
+See propertyPages and preferencePages.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <documentation>
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="keyword">
+ <annotation>
+ <documentation>
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The id is the unique id used to reference the keyword.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ The human readable label of the keyword
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a keyword extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.keywords&quot;&gt;
+ &lt;keyword
+ label=&quot;presentation tab themes&quot;
+ id=&quot;com.xyz.AppearanceKeywords&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ There currently is no public API for retrieving or creating keywords other than this extension point.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ Keywords are used only with preference and property pages. See the &lt;samp&gt;keywordReference&lt;/samp&gt; element of the org.eclipse.ui.propertyPages and org.eclipse.ui.preferencePages extension points.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2005,2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/menus.exsd b/bundles/org.eclipse.rap.ui/schema/menus.exsd
new file mode 100755
index 0000000000..ac63f00a59
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/menus.exsd
@@ -0,0 +1,958 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="menus" name="Menus"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+This extension point allows the plug-in developer to add (contribute) a variety of custom additions to the eclipse framework:
+&lt;ul&gt;
+ &lt;li&gt;Main Menu&lt;/li&gt;
+ &lt;li&gt;Main Toolbars&lt;/li&gt;
+ &lt;li&gt;View Menus/Toolbars:
+ &lt;ul&gt;
+ &lt;li&gt;View Dropdown Menu&lt;/li&gt;
+ &lt;li&gt;View Toolbar&lt;/li&gt;
+ &lt;li&gt;Context Menu(s)&lt;/li&gt;
+ &lt;/ul&gt;
+ &lt;/li&gt;
+ &lt;li&gt;Trim&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/p&gt;
+&lt;p&gt;
+It provides a common implementation for and acts as a replacement of the following (legacy) eclipse extension points:
+&lt;ul&gt;
+&lt;li&gt;org.eclipse.ui.ActionSets&lt;/li&gt;
+&lt;li&gt;org.eclipse.ui.EditorActions&lt;/li&gt;
+&lt;li&gt;org.eclipse.ui.popupMenus (including &apos;objectContributions&apos;)&lt;/li&gt;
+&lt;li&gt;org.eclipse.ui.viewActions&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/p&gt;
+&lt;p&gt;
+The general strategy for this mechanism is to separate the &apos;location&apos; where the contributions should be inserted from the visibility and enablement state of the element. Each contribution first defines its insertion location through a Menu &apos;URI&apos;, a string (loosely) formatted according to the jave.net.URI format:
+&lt;/p&gt;&lt;p&gt;
+&lt;b&gt;&quot;[Scheme]:[ID]?[ArgList]&quot;&lt;/b&gt;
+&lt;ul&gt;
+&lt;li&gt;&lt;b&gt;Scheme&lt;/b&gt; - The &apos;type&apos; of the UI component into which the contributions will be added. It may be either &quot;menu&quot;, &quot;popup&quot; or &quot;toolbar&quot;. While &apos;popup&apos; is indeed a form of menu it is provided to allow a distinction between a view&apos;s &apos;chevron&apos; menu (for which we use the &quot;menu&quot; scheme) and its default context menu which, by convention, should be registered using the &quot;popup&quot; scheme.&lt;/li&gt;
+&lt;li&gt;&lt;b&gt;ID&lt;/b&gt; - This is the id of menu or toolbar into which the contributions should be added. By convention views should use their view id as the id of the root of their chevron and default popup menu. Note that there is no explicit distinction between contributions supporting editors and &apos;normal&apos; contributions into the Menu Menu or Toolbar; both global contributions and editor contributions would use the &quot;org.eclipse.ui.main.menu&quot; id or &quot;org.eclipse.ui.main.toolbar&quot;. A special id used with popup:, &quot;org.eclipse.ui.any.popup&quot;, is reserved to handle contributions which are candidates to appear on any (top level) context menu. Note that these contributions are expected to implement a &apos;visibleWhen&apos; expression sufficient to limit their visibility to appropriate menus&lt;/li&gt;
+&lt;li&gt;&lt;b&gt;Query&lt;/b&gt; - This field allows fine-grained definition of the specific location &lt;i&gt;within&lt;/i&gt; a given menu. It has the form &quot;[placement]=[id]&quot; where placement is one of &quot;before&quot; or &quot;after&quot; and the id is expected to be the id of some IContributionItem in the menu.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;
+This will define the location at which the contributions will appear in the eclipse UI. Once the insertion point has been defined the rest of the contributions describe the UI elements that will be added at that location. Each element supports a &apos;visibleWhen&apos; expression that determines at run time whether a particular item should appear in the menu based on the system&apos;s current state (selection, active view/editor, context...). See &lt;code&gt;org.eclipse.ui.ISources&lt;/code&gt; for a list of currently
+supported variables.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="group" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="widget" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="menuContribution" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ org.eclipse.ui.menus
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ An optional identifier of the extension instance.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ An optional name of the extension instance.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="group">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+A logical group. It can either be visible (e.g., separators are drawn before and after, as appropriate) or invisible. By default, logicial groups are visible.
+&lt;/p&gt;
+&lt;p&gt;
+A group can contain menus, items and other groups.
+&lt;/p&gt;
+&lt;p&gt;
+This element is deprecated. Groups are now expressed as id&apos;d &apos;separator&apos; elements. The menu insertion URI can be used to define an insertion point either &apos;before&apos; or &apos;after&apos; &lt;b&gt;any&lt;/b&gt; id&apos;d element and placing it after the separator is the same as contibuting it to the group. &lt;/p&gt;
+&lt;p&gt;
+See the documentation for the &apos;locationURI&apos; attribute of &apos;menuAddition&apos; for more details on how to define insertion points adn how they relate to the menu structure.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="location" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ A unique identifier for this group. It is recommended that the identifier be prefixed by the plug-in name, to guarantee uniqueness. For example, a group contributed by &lt;code&gt;org.eclipse.ui&lt;/code&gt; might be called &lt;code&gt;org.eclipse.ui.group1&lt;/code&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="separatorsVisible" type="boolean" use="default" value="true">
+ <annotation>
+ <documentation>
+ Whether separators should be drawn around the group. The workbench will take care of deciding whether a separator needs to be drawn at the top or bottom -- accounting for the top and bottom of the menu and duplicate separators. By default, separators are visible.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="widget">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ A menu or trim element that is given direct access to the widgets. For example, this can be used to render a combo box. &lt;b&gt;NOTE:&lt;/b&gt; If a widget element becomes visible in the user interface, this will lead to plug-in loading. &lt;strong&gt;Use this element with caution, as it can cause performance problems.&lt;/strong&gt;
+ When used as trim the widget will only cause the plug-in to load when it becomes visible in the UI.
+&lt;p&gt;
+&lt;b&gt;NOTE:&lt;/b&gt; This element is deprecated. Clients should contribute a Toolbar to one of the trim areas and place a control contribution inside it. See the Trim Contribution example for details.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="location" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ <element ref="visibleWhen" minOccurs="0" maxOccurs="1"/>
+ <element ref="layout" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ A unique identifier for this widget. It is recommended that the identifier be prefixed by the plug-in name, to guarantee uniqueness. For example, a widget contributed by &lt;code&gt;org.eclipse.ui&lt;/code&gt; might be called &lt;code&gt;org.eclipse.ui.widget1&lt;/code&gt;.
+&lt;p&gt;
+If defined then it can be used as a reference in the Query part of the location defining whether the additions are to go before or after this element (or at the end of the logical group containing this element using the &apos;endof&apos; value).
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ This class is loaded to fill the appropriate spot in the menu or trim when it shows. While, strictly speaking, this class must implement &lt;code&gt;IWorkbenchWidget&lt;/code&gt; you should use the default implementation; &lt;code&gt;AbstractWorkbenchTrimWidget&lt;/code&gt; as the base from which to derive your widget implementation. This implementation handles the &apos;init&apos; method and caches the result for use through its &lt;code&gt;getWorkbenchWindow&lt;/code&gt; method.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.menus.IWorkbenchWidget"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="layout">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ This element can be used to specify various layout options for elements added into &lt;code&gt;trim&lt;/code&gt; locations.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="fillMajor" type="boolean">
+ <annotation>
+ <documentation>
+ The widget will stretch to use up any additional space available along its &lt;b&gt;major&lt;/b&gt; dimension in the group&apos;s area (i.e. it will use the extra horizontal space for horizontally oriented trim areas). Default is &lt;code&gt;false&lt;/code&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="fillMinor" type="boolean">
+ <annotation>
+ <documentation>
+ The widget will stretch to use up any additional space available along its &lt;b&gt;minor&lt;/b&gt; dimension in the group&apos;s area (i.e. it will use the extra vertical space for horizontally oriented trim areas). Default is &lt;code&gt;false&lt;/code&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="location">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ A location in which a &lt;code&gt;menu&lt;/code&gt;, &lt;code&gt;group&lt;/code&gt;, &lt;code&gt;item&lt;/code&gt; or &lt;code&gt;widget&lt;/code&gt; can appear. This element is used to control location-specific information.
+&lt;p&gt;
+This element is deprecated. Users of this extension point should now define the location at which their contributions should appear using the &apos;locationURI&apos; specification.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="order" minOccurs="0" maxOccurs="1"/>
+ <choice>
+ <element ref="bar"/>
+ <element ref="part"/>
+ <element ref="popup"/>
+ </choice>
+ </sequence>
+ <attribute name="mnemonic" type="string">
+ <annotation>
+ <documentation>
+ The mnemonic that should be associated with this element in the given location. A mnemonic should be a single character.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="imageStyle" type="string">
+ <annotation>
+ <documentation>
+ The image style to associate with this location. It is possible for commands to have different styles of images associated with them. For example, a different icon could be selected for the tool bar and for the menu. This is especially important for developers using drop-down tool items in the tool bar, as they may wish to display an icon more appropriate for the drop-down.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="bar">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ A leaf element within a location. This can be the menu bar or the trim area. If unqualified, this indicates the top-level menu bar or trim. If this is qualified with a &lt;code&gt;part&lt;/code&gt; element, then this indicates that part&apos;s menu or trim.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="type" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+&lt;b&gt;NOTE:&lt;/b&gt; This is not only deprecated but has no value in the current implementation (the only acceptable value is &apos;trim&apos; which is the default. You may safely remove this from any declarations.
+&lt;/p&gt;
+&lt;p&gt;
+What type of bar to contribute to. This can be &lt;code&gt;menu&lt;/code&gt; or &lt;code&gt;trim&lt;/code&gt;. If contributing to the menu, then the item will be parented to some widget structure. In general, this means using widget elements does not make much sense, and an icon for an item&apos;s command is not strictly necessary. The default value is &lt;code&gt;menu&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;p&gt;If contributing to the &lt;code&gt;trim&lt;/code&gt;, then the bar will generally not require a command or an icon, it should be filled with a widget that displays the trim information.
+&lt;p&gt;
+Within the trim, the workbench defines five general groups which correspond to various positions around the window:
+&lt;ul&gt;
+&lt;li&gt;&lt;b&gt;command1&lt;/b&gt; - This represents the (horizontal) trim area that the main toolbars are placed into.&lt;/li&gt;
+&lt;li&gt;&lt;b&gt;command2&lt;/b&gt; - This represents the (horizontal) trim area that the Perspective Switcher is in by default.&lt;/li&gt;
+&lt;li&gt;&lt;b&gt;vertical1&lt;/b&gt; - This represents the (vertical) trim area that is on the left side when the text direction is Left-&gt;Right and on the right side for Right-&gt;Left text.&lt;/li&gt;
+&lt;li&gt;&lt;b&gt;vertical2&lt;/b&gt; - This represents the (vertical) trim area that is on the opposite side of the workbench from &lt;code&gt;vertical1&lt;/code&gt;.&lt;/li&gt;
+&lt;li&gt;&lt;b&gt;status&lt;/b&gt; - This represents the (horizontal) trim area along the bottom edge of the workbench.&lt;/li&gt;
+&lt;/ul&gt;
+By positioning the trim contribution within or with respect to these groups, the position is inferred by the workbench.
+&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="menu">
+ </enumeration>
+ <enumeration value="trim">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="path" type="string">
+ <annotation>
+ <documentation>
+ This represents the id of a group that the widget is to be placed into.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation>
+ <documentation>
+ A class element supporting the executable extension parsing syntax for both &lt;code&gt;widget&lt;/code&gt; and &lt;code&gt;dynamic&lt;/code&gt; elements.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class to load as an &lt;code&gt;IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="visibleWhen">
+ <annotation>
+ <documentation>
+ A core Expression that ontrols the visibility of the given element.
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="1">
+ <element ref="not"/>
+ <element ref="or"/>
+ <element ref="and"/>
+ <element ref="instanceof"/>
+ <element ref="test"/>
+ <element ref="systemTest"/>
+ <element ref="equals"/>
+ <element ref="count"/>
+ <element ref="with"/>
+ <element ref="resolve"/>
+ <element ref="adapt"/>
+ <element ref="iterate"/>
+ <element ref="reference"/>
+ </choice>
+ <attribute name="checkEnabled" type="boolean" use="default" value="false">
+ <annotation>
+ <documentation>
+ If this attribute is set to &lt;code&gt;true&lt;/code&gt;, then there should be no sub-elements. This just checks the enabled state of the command, and makes the corresponding element visible if the command is enabled.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="part">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+An element within a location. This qualifies the location to refer to a particular workbench part. This can be either a view or an editor. The qualification can use either the class name of the part (including inheritance), or it can refer to the identifier for the view or editor.
+&lt;/p&gt;
+&lt;p&gt;
+Only one of &lt;code&gt;id&lt;/code&gt; and &lt;code&gt;class&lt;/code&gt; can be specified.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;b&gt;NOTE:&lt;/b&gt; This element is deprecated. It had been used for a previous technique for adding trim elements. Instead, clients should contribute a Toolbar to one of the trim areas and place a control contribution inside it. See the Trim Contribution example for details.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="popup"/>
+ <element ref="bar"/>
+ </choice>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ The identifier of the view or editor.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ The class of the part. This can be a superclass, interface or superinterface of the part, and it will still match.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <documentation>
+ A parameter to either an executable extension or a command -- depending on where it appears in the extension.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name is either the name of the parameter to pass to the executable extension, or the identifier of the parameter for the command.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/commandParameter/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ The value to pass for this parameter.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="order">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ &lt;b&gt;NOTE:&lt;/b&gt; This element is deprecated in favor of using the &apos;locationURI&apos; to specify the location at which contributions should be placed.
+&lt;p&gt;
+Controls the position of a widget within a particular group.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="position" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+This attribute accepts the following values: &lt;code&gt;start&lt;/code&gt; (put the element at the beginning of the container); &lt;code&gt;end&lt;/code&gt; (put the element at the end of its container); &lt;code&gt;after&lt;/code&gt; (put the element after the sibling element whose id matches &lt;code&gt;ref&lt;/code&gt;); and, &lt;code&gt;before&lt;/code&gt; (put the element before the sibling element whose id matches &lt;code&gt;ref&lt;/code&gt;). Relative ordering can be applied to any type of menu element.
+&lt;/p&gt;
+&lt;p&gt;
+In the event of conflicts, Eclipse will chose an arbitrary order. The only guarantee is that, in the event of a conflict, the order will remain the same as long as the following holds:
+&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;The Eclipse version is the same.&lt;/li&gt;
+&lt;li&gt;The list of elements is the same (i.e., no dynamic elements, no plug-ins added or removed).&lt;/li&gt;
+&lt;/ul&gt;
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="start">
+ </enumeration>
+ <enumeration value="end">
+ </enumeration>
+ <enumeration value="before">
+ </enumeration>
+ <enumeration value="after">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="relativeTo" type="string">
+ <annotation>
+ <documentation>
+ The identifier of the element to which this position is relative. This value is required if the &lt;code&gt;position&lt;/code&gt; is &lt;code&gt;before&lt;/code&gt; or &lt;code&gt;after&lt;/code&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="popup">
+ <annotation>
+ <appinfo>
+ <meta.element deprecated="true"/>
+ </appinfo>
+ <documentation>
+ Part of a location. It indicates that the menu, group, item or widget should appear in the popup menu.
+&lt;p&gt;
+&lt;p&gt;
+&lt;b&gt;NOTE:&lt;/b&gt; This element is deprecated. It had been used for a previous technique for adding trim elements. Instead, clients should contribute a Toolbar to one of the trim areas and place a control contribution inside it. See the Trim Contribution example for details.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ The identifier of the popup menu. If none is specified, then it will appear in all popup menus.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="path" type="string">
+ <annotation>
+ <documentation>
+ The path within the popup menu to place the element. If not specified, then this is added to the &quot;additions&quot; group.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="menuContribution">
+ <annotation>
+ <documentation>
+ &lt;p&gt;Defines an ordered set of additions to the command UI structure. The defined elements will be added into the command UI structure at the location specified by the &lt;code&gt;locationURI&lt;/code&gt; element.
+&lt;/p&gt;&lt;p&gt;
+This should be the starting point for &lt;i&gt;all&lt;/i&gt; contributions into menus, toolbars or trim, wherever they occur in the UI.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="menu" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="command" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="separator" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="dynamic" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="toolbar" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="control" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="locationURI" type="string" use="required">
+ <annotation>
+ <documentation>
+ A &lt;code&gt;URI&lt;/code&gt; specification that defines the insertion point at which the contained additions will be added.
+
+The format for the URI is comprised of three basic parts:
+
+Scheme: One of &quot;menu&quot;, &quot;popup&quot; or &quot;toolbar. Indicates the type of the manager used to handle the contributions
+Id: This is either the id of an existing menu, a view id or the id of the editor &apos;type&apos;
+Query: The query format is &amp;lt;placement&amp;gt;=&amp;lt;id&amp;gt; where:
+ &amp;lt;placement&amp;gt; is either &quot;before&quot; or &quot;after&quot; and
+ &amp;lt;id&amp;gt; is the id of an existing menu item
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="menu">
+ <annotation>
+ <documentation>
+ Defines a new menu contribution at the given insertion point.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="0" maxOccurs="1">
+ <element ref="visibleWhen" minOccurs="0" maxOccurs="1"/>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="menu" minOccurs="0" maxOccurs="1"/>
+ <element ref="command" minOccurs="0" maxOccurs="1"/>
+ <element ref="separator" minOccurs="0" maxOccurs="1"/>
+ <element ref="dynamic" minOccurs="0" maxOccurs="1"/>
+ </choice>
+ </sequence>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ The &apos;id&apos; of this menu contribution. If defined then it can be extended through other &apos;menuAddition&apos; elements or the id can be used as a reference in the Query part of the location defining whether the additions are to go before or after this element.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="mnemonic" type="string">
+ <annotation>
+ <documentation>
+ The character of the Label that should be given the mnemonic affordance. This is to allow the menu system to re-define the value during translation without having to understand the various platforms&apos; conventions for menu label definition (i.e. using the &apos;&amp;amp;&apos; character...).
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ A plugin relative path to the image to be used as the icon for this menu in either a menu or a toolbar.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="tooltip" type="string">
+ <annotation>
+ <documentation>
+ The tooltip to be displayed for this element when it is placed in a toolbar. This value should be translatable.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ The label to be displayed for this element when it is placed in either a menu or a toolbar. This value should be translatable.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="commandId" type="string">
+ <annotation>
+ <documentation>
+ Th commandId is used to update the submenu text with a keyboard shortcut. The comand should have a handler that can launch a quickmenu version of this menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="command">
+ <annotation>
+ <documentation>
+ Defines a new Command Contribution at the defined insertion point.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="visibleWhen" minOccurs="0" maxOccurs="1"/>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="commandId" type="string" use="required">
+ <annotation>
+ <documentation>
+ This is the id of the Command that is to be bound to this element. This is the hook into the Commands/Handlers/Key binding services that actually do the work should this item be selected. In many cases this command will have been defined in a previous extension declaration.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ The &apos;id&apos; of this contribution. If defined then it can be used as a reference in the Query part of the location defining whether the additions are to go before or after this element.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="mnemonic" type="string">
+ <annotation>
+ <documentation>
+ The character of the Label that should be given the mnemonic affordance. This is to allow the menu system to re-define the value during translation without having to understand the various platforms&apos; conventions for menu label definition (i.e. using the &apos;&amp;amp;&apos; character...).
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context.
+If omitted and the action appears in the toolbar, the Workbench will use a placeholder icon. The path is relative to the location of the plugin.xml file of the contributing plug-in.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="disabledIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the action is disabled. If omitted, the normal icon will simply appear greyed out. The path is relative to the location of the plugin.xml file of the contributing plug-in. The disabled icon will appear in toolbars but not in menus. Icons for disabled actions in menus will be supplied by the OS.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="hoverIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the mouse pointer is over the action. If omitted, the normal icon will be used. The path is relative to the location of the plugin.xml file of the contributing plug-in.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string">
+ <annotation>
+ <documentation>
+ The label to be displayed for this element when it is placed in either a menu. This value should be translatable.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="tooltip" type="string">
+ <annotation>
+ <documentation>
+ The tooltip to be displayed for this element when it is placed in a toolbar. This value should be translatable.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContextId" type="string">
+ <annotation>
+ <documentation>
+ a unique identifier indicating the help context for this action. If the action appears as a menu item, then pressing F1 while the menu item is highlighted will display help. This overrides the help context id provided by the active handler or command.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="style" use="default" value="push">
+ <annotation>
+ <documentation>
+ an attribute to define the user interface style type for the action. If omitted, then it is &lt;samp&gt;push&lt;/samp&gt; by default. The attribute value will be one of the following:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;push&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a regular menu item or tool item.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;radio&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a radio style menu item or tool item. Actions with the radio style within the same menu or toolbar group behave as a radio set. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;toggle&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a checked style menu item or as a toggle tool item. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;pulldown&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- (ToolBar only) Creates a ToolItem with the &lt;code&gt;SWT.DROP_DOWN&lt;/code&gt; affordance. The URI of the menu is &quot;menu:&quot; + this item&apos;s ID.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="push">
+ </enumeration>
+ <enumeration value="radio">
+ </enumeration>
+ <enumeration value="toggle">
+ </enumeration>
+ <enumeration value="pulldown">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="mode">
+ <annotation>
+ <documentation>
+ For commands appearing in a toolbar, &lt;code&gt;FORCE_TEXT&lt;/code&gt; will show text even if there is an icon. See CommandContributionItem.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="FORCE_TEXT">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="separator">
+ <annotation>
+ <documentation>
+ Inserts a separator at the current insertion point.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The &apos;id&apos; of this contribution. If defined then it can be used as a reference in the Query part of the location defining whether the additions are to go before or after this element (or at the end of the logical group containing this element using the &apos;endof&apos; value).
+&lt;p&gt;
+Separator contributions that have an id define the start of a logical group so the result of using the &apos;endof&apos; value for placement is to search forward in the current menu to locate the next id&apos;d separator and to place the inserted elements before that element. If no trailing separator is found then the items are placed at the end of the menu.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="visible" type="boolean">
+ <annotation>
+ <documentation>
+ Indicates whether or not the separator should be visible in the UI. &lt;code&gt;false&lt;/code&gt; by default.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="toolbar">
+ <annotation>
+ <documentation>
+ Contributes a new ToolBar at the current insertion point.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="0" maxOccurs="1">
+ <element ref="visibleWhen" minOccurs="0" maxOccurs="1"/>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="command" minOccurs="0" maxOccurs="1"/>
+ <element ref="separator" minOccurs="0" maxOccurs="1"/>
+ <element ref="dynamic" minOccurs="0" maxOccurs="1"/>
+ <element ref="control" minOccurs="0" maxOccurs="1"/>
+ </choice>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The &apos;id&apos; of this toolbar contribution. If defined then it can be extended through other &apos;menuAddition&apos; elements or the id can be used as a reference in the Query part of the location defining whether the additions are to go before or after this element.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="control">
+ <annotation>
+ <documentation>
+ Used to contribute controls to ToolBars in the workbench. The &apos;class&apos; attribute must be a derivative of the
+WorkbenchWindowControlContribution base class.
+&lt;p&gt;
+&lt;b&gt;NOTE:&lt;/b&gt; Due to platform restruictions ontrol contributions are only supported for toolbars; Attempts to contribute controls into a menu or popup will be treated as a NO-OP.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="visibleWhen" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ The &apos;id&apos; of this menu contribution. If defined then it can be used as a reference in the Query part of the location defining whether the additions are to go before or after this element.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The class which will be used to create the control that is to be hosted in a ToolBar. This must be a subclass of
+WorkbenchWindowControlContribution which provides information as to the control&apos;s location (i.e. which workbench window it&apos;s being hosted in and the side of the window that it is currently being displayed on.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.menus.WorkbenchWindowControlContribution"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="dynamic">
+ <annotation>
+ <documentation>
+ The element provides a mechanism that will call back into the defined class to provide an IContributionItem to be shown when the menu or toolbar is built. The defined class must be a derivative of the org.eclipse.jface.action.ContributionItem base class. It can also use org.eclipse.ui.action.CompoundContributionItem and provide an implementation for the abstract &lt;code&gt;getContributionItems&lt;/code&gt; method to provide a dynamic menu item.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ <element ref="visibleWhen" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ A unique identifier for this contribution. It is recommended that the identifier be prefixed by the plug-in name, to guarantee uniqueness. For example, a widget contributed by &lt;code&gt;org.eclipse.ui&lt;/code&gt; might be called &lt;code&gt;org.eclipse.ui.widget1&lt;/code&gt;.
+&lt;p&gt;
+If defined then it can be used as a reference in the Query part of the location defining whether the additions are to go before or after this element (or at the end of the logical group containing this element using the &apos;endof&apos; value).
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ This class is expected to be a subclass of ContributionItem. The item may implement IWorkbenchContribution to be provided an IServiceLocator.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jface.action.ContributionItem"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 3.3
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+A basic extension looks like this.
+&lt;/p&gt;
+&lt;pre&gt;
+ &lt;extension
+ id=&quot;add.item&quot;
+ point=&quot;org.eclipse.ui.menus&quot;&gt;
+ &lt;menuContribution
+ locationURI=&quot;menu:someorg.somemenu.id?after=additions&quot;&gt;
+ &lt;command
+ commandId=&quot;someorg.someid.someCommand&quot;
+ icon=&quot;icons/anything.gif&quot;
+ id=&quot;someorg.someid.BasicCmdItem&quot;
+ label=&quot;Simple Item&quot;
+ mnemonic=&quot;S&quot;&gt;
+ &lt;/command&gt;
+ &lt;/menuContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;p&gt;
+This is the simplest example; adding a command contribution after an existing menu&apos;s additions group.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+It is preferred that menu contributions be added in the &lt;code&gt;plugin.xml&lt;/code&gt;. Plugins can
+programmatically add their own menu contributions using &lt;code&gt;org.eclipse.ui.menus.IMenuService&lt;/code&gt; and &lt;code&gt;org.eclipse.ui.menus.AbstractContributionFactory&lt;/code&gt;, but should be sure to remove them if the plugin is unloaded. The &lt;code&gt;IMenuService&lt;/code&gt; can be retrieved through any of the &lt;code&gt;IServiceLocators&lt;/code&gt;, the workbench, the workbench window, or the part site.
+&lt;/p&gt;
+&lt;p&gt;
+See &lt;a href=&quot;org_eclipse_ui_commands.html&quot;&gt;org.eclipse.ui.commands&lt;/a&gt; to define a command and &lt;a href=&quot;org_eclipse_ui_handlers.html&quot;&gt;org.eclipse.ui.handlers&lt;/a&gt; to define an implementation for the command.
+&lt;/p&gt;
+&lt;p&gt;To register a context menu, use the &lt;code&gt;IWorkbenchPartSite.registerContextMenu&lt;/code&gt; methods.&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2005,2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/newWizards.exsd b/bundles/org.eclipse.rap.ui/schema/newWizards.exsd
new file mode 100755
index 0000000000..c5776999f3
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/newWizards.exsd
@@ -0,0 +1,337 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="newWizards" name="Creation Wizards"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to register resource creation wizard extensions. Creation wizards appear as choices within the &quot;New Dialog&quot;, and are typically used to create folders and files.
+&lt;p&gt;
+In the &quot;New Dialog&quot;, wizards are organized into categories which usually reflect a particular problem domain. For instance, a Java oriented plugin may define a category called &quot;Java&quot; which is appropriate for &quot;Class&quot; or &quot;Package&quot; creation wizards. The categories defined by one plug-in can be referenced by other plug-ins using the category attribute. Uncategorized wizards, as well as wizards with invalid category paths, will end up in an &quot;Other&quot; category.
+&lt;/p&gt;
+
+&lt;p&gt;
+Wizards may optionally specify a description subelement whose body should contain short text about the wizard.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="category"/>
+ <element ref="wizard"/>
+ <element ref="primaryWizard"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="category">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this category
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the category that will be used in the dialog box
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentCategory" type="string">
+ <annotation>
+ <documentation>
+ a path to another category if this category should be added as a child
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.newWizards/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="wizard">
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this wizard
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the wizard that will be used in the dialog box
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon that will be used together with the name to represent the wizard
+as one of the choices in the creation dialog box.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) of category IDs. Each token in the
+path must represent a valid category ID previously defined
+by this or some other plug-in. If omitted, the wizard will be
+added to the &quot;Other&quot; category.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.newWizards/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the Java class implementing &lt;samp&gt;org.eclipse.ui.INewWizard&lt;/samp&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jface.wizard.Wizard:org.eclipse.ui.INewWizard"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="project" type="boolean">
+ <annotation>
+ <documentation>
+ an optional attribute indicating the wizard will create an IProject resource.
+Also causes the wizard to appear as a choice within the &quot;New Project Dialog&quot;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="finalPerspective" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute which identifies a perspective to activate when IProject resource creation is finished.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.perspectives/perspective/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="preferredPerspectives" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute specifying a comma-separated list of perspective IDs. If the current perspective is in this list, then no perspective activation occurs when IProject resource creation is finished.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="helpHref" type="string">
+ <annotation>
+ <documentation>
+ a help url that can describe this wizard in detail.
+&lt;p&gt;
+Since 3.0
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="descriptionImage" type="string">
+ <annotation>
+ <documentation>
+ a larger image that can help describe this wizard.
+&lt;p&gt;
+Since 3.0
+&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="canFinishEarly" type="boolean">
+ <annotation>
+ <documentation>
+ whether the wizard is capable of finishing without ever showing pages to the user.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="hasPages" type="boolean">
+ <annotation>
+ <documentation>
+ whether the wizard provides any pages.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <documentation>
+ an optional subelement whose body contains a short text describing what the wizard will do when started
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="selection">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified class name. If each object in the workbench selection implements this interface the selection will be passed to the wizard. Otherwise, an empty selection is passed
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name filter. Each object in the workbench selection must match the name filter to be passed to the wizard
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="primaryWizard">
+ <annotation>
+ <documentation>
+ a means of declaring that a wizard is &quot;primary&quot; in the UI. A primary wizard is emphasized in the new wizard dialog. Please note that this element is not intended to be used by plug in developers! This element exists so that product managers may emphasize a set of wizards for their products.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the id of a wizard that should be made primary.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.newWizards/wizard/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ Following is an example of creation wizard configuration:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.newWizards&quot;&gt;
+ &lt;category
+ id=&quot;com.xyz.XYZ&quot;
+ name=&quot;XYZ Wizards&quot;&gt;
+ &lt;/category&gt;
+ &lt;category
+ id=&quot;com.xyz.XYZ.Web&quot;
+ name=&quot;Web Wizards&quot;
+ parentCategory=&quot;com.xyz.XYZ&quot;&gt;
+ &lt;/category&gt;
+ &lt;wizard
+ id=&quot;com.xyz.wizard1&quot;
+ name=&quot;XYZ artifact&quot;
+ category=&quot;com.xyz.XYZ/com.xyz.XYZ.Web&quot;
+ icon=&quot;./icons/XYZwizard1.gif&quot;
+ class=&quot;com.xyz.XYZWizard1&quot;&gt;
+ &lt;description&gt;
+ Create a simple XYZ artifact and set initial content
+ &lt;/description&gt;
+ &lt;selection class=&quot;org.eclipse.core.resources.IResource&quot;/&gt;
+ &lt;/wizard&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the class attribute must represent a class
+that implements &lt;samp&gt;org.eclipse.ui.INewWizard&lt;/samp&gt;.
+If the wizard is created from within the
+New Wizard it will be inserted into the existing wizard.
+If the wizard is launched as a shortcut
+(from the File New menu or a toolbar button) it will
+appear standalone as a separate dialog box.
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The workbench comes with wizards for creating empty
+resources of the following types:
+project, folder and file. These wizards are registered
+using the same mechanism as described above.
+Additional wizards may also appear, subject to
+particular platform installation.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/perspectiveExtensions.exsd b/bundles/org.eclipse.rap.ui/schema/perspectiveExtensions.exsd
new file mode 100755
index 0000000000..9150807ff4
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/perspectiveExtensions.exsd
@@ -0,0 +1,327 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="perspectiveExtensions" name="Perspective Extensions"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to extend perspectives
+registered by other plug-ins. A perspective defines
+the initial contents of the window action bars
+(menu and toolbar) and the initial set of views
+and their layout within a workbench page.
+Other plug-ins may contribute actions or views to
+the perspective which appear when the perspective
+is selected. Optional additions by other plug-ins
+are appended to the initial definition.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="perspectiveExtension" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="perspectiveExtension">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="targetID"/>
+ </appinfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="actionSet"/>
+ <element ref="viewShortcut"/>
+ <element ref="perspectiveShortcut"/>
+ <element ref="newWizardShortcut"/>
+ <element ref="view"/>
+ <element ref="showInPart"/>
+ </choice>
+ <attribute name="targetID" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the perspective (as specified in the registry) into which the contribution is made. If the value is set to &quot;*&quot; the extension is applied to all perspectives.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.perspectives/perspective/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="actionSet">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the action set which will be added to the perspective.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.actionSets/actionSet/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="viewShortcut">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the view which will be added to the perspective&apos;s &quot;Show View&quot; submenu of the &quot;Window&quot; menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/view/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="perspectiveShortcut">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the perspective which will be added to the perspective&apos;s &quot;Open Perspective&quot; submenu of the &quot;Window&quot; menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.perspectives/perspective/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="newWizardShortcut">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the new wizard which will be added to the perspective&apos;s &quot;New&quot; submenu of the &quot;File&quot; menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.newWizards/wizard/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="showInPart">
+ <complexType>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ the unique identifier of the view which will be added to the perspective&apos;s &quot;Show In...&quot; prompter in the Navigate menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/view/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="view">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of the view which will be added to the perspective layout.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/view/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="relative" type="string">
+ <annotation>
+ <documentation>
+ the unique identifier of a view which already exists in the perspective. This will be used as a reference point for placement of the view. The relationship between these two views is defined by &lt;samp&gt;relationship&lt;/samp&gt;. Ignored if relationship is &quot;fast&quot;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/view/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="relationship" use="required">
+ <annotation>
+ <documentation>
+ specifies the relationship between &lt;samp&gt;id&lt;/samp&gt; and
+&lt;samp&gt;relative&lt;/samp&gt;.
+The following values are supported:
+&lt;ul&gt;
+&lt;b&gt;fast&lt;/b&gt; - the view extension will be created as a fast view.
+&lt;br&gt;&lt;b&gt;stack&lt;/b&gt; - the view extension will be stacked with the relative
+view in a folder.
+&lt;br&gt;&lt;b&gt;left, right, top, bottom&lt;/b&gt; - the view extension will be placed
+beside the relative view. In this case a &lt;samp&gt;ratio&lt;/samp&gt; must also
+be defined.&lt;/ul&gt;
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="stack">
+ </enumeration>
+ <enumeration value="left">
+ </enumeration>
+ <enumeration value="right">
+ </enumeration>
+ <enumeration value="top">
+ </enumeration>
+ <enumeration value="bottom">
+ </enumeration>
+ <enumeration value="fast">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="ratio" type="string">
+ <annotation>
+ <documentation>
+ the percentage of area within the relative view which will be donated to the view extension. If the view extension is a fast view, the ratio is the percentage of the workbench the fast view will cover when active. This must be defined as a floating point value and lie between 0.05 and 0.95.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="visible" type="boolean">
+ <annotation>
+ <documentation>
+ whether the view is initially visible when the perspective is opened. This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used.
+If this attribute is not used, the view will be initially visible by default.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="closeable" type="boolean">
+ <annotation>
+ <documentation>
+ whether the view is closeable in the target perspective. This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used. If this attribute is not used, the view will be closeable, unless the perspective itself is marked as fixed.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="moveable" type="boolean">
+ <annotation>
+ <documentation>
+ whether the view is moveable. A non-moveable view cannot be moved either within the same folder, or moved between folders in the perspective. This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used.
+If this attribute is not used, the view will be moveable, unless the perspective itself is marked as fixed.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="standalone" type="boolean">
+ <annotation>
+ <documentation>
+ whether the view is a standalone view. A standalone view cannot be docked together with others in the same folder. This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used. This attribute is ignored if the relationship attribute is &quot;fast&quot; or &quot;stacked&quot;. If this attribute is not used, the view will be a regular view, not a standalone view (default is &quot;false&quot;).
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="showTitle" type="boolean">
+ <annotation>
+ <documentation>
+ whether the view&apos;s title is shown. This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used. This attribute only applies to standalone views. If this attribute is not used, the view&apos;s title will be shown (default is &quot;true&quot;).
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="minimized" type="boolean" use="default" value="false">
+ <annotation>
+ <documentation>
+ If the perspective extension will result in a new view stack being created (i.e. the &apos;relationship&apos; attribute is one of left, right, top or bottom) this field determines the new stack&apos;s initial display state.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of a perspective extension (note the subelements and the way attributes are used):
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.perspectiveExtensions&quot;&gt;
+ &lt;perspectiveExtension
+ targetID=&quot;org.eclipse.ui.resourcePerspective&quot;&gt;
+ &lt;actionSet id=&quot;org.eclipse.jdt.ui.JavaActionSet&quot;/&gt;
+ &lt;viewShortcut id=&quot;org.eclipse.jdt.ui.PackageExplorer&quot;/&gt;
+ &lt;newWizardShortcut id=&quot;org.eclipse.jdt.ui.wizards.NewProjectCreationWizard&quot;/&gt;
+ &lt;perspectiveShortcut id=&quot;org.eclipse.jdt.ui.JavaPerspective&quot;/&gt;
+ &lt;view id=&quot;org.eclipse.jdt.ui.PackageExplorer&quot;
+ relative=&quot;org.eclipse.ui.views.ResourceNavigator&quot;
+ relationship=&quot;stack&quot;/&gt;
+ &lt;view id=&quot;org.eclipse.jdt.ui.TypeHierarchy&quot;
+ relative=&quot;org.eclipse.ui.views.ResourceNavigator&quot;
+ relationship=&quot;left&quot;
+ ratio=&quot;0.50&quot;/&gt;
+ &lt;/perspectiveExtension&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In the example above, an action set, view shortcut,
+new wizard shortcut, and perspective shortcut are
+contributed to the initial contents of the
+Resource Perspective. In addition, the
+Package Explorer view is stacked on the
+Resource Navigator and the Type Hierarchy View is
+added beside the Resource Navigator.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The items defined within the perspective extension are contributed to the initial contents of the target perspective. Following this, the user may remove any contribution or add others to a perspective from within the workbench user interface.
+ </documentation>
+ </annotation>
+
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/perspectives.exsd b/bundles/org.eclipse.rap.ui/schema/perspectives.exsd
new file mode 100755
index 0000000000..acbd91c758
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/perspectives.exsd
@@ -0,0 +1,180 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="perspective" name="Perspectives"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to add perspective factories to the workbench. A perspective factory is used to define the initial layout and visible action sets for a perspective. The user can select a perspective by invoking the &quot;Open Perspective&quot; submenu of the &quot;Window&quot; menu.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="perspective" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="perspective">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name" icon="icon"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this perspective.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the workbench window menu bar to represent this perspective.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class that implements
+&lt;samp&gt;org.eclipse.ui.IPerspectiveFactory&lt;/samp&gt; interface.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IPerspectiveFactory"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative name of the icon that will be associated
+with this perspective.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="fixed" type="boolean">
+ <annotation>
+ <documentation>
+ indicates whether the layout of the perspective is fixed. If true, then views created by the perspective factory are not closeable, and cannot be moved. The default is false.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <appInfo>
+ <meta.element translatable="true"/>
+ </appInfo>
+ <documentation>
+ an optional subelement whose body should contain text providing a short description of the perspective.
+ </documentation>
+ </annotation>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a perspective extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.perspectives&quot;&gt;
+ &lt;perspective
+ id=&quot;org.eclipse.ui.resourcePerspective&quot;
+ name=&quot;Resource&quot;
+ class=&quot;org.eclipse.ui.internal.ResourcePerspective&quot;
+ icon=&quot;icons/MyIcon.gif&quot;&gt;
+ &lt;/perspective&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must be the
+fully qualified name of a class that implements
+&lt;samp&gt;org.eclipse.ui.IPerspectiveFactory&lt;/samp&gt;.
+The class must supply the initial layout for a
+perspective when asked by the workbench.
+&lt;p&gt;
+The &lt;samp&gt;plugin_customization.ini&lt;/samp&gt; file is used to define the default perspective. The &lt;i&gt;default perspective&lt;/i&gt; is the first perspective which appears when the product is launched after install. It is also used when the user opens a page or window with no specified perspective. The default perspective is defined as a property within the plugin_customization.ini, as shown below. The user may also override this perspective from the workbench perspectives preference page.
+&lt;pre&gt;
+ defaultPerspectiveId = org.eclipse.ui.resourcePerspective
+&lt;/pre&gt;
+The perspectives which appear in the &quot;Open Perspective&quot; menu are shortcuts for perspective selection. This set is defined by the active perspective itself, and extensions made through the perspectiveExtensions extension point.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides a &quot;Resource Perspective&quot;.
+Additional perspectives may be added by plug-ins.
+They are selected using the &quot;Open Perspective&quot; submenu of the &quot;Window&quot; menu.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/popupMenus.exsd b/bundles/org.eclipse.rap.ui/schema/popupMenus.exsd
new file mode 100755
index 0000000000..004ffc7976
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/popupMenus.exsd
@@ -0,0 +1,637 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="popupMenus" name="Pop-up Menus"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to add new actions to context menus owned by other plug-ins. Action contributions may be made against a specific object type (&lt;samp&gt;objectContribution&lt;/samp&gt;) or against a specific context menu of a view or editor part (&lt;samp&gt;viewerContribution&lt;/samp&gt;). When using &lt;samp&gt;objectContribution&lt;/samp&gt;, the contribution will appear in all view or editor part context menus where objects of the specified type are selected. In contrast, using &lt;samp&gt;viewerContribution&lt;/samp&gt;, the contribution will only appear in the specified view or editor part context menu, regardless of the selection.
+&lt;p&gt;
+You can now use &lt;a href=&quot;org_eclipse_ui_menus.html&quot;&gt;org.eclipse.ui.menus&lt;/a&gt; to place commands editor or view contexts menus as well.
+&lt;/p&gt;
+&lt;p&gt;
+When the selection is heterogeneous, the contribution will be applied if registered against a common type of the selection, if possible. If a direct match is not possible, matching against superclasses and superinterfaces will be attempted.
+&lt;p&gt;
+Selection can be further constrained through the use of a name filter. If used, all the objects in the selection must match the filter in order to apply the contribution.
+&lt;p&gt;
+Individual actions in an object contribution can use the attribute &lt;code&gt;enablesFor&lt;/code&gt; to specify if it should only apply for a single, multiple, or any other selection type.
+&lt;p&gt;
+If these filtering mechanisms are inadequate an action contribution may use the &lt;samp&gt;filter&lt;/samp&gt; mechanism. In this case the attributes of the target object are described in a series of name-value pairs. The attributes which apply to the selection are type-specific and beyond the domain of the workbench itself, so the workbench will delegate filtering at this level to the actual selection.
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="commonAction.exsd"/>
+
+ <include schemaLocation="commonExpression.exsd"/>
+
+ <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="objectContribution" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="viewerContribution" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="objectContribution">
+ <annotation>
+ <documentation>
+ This element is used to define a group of actions and/or menus for any viewer context menus for which the objects of the specified type are selected.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="filter" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="visibility" minOccurs="0" maxOccurs="1"/>
+ <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+ <element ref="menu" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used to reference this contribution
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="objectClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class or interface that all objects in the
+selection must subclass or implement.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="java.lang.object"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="nameFilter" type="string">
+ <annotation>
+ <documentation>
+ an optional wild card filter for the name that can be applied to all objects in the selection. No contribution will take place if there is no match.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="adaptable" type="boolean" use="default" value="false">
+ <annotation>
+ <documentation>
+ a flag that indicates if types that adapt to IResource should use this object contribution. This flag is used only if objectClass adapts to IResource. Default value is false.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="viewerContribution">
+ <annotation>
+ <documentation>
+ This element is used to define a group of actions and/or menus for a specific view or editor part context menu.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="visibility" minOccurs="0" maxOccurs="1"/>
+ <element ref="menu" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used to reference this contribution
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="targetID" type="string" use="required">
+ <annotation>
+ <documentation>
+ the unique identifier of a context menu inside a view or editor part.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="action">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="label" icon="icon"/>
+ </appinfo>
+ <documentation>
+ This element defines an action that the user can invoke in the UI.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used as a reference for this action.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name used as the menu item text. The name can include mnenomic information.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="definitionId" type="string">
+ <annotation>
+ <documentation>
+ This specifies the command that this action is handling. This is used to decide which key binding to display in the pop-up menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="menubarPath" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) used to specify the location of this action in the context menu. Each token in the path, except the last one, must represent a valid identifier of an existing menu in the hierarchy. The last token represents the named group into which this action will be added. If the path is omitted, this action will be added to the standard additions group defined by &lt;samp&gt;IWorkbenchActionConstants.MB_ADDITIONS&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context.
+The path is relative to the location of the plugin.xml file of the contributing plug-in.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContextId" type="string">
+ <annotation>
+ <documentation>
+ a unique identifier indicating the help context for this action. On some platforms, if the action appears as a menu item, then pressing the appropriate help key while the menu item is highlighted will display help. Not all platforms support this behaviour.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="style">
+ <annotation>
+ <documentation>
+ an optional attribute to define the user interface style type for the action. If defined, the attribute value will be one of the following:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;push&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a regular menu item or tool item.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;radio&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a radio style menu item or tool item. Actions with the radio style within the same menu or toolbar group behave as a radio set. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;toggle&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a checked style menu item or as a toggle tool item. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;pulldown&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a cascading style menu item.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="push">
+ </enumeration>
+ <enumeration value="radio">
+ </enumeration>
+ <enumeration value="toggle">
+ </enumeration>
+ <enumeration value="pulldown">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="state" type="boolean">
+ <annotation>
+ <documentation>
+ an optional attribute indicating the initial state (either &lt;samp&gt;true&lt;/samp&gt; or &lt;samp&gt;false&lt;/samp&gt;), used when the &lt;samp&gt;style&lt;/samp&gt; attribute has the value &lt;samp&gt;radio&lt;/samp&gt; or &lt;samp&gt;toggle&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a name of the fully qualified class that implements &lt;samp&gt;org.eclipse.ui.IObjectActionDelegate&lt;/samp&gt; (for object contributions), &lt;samp&gt;org.eclipse.ui.IViewActionDelegate&lt;/samp&gt; (for viewer contributions to a view part), or &lt;samp&gt;org.eclipse.ui.IEditorActionDelegate&lt;/samp&gt; (for viewer contributions to an editor part). For backwards compatibility, &lt;samp&gt;org.eclipse.ui.IActionDelegate&lt;/samp&gt; may be implemented for object contributions.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="enablesFor" type="string">
+ <annotation>
+ <documentation>
+ a value indicating the selection count which must be met to enable the action.
+If this attribute is specified and the condition is met, the action is enabled.
+If the condition is not met, the action is disabled.
+If no attribute is specified, the action is enabled for any number of items selected.
+The following attribute formats are supported:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;!&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;?&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 or 1 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 1 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;multiple, 2+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 2 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;n&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- a precise number of items selected.a precise number of items selected.&amp;nbsp;
+ For example: enablesFor=&amp;quot; 4&amp;quot; enables the action only when 4
+ items are selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;*&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- any number of items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+&lt;p&gt;
+The enablement criteria for an action extension are initially defined
+by &lt;samp&gt;enablesFor&lt;/samp&gt;, &lt;samp&gt;selection&lt;/samp&gt; and &lt;samp&gt;enablement&lt;/samp&gt;. However, once the action
+delegate has been instantiated it may control the action enable state directly
+within its &lt;samp&gt;selectionChanged&lt;/samp&gt; method.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="overrideActionId" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute that specifies the identifier of an action which this action overrides. The action represented by this identifier will not be contributed to the context menu. The action identifier must be from a prerequisite plug-in only. This attribute is only applicable to action elements of an object contribution.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.popupMenus/objectContribution/action/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="tooltip" type="string">
+ <annotation>
+ <documentation>
+ a translatable text representing the action&apos;s tool tip. Only used if the action appears in the toolbar.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="filter">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name"/>
+ </appinfo>
+ <documentation>
+ This element is used to evaluate the attribute state of each object in the current selection. A match only if each object in the selection has the specified attribute state. Each object in the selection must implement, or adapt to, &lt;samp&gt;org.eclipse.ui.IActionFilter&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of an object&apos;s attribute. Acceptable names reflect the object type, and should be publicly declared by the plug-in where the object type is declared.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the required value of the object&apos;s attribute. The acceptable values for the object&apos;s attribute should be publicly declared.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <documentation>
+ A parameter element to be used within an IExecutableExtension element. This will be passed as initialization data to the instantiated class.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter name
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter value
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation>
+ <documentation>
+ The element version of the &lt;code&gt;class&lt;/code&gt; attribute. This is used when the class implements &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt; and there is parameterized data that you wish used in its initialization.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ A class that implements one of the interfaces listed for the class attribute. It may also implement &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of a pop-up menu extension point:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.popupMenus&quot;&gt;
+ &lt;objectContribution
+ id=&quot;com.xyz.C1&quot;
+ objectClass=&quot;org.eclipse.core.resources.IFile&quot;
+ nameFilter=&quot;*.java&quot;&gt;
+ &lt;menu
+ id=&quot;com.xyz.xyzMenu&quot;
+ path=&quot;additions&quot;
+ label=&quot;&amp;amp;XYZ Java Tools&quot;&gt;
+ &lt;separator name=&quot;group1&quot;/&gt;
+ &lt;/menu&gt;
+ &lt;action
+ id=&quot;com.xyz.runXYZ&quot;
+ label=&quot;&amp;amp;Run XYZ Tool&quot;
+ style=&quot;push&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/group1&quot;
+ icon=&quot;icons/runXYZ.gif&quot;
+ helpContextId=&quot;com.xyz.run_action_context&quot;
+ class=&quot;com.xyz.actions.XYZToolActionDelegate&quot;
+ enablesFor=&quot;1&quot; /&gt;
+ &lt;/objectContribution&gt;
+ &lt;viewerContribution
+ id=&quot;com.xyz.C2&quot;
+ targetID=&quot;org.eclipse.ui.views.TaskList&quot;&gt;
+ &lt;action
+ id=&quot;com.xyz.showXYZ&quot;
+ label=&quot;&amp;amp;Show XYZ&quot;
+ style=&quot;toggle&quot;
+ state=&quot;true&quot;
+ menubarPath=&quot;additions&quot;
+ icon=&quot;icons/showXYZ.gif&quot;
+ helpContextId=&quot;com.xyz.show_action_context&quot;
+ class=&quot;com.xyz.actions.XYZShowActionDelegate&quot; /&gt;
+ &lt;/viewerContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+In the example above, the specified object contribution action will only enable for a single selection (&lt;samp&gt;enablesFor&lt;/samp&gt; attribute). In addition, each object in the selection must implement the specified interface (&lt;samp&gt;IFile&lt;/samp&gt;) and must be a Java file. This action will be added into a submenu previously created. This contribution
+will be effective in any view that has the required selection.
+&lt;p&gt;
+In contrast, the viewer contribution above will only appear in the Tasks view context menu, and will not be affected by the selection in the view.
+&lt;p&gt;
+The following is an example of the filter mechanism. In this case the action will only appear for IMarkers which are completed and have high priority.
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.popupMenus&quot;&gt;
+ &lt;objectContribution
+ id=&quot;com.xyz.C3&quot;
+ objectClass=&quot;org.eclipse.core.resources.IMarker&quot;&gt;
+ &lt;filter name=&quot;done&quot; value=&quot;true&quot;/&gt;
+ &lt;filter name=&quot;priority&quot; value=&quot;2&quot;/&gt;
+ &lt;action
+ id=&quot;com.xyz.runXYZ&quot;
+ label=&quot;High Priority Completed Action Tool&quot;
+ icon=&quot;icons/runXYZ.gif&quot;
+ class=&quot;com.xyz.actions.MarkerActionDelegate&quot;&gt;
+ &lt;/action&gt;
+ &lt;/objectContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+The following is an other example of using the visibility element:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.popupMenus&quot;&gt;
+ &lt;viewerContribution
+ id=&quot;com.xyz.C4&quot;
+ targetID=&quot;org.eclipse.ui.views.TaskList&quot;&gt;
+ &lt;visibility&gt;
+ &lt;and&gt;
+ &lt;pluginState id=&quot;com.xyz&quot; value=&quot;activated&quot;/&gt;
+ &lt;systemProperty name=&quot;ADVANCED_MODE&quot; value=&quot;true&quot;/&gt;
+ &lt;/and&gt;
+ &lt;/visibility&gt;
+ &lt;action
+ id=&quot;com.xyz.showXYZ&quot;
+ label=&quot;&amp;amp;Show XYZ&quot;
+ style=&quot;push&quot;
+ menubarPath=&quot;additions&quot;
+ icon=&quot;icons/showXYZ.gif&quot;
+ helpContextId=&quot;com.xyz.show_action_context&quot;
+ class=&quot;com.xyz.actions.XYZShowActionDelegate&quot;&gt;
+ &lt;/action&gt;
+ &lt;/viewerContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In the example above, the specified action will appear as a menu item in the Task view context menu, but only if the &quot;com.xyz&quot; plug-in is active and the specified system property is set to true.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the action attribute &lt;samp&gt;class&lt;/samp&gt;
+must be a fully qualified class name of a Java class
+that implements &lt;samp&gt;org.eclipse.ui.IObjectActionDelegate&lt;/samp&gt;
+in the case of object contributions,
+&lt;samp&gt;org.eclipse.ui.IViewActionDelegate&lt;/samp&gt;
+for contributions to context menus that belong to views,
+or &lt;samp&gt;org.eclipse.ui.IEditorActionDelegate&lt;/samp&gt;
+for contributions to context menus that belong to editors.
+In all cases, the implementing class is loaded as late
+as possible to avoid loading the entire plug-in before
+it is really needed.
+&lt;p&gt;
+Note: For backwards compatibility,
+&lt;samp&gt;org.eclipse.ui.IActionDelegate&lt;/samp&gt; may be
+implemented for object contributions.
+&lt;p&gt;
+Conext menu extension within a part is only possible
+when the target part publishes a menu for extension.
+This is strongly encouraged, as it improves the
+extensibility of the product. To accomplish this
+each part should publish any context menus which are
+defined by calling
+&lt;samp&gt;IWorkbenchPartSite.registerContextMenu&lt;/samp&gt;.
+Once this has been done the workbench will
+automatically insert any action extensions which exist.
+&lt;p&gt;
+A menu id must be provided for each registered menu.
+For consistency across parts the following strategy
+should be adopted by all part implementors.
+&lt;p&gt;
+&lt;ul&gt;
+&lt;li&gt;
+If the target part has only one context menu it
+should be registered with id == part id. This can be
+done easily by calling
+&lt;samp&gt;registerContextMenu(MenuManager, ISelectionProvider)&lt;/samp&gt;.
+Extenders may use the part id itself as the targetID for
+the action extension. &lt;/li&gt;
+&lt;li&gt;
+If the target part has more than one context menu a
+unique id should be defined for each. Prefix each id
+with the part id and publish these id&apos;s within
+the javadoc for the target part. Register each
+menu at runtime by calling
+&lt;samp&gt;registerContextMenu(String, MenuManager, ISelectionProvider)&lt;/samp&gt;.
+Extenders will use the unique menu id as the targetID
+for the action extension. &lt;/li&gt;&lt;/ul&gt;
+&lt;p&gt;
+Any context menu which is registered with the workbench
+also should contain a standard insertion point with id
+&lt;samp&gt;IWorkbenchActionConstants.MB_ADDITIONS&lt;/samp&gt;.
+Other plug-ins will use this value as a reference
+point for insertion. The insertion point may be
+defined by adding a GroupMarker to the menu at an
+appropriate location for insertion.
+&lt;p&gt;
+An object in the workbench which is the selection
+in a context menu may define an
+&lt;samp&gt;org.eclipse.ui.IActionFilter&lt;/samp&gt;. This is a
+filtering strategy which can perform type specific
+filtering. The workbench will retrieve the filter
+for the selection by testing to see if it implements
+&lt;samp&gt;IActionFilter&lt;/samp&gt;. If that fails, the
+workbench will ask for a filter through the
+&lt;samp&gt;IAdaptable&lt;/samp&gt; mechanism.
+&lt;p&gt;
+Action and menu labels may contain special characters that encode mnemonics which are specified using the ampersand (&apos;&amp;amp;&apos;) character in front of a selected character in the translated text. Since ampersand is not allowed in XML strings, use &lt;samp&gt;&amp;amp;amp;&lt;/samp&gt; character entity.
+&lt;p&gt;
+If two or more actions are contributed to a menu by a single extension the actions will appear in the reverse order of how they are listed in the plugin.xml file. This behavior is admittedly unintuitive. However, it was discovered after the Eclipse Platform API was frozen. Changing the behavior now would break every plug-in which relies upon the existing behavior.
+&lt;p&gt;
+The &lt;samp&gt;selection&lt;/samp&gt; and &lt;samp&gt;enablement&lt;/samp&gt; elements are mutually exclusive. The &lt;samp&gt;enablement&lt;/samp&gt; element can replace the &lt;samp&gt;selection&lt;/samp&gt; element using the sub-elements &lt;samp&gt;objectClass&lt;/samp&gt; and &lt;samp&gt;objectState&lt;/samp&gt;. For example, the following:
+&lt;pre&gt;
+ &lt;selection
+ class=&quot;org.eclipse.core.resources.IFile&quot;
+ name=&quot;*.java&quot;&gt;
+ &lt;/selection&gt;
+&lt;/pre&gt;
+can be expressed using:
+&lt;pre&gt;
+ &lt;enablement&gt;
+ &lt;and&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
+ &lt;objectState name=&quot;extension&quot; value=&quot;java&quot;/&gt;
+ &lt;/and&gt;
+ &lt;/enablement&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The workbench views have built-in context menus
+that already come loaded with a number of actions.
+Plug-ins can contribute to these menus. If a viewer
+has reserved slots for these contributions and they
+are made public, slot names can be used as paths.
+Otherwise, actions and submenus will be added at
+the end of the pop-up menu.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2000, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/preferencePages.exsd b/bundles/org.eclipse.rap.ui/schema/preferencePages.exsd
new file mode 100755
index 0000000000..0603381f34
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/preferencePages.exsd
@@ -0,0 +1,195 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="preferencePages" name="Preference Pages"/>
+ </appinfo>
+ <documentation>
+ The workbench provides one common dialog box for preferences.
+The purpose of this extension point is to allow plug-ins to add
+pages to the preference dialog box. When preference dialog box
+is opened (initiated from the menu bar), pages contributed in
+this way will be added to the dialog box.
+
+&lt;p&gt;
+The preference dialog
+box provides for hierarchical grouping of the pages. For this
+reason, a page can optionally specify a &lt;samp&gt;category&lt;/samp&gt; attribute.
+This
+attribute represents a path composed of parent page IDs separated
+by &apos;/&apos;. If this attribute is omitted or if any of the parent
+nodes in the path cannot be found, the page will be added at
+the root level.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="page" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="page">
+ <annotation>
+ <appinfo>
+ <meta.element labelAttribute="name"/>
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="keywordReference" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this page.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the UI for this page.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a name of the fully qualified class that implements
+&lt;samp&gt;org.eclipse.ui.IWorkbenchPreferencePage&lt;/samp&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jface.preference.PreferencePage:org.eclipse.ui.IWorkbenchPreferencePage"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ a path indicating the location of the page in the preference tree. The path may either be a parent node ID or a sequence
+ of IDs separated by &apos;/&apos;, representing the full path from the root node.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.preferencePages/page/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="keywordReference">
+ <annotation>
+ <documentation>
+ A reference by a preference page to a keyword. See the keywords extension point.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The id of the keyword being referred to.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.keywords/keyword/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example for the preference extension point:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.preferencePages&quot;&gt;
+ &lt;page
+ id=&quot;com.xyz.prefpage1&quot;
+ name=&quot;XYZ&quot;
+ class=&quot;com.xyz.prefpages.PrefPage1&quot;&gt;
+ &lt;keywordReference id=&quot;xyz.Keyword&quot;/&gt;
+ &lt;/page&gt;
+ &lt;page
+ id=&quot;com.xyz.prefpage2&quot;
+ name=&quot;Keyboard Settings&quot;
+ class=&quot;com.xyz.prefpages.PrefPage2&quot;
+ category=&quot;com.xyz.prefpage1&quot;&gt;
+ &lt;/page&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the attribute class must represent a fully qualified name of the class that implements
+&lt;samp&gt;org.eclipse.ui.IWorkbenchPreferencePage&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The workbench adds several pages for setting the preferences of the platform. Pages registered
+through this extension will be added after them according to their category information.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/preferenceTransfer.exsd b/bundles/org.eclipse.rap.ui/schema/preferenceTransfer.exsd
new file mode 100755
index 0000000000..e58faa314c
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/preferenceTransfer.exsd
@@ -0,0 +1,318 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="preferenceTransfer" name="Preference Transfer"/>
+ </appInfo>
+ <documentation>
+ The workbench provides support for maintaining preferences.
+The purpose of this extension point is to allow plug-ins to add
+specific support for saving and loading of specific groups of preferences.
+Typically this is used for operations such as Import and Export.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="transfer" minOccurs="0" maxOccurs="unbounded"/>
+ <sequence>
+ <element ref="settingsTransfer" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="transfer">
+ <annotation>
+ <documentation>
+ A transfer is an element used for specifying a group of preferences that can be exported together.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="mapping" minOccurs="1" maxOccurs="unbounded"/>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this transfer
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in UI when listing this item
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative name of the icon that will be used when displaying the transfer
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <appInfo>
+ <meta.element translatable="true"/>
+ </appInfo>
+ <documentation>
+ An optional subelement whose body should represent a short description
+of the transfer engine functionality.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="mapping">
+ <annotation>
+ <documentation>
+ a subelement which represents a &lt;tt&gt;org.eclipse.core.runtime.preferences.IPreferenceFilter&lt;/tt&gt;. It specifies 1 or more mappings from a scope &lt;tt&gt;org.eclipse.core.runtime.preferences.IScope&lt;/tt&gt; to 0 or more nodes. 0 or more keys are specified per node. The rules for export and import behaviour for a filter can be found in the specifications in &lt;tt&gt;org.eclipse.core.runtime.preferences.IPreferenceFilter&lt;/tt&gt;.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="entry" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="scope" type="string" use="required">
+ <annotation>
+ <documentation>
+ an attribute specifying the name of the scope to map the provided nodes and keys to.
+Generally the scopes defined in org.eclipse.core.runtime.preferences and org.eclipse.core.resources are used. They are
+configuration (org.eclipse.core.runtime.preferences.ConfigurationScope.SCOPE)
+instance (org.eclipse.core.runtime.preferences.InstanceScope.SCOPE)
+default (org.eclipse.core.runtime.preferences.DefaultScope.SCOPE)
+default (org.eclipse.core.resources.ProjectScope.SCOPE)
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="entry">
+ <annotation>
+ <documentation>
+ a subelement specifing the nodes and keys that are to be transferred for a given scope
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="key" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="node" type="string">
+ <annotation>
+ <documentation>
+ an attribute specifing the preference node within the given scope to be transferred. This preference node will correspond to the bundle id of the plug-in that defines the preference.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="key">
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ an attribute specifing a comma separated list of preference keys within the given node to be transferred, specifying the key attribute without specifying a matching node will result in a runtime error.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="settingsTransfer">
+ <annotation>
+ <documentation>
+ A settings transfer is the definition of a transfer of internal state from one workbench to another. Added in 3.3.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The human readable name of the transfer.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The id of the transfer.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The subclass of &lt;code&gt;org.eclipse.ui.preferences.SettingsTransfer&lt;/code&gt; that specifies this transfer.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.preferences.SettingsTransfer"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContext" type="string">
+ <annotation>
+ <documentation>
+ The help context for the transfer. See IWorkbench#getHelpSystem().
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+ Example that export all transfers, exports all nodes for specified scopes.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.preferenceTransfer&quot;&gt;
+ &lt;transfer
+ icon=&quot;XYZ.gif&quot;
+ name=&quot;Export All Transfer Test&quot;
+ id=&quot;org.eclipse.ui.tests.all&quot;&gt;
+ &lt;mapping scope=&quot;instance&quot;/&gt;
+ &lt;mapping scope=&quot;configuration&quot;/&gt;
+ &lt;mapping scope=&quot;project&quot;/&gt;
+ &lt;description&gt;
+ Export all tranfer, exports all nodes for specified scopes
+ &lt;/description&gt;
+ &lt;/transfer&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+ Bare Bones Transfer only provides required info and no more.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.preferenceTransfer&quot;&gt;
+ &lt;transfer
+ name=&quot;Bare Bones Transfer Test&quot;
+ id=&quot;org.eclipse.ui.tests.all&quot;&gt;
+ &lt;mapping scope=&quot;instance&quot;/&gt;
+ &lt;/transfer&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+ Example that exports many combinations of keys and nodes
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.preferenceTransfer&quot;&gt;
+ &lt;transfer
+ icon=&quot;XYZ.gif&quot;
+ name=&quot;Export many preferences&quot;
+ id=&quot;org.eclipse.ui.tests.all&quot;&gt;
+ &lt;mapping scope=&quot;instance&quot;&gt;
+ &lt;entry node=&quot;org.eclipse.ui&quot;&gt;
+ &lt;key name=&quot;showIntro,DOCK_PERSPECTIVE_BAR&quot;/&gt;
+ &lt;/entry&gt;
+ &lt;entry node=&quot;org.eclipse.ui.workbench&quot;&gt;
+ &lt;key name=&quot;bogus,RUN_IN_BACKGROUND&quot;/&gt;
+ &lt;/entry&gt;
+ &lt;entry node=&quot;org.eclipse.ui.ide&quot;/&gt;
+ &lt;entry node=&quot;org.eclipse.core.resources&quot;/&gt;
+ &lt;/mapping&gt;
+ &lt;mapping scope=&quot;configuration&quot;/&gt;
+ &lt;description&gt;
+ Export many combinations of keys and nodes
+ &lt;/description&gt;
+ &lt;/transfer&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2005, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/presentationFactories.exsd b/bundles/org.eclipse.rap.ui/schema/presentationFactories.exsd
new file mode 100755
index 0000000000..e8f27ff109
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/presentationFactories.exsd
@@ -0,0 +1,134 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui.workbench">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui.workbench" id="presentationFactories" name="Presentation Factories"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to add presentation factories to the workbench.
+ A presentation factory defines the overall look and feel of the workbench,
+ including how views and editors are presented.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="factory" 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="factory">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ Specify the fully qualified class to be used for the presentation factory. The specified value must be a subclass of &lt;code&gt;org.eclipse.ui.presentations.AbstractPresentationFactory&lt;/code&gt;.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.presentations.AbstractPresentationFactory"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this presentation factory
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that can be used to show this presentation factory in the UI
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a presentationFactory extension:
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.presentationFactories&quot;&gt;
+ &lt;factory
+ class=&quot;org.eclipse.ui.workbench.ExampleWorkbenchPresentationFactory&quot;/&gt;
+ &lt;/extension&gt;
+ &lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The class specified in the factory element must be a concrete subclass of &lt;code&gt;org.eclipse.ui.presentations.AbstractPresentationFactory&lt;/code&gt;.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ If a presentation factory is not specified or is missing then the implementation in &lt;code&gt;org.eclipse.ui.presentations.WorkbenchPresentationFactory&lt;/code&gt; will be used.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2004, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/propertyPages.exsd b/bundles/org.eclipse.rap.ui/schema/propertyPages.exsd
new file mode 100755
index 0000000000..4af14d31ed
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/propertyPages.exsd
@@ -0,0 +1,295 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="propertyPages" name="Property Pages"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to add additional property page for objects of a given type. Once defined, these property pages will appear in the Properties Dialog for objects of that type.
+&lt;p&gt;
+A property page is a user friendly way to interact with the properties of an object. Unlike the Properties view, which restricts the space available for editing an object property, a property page may benefit from the freedom to define larger, more complex controls with labels, icons, etc. Properties which logically go together may also be clustered in a page, rather than scattered in the property sheet. However, in most applications it will be appropriate to expose some properties of an object via the property sheet and some via the property pages.
+&lt;/p&gt;
+
+&lt;p&gt;
+Property pages are shown in a dialog box that is normally visible when the &quot;Properties&quot; menu item is selected on a pop-up menu for an object. In addition to the object class, the name filter can optionally be supplied to register property pages only for specific object types.
+&lt;/p&gt;
+
+&lt;p&gt;
+If these filtering mechanisms are inadequate a property page may use the filter mechanism. In this case the attributes of the target object are described in a series of key value pairs. The attributes which apply to the selection are type specific and beyond the domain of the workbench itself, so the workbench will delegate filtering at this level to the actual selection.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="page" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="page">
+ <annotation>
+ <documentation>
+ The page is the specification of the implementation and appearance of the page.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="filter" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="keywordReference" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="enabledWhen" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this page
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the UI for this page
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative path to an icon that will be used in the UI in addition to the page name
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="objectClass" type="string">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class for which the page is registered. This class does not need to implement &lt;tt&gt;IAdaptable&lt;/tt&gt;. Objects that are not an instance of &lt;tt&gt;IAdaptable&lt;/tt&gt; will be wrappered in an &lt;tt&gt;IAdaptable&lt;/tt&gt; before being sent to the property page&apos;s instance (an &lt;tt&gt;org.eclipse.ui.IWorkbenchPropertyPage&lt;/tt&gt;).
+
+&lt;p&gt;Deprecated in Eclipse 3.3. Use the instanceOf or adapt element of the enabledWhen element instead. If duplicate page definitions were previously used to register the page for multiple objectClass types, these should be combined into one page definition using multiple instanceOf elements combined inside an or element&lt;/p&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class that implements &lt;tt&gt;org.eclipse.ui.IWorkbenchPropertyPage&lt;/tt&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.dialogs.PropertyPage:org.eclipse.ui.IWorkbenchPropertyPage"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="nameFilter" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute that allows registration conditional on
+wild card match applied to the target object name.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="adaptable" type="boolean">
+ <annotation>
+ <documentation>
+ a flag that indicates if types that adapt to IResource should use this property page.
+This flag is used if objectClass adapts to IResource. Default value is false.
+
+&lt;p&gt;Deprecated in Eclipse 3.3. Use adapt sub element of the enabledWhen element instead&lt;/p&gt;
+
+&lt;strong&gt;NOTE:&lt;/strong&gt; The adaptable attribute will attempt adapt an object to &lt;code&gt;org.eclipse.core.resources.IResource&lt;/code&gt; before referencing the types registered in &lt;code&gt;Platform#getAdaptorManager&lt;/code&gt;. The enabledWhen element has no special case tests for &lt;code&gt;org.eclipse.core.resources.IResource&lt;/code&gt; and uses &lt;code&gt;Platform#getAdaptorManager&lt;/code&gt; to look up adaptable types. These can be registered using the &lt;code&gt;org.eclipse.core.runtime.adaptors&lt;/code&gt; extension point.
+ </documentation>
+ <appinfo>
+ <meta.attribute deprecated="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ A path indicating the location of the page in the properties tree. The path may either be a parent node ID or a sequence of IDs separated by &apos;/&apos;, representing the full path from the root node.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.propertyPages/page/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="filter">
+ <annotation>
+ <documentation>
+ This element is used to evaluate the attribute state of each object in the current selection. A match only if each object in the selection has the specified attribute state. Each object in the selection must implement, or adapt to, &lt;samp&gt;org.eclipse.ui.IActionFilter&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of an object attribute.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the value of an object attribute. In combination with
+the name attribute, the name value pair is used to
+define the target object for a property page.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="keywordReference">
+ <annotation>
+ <documentation>
+ A reference by a property page to a keyword. See the keywords extension point.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ The id of the keyword being referred to.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.keywords/keyword/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="enabledWhen">
+ <annotation>
+ <documentation>
+ The enabled when element specifies the conditions under which this property page will be added to the properties dialog.
+ </documentation>
+ </annotation>
+ <complexType>
+ <choice>
+ <element ref="not"/>
+ <element ref="and"/>
+ <element ref="or"/>
+ <element ref="instanceof"/>
+ <element ref="test"/>
+ <element ref="systemTest"/>
+ <element ref="equals"/>
+ <element ref="count"/>
+ <element ref="with"/>
+ <element ref="resolve"/>
+ <element ref="adapt"/>
+ <element ref="iterate"/>
+ <element ref="reference"/>
+ </choice>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of the property page definition:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.propertyPages&quot;&gt;
+ &lt;page
+ id=&quot;com.xyz.projectPage&quot;
+ name=&quot;XYZ Java Properties&quot;
+ class=&quot;com.xyz.ppages.JavaPropertyPage&quot;
+ nameFilter=&quot;*.java&quot;&gt;
+ &lt;enabledWhen&gt;
+ &lt;instanceof
+ value=&quot;org.eclipse.core.resources.IFile&quot;&gt;
+ &lt;/instanceof&gt;
+ &lt;/enabledWhen&gt;
+ &lt;filter name=&quot;readOnly&quot; value=&quot;true&quot;/&gt;
+ &lt;/page&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The attribute &lt;samp&gt;class&lt;/samp&gt; must specify a fully qualified name
+of the class that implements
+&lt;samp&gt;org.eclipse.ui.IWorkbenchPropertyPage&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ Some objects provided by the workbench may have
+property pages registered. Plug-ins are allowed
+to add more property pages for these objects.
+Property pages are not limited to workbench
+resources: all objects showing up in the workbench
+(even domain specific objects created by the plug-ins)
+may have property pages and other plug-ins are
+allowed to register property pages for them.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/services.exsd b/bundles/org.eclipse.rap.ui/schema/services.exsd
new file mode 100755
index 0000000000..7b3f735f19
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/services.exsd
@@ -0,0 +1,235 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="services" name="Services"/>
+ </appinfo>
+ <documentation>
+ Define service factories so that services can be contributed declaratively and will be available through &lt;code&gt;IServiceLocator#getService(Class)&lt;/code&gt;. The implementation of &lt;code&gt;AbstractServiceFactory&lt;/code&gt; must be able to return a global service and multiple child services (if applicable).
+&lt;p&gt;
+Services must follow a general contract:
+&lt;ul&gt;
+&lt;li&gt;The top level service has no parent.&lt;/li&gt;
+&lt;li&gt;The child service may use the supplied parent, which can be cast to the service interface.&lt;/li&gt;
+&lt;li&gt;Any other services needed for initialization should be retrieved from the &lt;code&gt;IServiceLocator&lt;/code&gt;.&lt;/li&gt;
+&lt;li&gt;If the service needs to clean up any state (like listeners) it should implement &lt;code&gt;IDisposable&lt;/code&gt;.&lt;/li&gt;
+&lt;li&gt;Services should clearly specify when they perform cleanup for clients, such as removing listeners automatically on disposal.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <documentation>
+ Contribute services to the workbench.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="serviceFactory" minOccurs="0" maxOccurs="1"/>
+ <element ref="sourceProvider" minOccurs="0" maxOccurs="1"/>
+ </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="serviceFactory">
+ <annotation>
+ <documentation>
+ Match a service interface to a factory that can supply a hierachical implementation of that service.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="service" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="factoryClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ The factory that extends &lt;code&gt;AbstractServiceFactory&lt;/code&gt; and can create the implementation for the serviceClass.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.services.AbstractServiceFactory:"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="service">
+ <annotation>
+ <documentation>
+ A service this factory can provide.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="serviceClass" type="string">
+ <annotation>
+ <documentation>
+ The interface that represents a service contract.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="sourceProvider">
+ <annotation>
+ <documentation>
+ A Source Provider supplies source variables to the IEvaluationService. It can also notify the IEvaluationService when one or more of the variables change.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="variable" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="provider" type="string" use="required">
+ <annotation>
+ <documentation>
+ This class must provide variables and call the appropriate fireSourceChanged(*) method when any of the variables change.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.AbstractSourceProvider:"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="variable">
+ <annotation>
+ <documentation>
+ A source variable from this provider. A source provider must declare all variables that it provides.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name of a contributed source variable. It is a good practice to prepend the plugin id to the variable name to avoid collisions with other source providers.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="priorityLevel" use="required">
+ <annotation>
+ <documentation>
+ For conflict resolution used by services like the IHandlerService, contributed source variables must assign a priority. &lt;b&gt;workbench&lt;/b&gt; is the global default priority. See &lt;code&gt;ISources&lt;/code&gt; for relative priority information.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="workbench">
+ </enumeration>
+ <enumeration value="activeContexts">
+ </enumeration>
+ <enumeration value="activeShell">
+ </enumeration>
+ <enumeration value="activeWorkbenchWindow">
+ </enumeration>
+ <enumeration value="activeEditorId">
+ </enumeration>
+ <enumeration value="activePartId">
+ </enumeration>
+ <enumeration value="activeSite">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 3.4
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+Here is a basic definition:
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.services&quot;&gt;
+ &lt;serviceFactory
+ factoryClass=&quot;org.eclipse.ui.tests.services.LevelServiceFactory&quot;&gt;
+ &lt;service
+ serviceClass=&quot;org.eclipse.ui.tests.services.ILevelService&quot;&gt;
+ &lt;/service&gt;
+ &lt;/serviceFactory&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;
+The &lt;code&gt;LevelServiceFactory&lt;/code&gt; can return an &lt;code&gt;ILevelService&lt;/code&gt; when it is requested from the &lt;code&gt;IServiceLocator&lt;/code&gt;:
+&lt;pre&gt;
+ ILevelService s = (ILevelService) getSite().getService(ILevelService.class);
+ System.out.println(s.getLevel());
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In this test example, the factory would instantiate three &lt;code&gt;ILevelService&lt;/code&gt; implementations during the first call to &lt;code&gt;getSite().getService(*)&lt;/code&gt;. The global one in the workbench, one for the workbench window, and one for the site.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;
+Please see &lt;code&gt;org.eclipse.ui.services.AbstractServiceFactory&lt;/code&gt;, &lt;code&gt;org.eclipse.ui.services.IDisposable&lt;/code&gt;, and &lt;code&gt;org.eclipse.ui.services.IServiceWithSources&lt;/code&gt; for more information.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/splashHandlers.exsd b/bundles/org.eclipse.rap.ui/schema/splashHandlers.exsd
new file mode 100755
index 0000000000..997923c300
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/splashHandlers.exsd
@@ -0,0 +1,164 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="splashHandlers" name="Splash Handlers"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;This extension point allows for the contribution of splash handlers. These splash handlers may contribute custom behavior to the splash screen that appears during the start-up procedure that may include (but is not limited to) custom graphics and animation, custom progress reporting, and interactive behaviors.&lt;/p&gt;
+&lt;p&gt;It is possible to have only one splash handler active at a given time and the decision of which handler to choose from comes down to a product binding. As such, when defining a splash handler you must create two elements in your extension: the definition of the splash handler (represented by a &lt;code&gt;splashHandler&lt;/code&gt; element) and a product binding (represented by a &lt;code&gt;splashHandlerProductBinding&lt;/code&gt; element).&lt;/p&gt;
+&lt;p&gt;The splash life cycle is as follows:
+&lt;ul&gt;
+&lt;li&gt;Eclipse process is launched&lt;/li&gt;
+&lt;li&gt;Eclipse launches a native executable that creates the initial splash window (including bitmap)&lt;/li&gt;
+&lt;li&gt;OSGi starts&lt;/li&gt;
+&lt;li&gt;Workbench starts&lt;/li&gt;
+&lt;li&gt;Workbench finds the splash handler suitable for this product and creates it&lt;/li&gt;
+&lt;li&gt;init(Shell) is called on the handler&lt;/li&gt;
+&lt;li&gt;Workbench initializes and spins the event loop at regular intervals&lt;/li&gt;
+&lt;li&gt;Workbench advertises the completion of startup and the dispose() method is invoked on the handler&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="splashHandler" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="splashHandlerProductBinding" 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="splashHandler">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this splash handler.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a class that extends &lt;code&gt;org.eclipse.ui.splash.AbstractSplashHandler&lt;/code&gt; or &lt;code&gt;org.eclipse.ui.splash.BasicSplashHandler&lt;/code&gt;.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.splash.AbstractSplashHandler"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="splashHandlerProductBinding">
+ <complexType>
+ <attribute name="splashId" type="string" use="required">
+ <annotation>
+ <documentation>
+ unique id of a splash handler
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="productId" type="string" use="required">
+ <annotation>
+ <documentation>
+ unique id of a product
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Since 3.3
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of this extension point:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension
+ point=&quot;org.eclipse.ui.splashHandlers&quot;&gt;
+ &lt;splashHandler
+ class=&quot;com.xyz.splash.Handler&quot;
+ id=&quot;com.xyz.splash&quot;&gt;
+ &lt;/splashHandler&gt;
+ &lt;splashHandlerProductBinding
+ productId=&quot;com.xyz.product&quot;
+ splashId=&quot;com.xyz.splash&quot;&gt;
+ &lt;/splashHandlerProductBinding&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must be a fully qualified name of the class that extends &lt;samp&gt;org.eclipse.ui.splash.AbstractSplashHandler&lt;/samp&gt;. It is common practice to subclass &lt;samp&gt;org.eclipse.ui.splash.BasicSplashHandler&lt;/samp&gt; if the standard progress reporting is desired.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ In the absence of a product-bound handler described by an extension of this type the default Eclipse splash is used. This splash is driven by product constants defined in &lt;samp&gt;org.eclipse.ui.branding.IProductConstants&lt;/samp&gt; and will display a progress bar and message area at specified locations in specified colors.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/startup.exsd b/bundles/org.eclipse.rap.ui/schema/startup.exsd
new file mode 100755
index 0000000000..9d3a5359c2
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/startup.exsd
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="startup" name="Startup"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to register plugins that want to be activated on startup. The class given as the attribute on the startup element must implement the interface &lt;samp&gt;org.eclipse.ui.IStartup&lt;/samp&gt;. Once the workbench is started, the method earlyStartup() will be called from a separate thread.
+
+If the startup element has a class attribute, the class will be instantiated and earlyStartup() will be called on the result. Otherwise, this method will be called on the plug-in class. Do not specify the plug-in class as the value of the class attribute, or it will be instantiated twice (once by regular plug-in activation, and once by this mechanism).
+
+If the extension does not provide a class as an attribute on the startup element, the plug-in&apos;s activator (plug-in class) must implement &lt;samp&gt;org.eclipse.ui.IStartup&lt;/samp&gt;. Note that this form is deprecated and should no longer be used. Its functioning relies on the availability of the org.eclipse.core.runtime.compatibility plug-in and the org.eclipse.core.runtime.compatibility.registry fragment.
+
+Plugins that provide an extension to this extension point are listed in the workbench preferences and the user may disable any plugin from early startup.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="startup" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="startup">
+ <complexType>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class that implements
+&lt;samp&gt;org.eclipse.ui.IStartup&lt;/samp&gt;.
+If not specified, the plug-in class is used. Do not specify the plug-in class as an explicit value, or it will be instantiated twice (once by regular plug-in activation, and once by this mechanism).
+Since release 3.0.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IStartup"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of a startup extension:
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.startup&quot;&gt;
+ &lt;startup class=&quot;org.eclipse.example.StartupClass&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ See interface &lt;samp&gt;org.eclipse.ui.IStartup&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/statusHandlers.exsd b/bundles/org.eclipse.rap.ui/schema/statusHandlers.exsd
new file mode 100755
index 0000000000..ee65d4d26f
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/statusHandlers.exsd
@@ -0,0 +1,267 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="statusHandlers" name="Status handlers"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+This extension point is used to register implementations of status handlers in the workbench. A handler can be associated with a product and this association is also contributed via this extension point.
+&lt;/p&gt;
+
+&lt;p&gt;
+Status handlers are part of the status handling facility. The facility is responsible for handling errors and other important issues in Eclipse based applications. The handlers are responsible for presenting this errors by logging or showing error dialogs.
+&lt;/p&gt;
+
+&lt;p&gt;
+If there is no status handler associated with a product, the status handling facility uses the application handler defined in a workbench advisor.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="statusHandler" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="statusHandlerProductBinding" 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="statusHandler">
+ <annotation>
+ <documentation>
+ This element is used to define a status handler.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+A unique identifier for this error handler. The id is used for setting default
+error handler in a product.
+If an error handler is to be the default one its id has to be set
+in a product preference file in org.eclipse.ui/ERROR_HANDLER_ID property.
+The name of the preference file is set in product extension
+&quot;preferenceCustomization&quot; property.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+A fully qualified name of a class which extends &lt;code&gt;org.eclipse.ui.errors.AbstractStatusHandler&lt;/code&gt;.
+&lt;/p&gt;
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.errors.AbstractStatusHandler"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+This element defines parameters for instances of specified status handler class.
+Instances of specified status handler class should understand this parameter.
+&lt;/p&gt;
+&lt;p&gt;
+Handling policies can use handler parameters. For example default policy
+use handlers &quot;prefix&quot; parameter. The default policy looks for the most specific
+handler for given status checking status pluginId against these prefixes.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name of a parameter.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ The value of a parameter.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="statusHandlerProductBinding">
+ <annotation>
+ <documentation>
+ &lt;p&gt;
+Specifies a binding between a product and a status handler.
+These bindings determine which handler is appropriate for the current product (as defined by &lt;code&gt;org.eclipse.core.runtime.Platform.getProduct()&lt;/code&gt;).
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="productId" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique id of a product.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="handlerId" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique id of a status handler.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.3
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+The following is an example of the definition for handler with prefix parameter.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.statusHandlers&quot;&gt;
+ &lt;statusHandler
+ class=&quot;org.eclipse.ui.statushanders.SampleStatusHandler&quot;
+ id=&quot;sampleStatusHandler&quot;&gt;
+ &lt;parameter
+ name=&quot;prefix&quot;
+ value=&quot;org.eclipse.ui.ide&quot;&gt;
+ &lt;/parameter&gt;
+ &lt;/statusHandler&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+The following is an example of the definition for default (product) handler. The handler defined in the example will be default for product with id &quot;productId&quot;.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.statusHandlers&quot;&gt;
+ &lt;statusHandler
+ class=&quot;org.eclipse.ui.statushandlers.SampleStatusHandler&quot;
+ id=&quot;sampleStatusHandler&quot;&gt;
+ &lt;/statusHandler&gt;
+ &lt;statusHandlerProductBinding
+ handlerId=&quot;sampleStatusHandler&quot;
+ productId=&quot;productId&quot;&gt;
+ &lt;/statusHandlerProductBinding&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+Of course we can define only the binding (for instance in a product plugin).
+The handler can be defined in other plugin.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.statusHandlers&quot;&gt;
+ &lt;statusHandlerProductBinding
+ handlerId=&quot;sampleStatusHandler&quot;
+ productId=&quot;productId&quot;&gt;
+ &lt;/statusHandlerProductBinding&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ &lt;/p&gt;
+The value of the &lt;code&gt;class&lt;/code&gt; attribute in &lt;code&gt;statusHandler&lt;/code&gt; element must be the fully qualified name of a class that extends &lt;code&gt;org.eclipse.ui.statushandlers.AbstractStatusHandler&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;
+The &lt;code&gt;parameter&lt;/code&gt; elements in &lt;code&gt;statusHandler&lt;/code&gt; element adds parameters which can be used during handling in the status handler defined in &lt;code&gt;class&lt;/code&gt; attribute.
+&lt;/p&gt;
+&lt;p&gt;
+The value of the &lt;code&gt;productId&lt;/code&gt; attribute in &lt;code&gt;statusHandlerProductBinding&lt;/code&gt; is full name of the product to which the handler with id defined in &lt;code&gt;handlerId&lt;/code&gt; attribute in &lt;code&gt;statusHandlerProductBinding&lt;/code&gt; will be associated.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ &lt;p&gt;
+The platform supplies basic implementation of &lt;code&gt;org.eclipse.ui.statushandlers.AbstractStatusHandler&lt;/code&gt;.
+It is &lt;code&gt;org.eclipse.ui.statushandlers.WorkbenchErrorHandler&lt;/code&gt; which is the default workbench status handler.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2006, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/systemSummarySections.exsd b/bundles/org.eclipse.rap.ui/schema/systemSummarySections.exsd
new file mode 100755
index 0000000000..083dee5fc8
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/systemSummarySections.exsd
@@ -0,0 +1,142 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="systemSummarySections" name="System Summary Sections"/>
+ </appInfo>
+ <documentation>
+ The Eclipse UI provides an AboutDialog that can be branded and reused by client product plugins. This dialog includes a SystemSummary dialog that contains configuration details. By extending the org.eclipse.ui.systemSummarySections extension point clients are able to put their own information into the log.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="section" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="section">
+ <complexType>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional, unique name that will be used to identify this system summary section
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="sectionTitle" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be displayed as the title of this section in the system summary
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The fully qualified name of a class the implements
+&lt;code&gt;org.eclipse.ui.about.ISystemSummarySection&lt;/code&gt;. The class must provide a default constructor.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of a systemSummarySections extension:
+&lt;pre&gt;
+&lt;extension
+ point=&quot;org.eclipse.ui.systemSummarySections&quot;&gt;
+ &lt;section
+ id=&quot;RCPBrowser.CookieDetails&quot;
+ sectionTitle=&quot;Browser Cookies&quot;
+ class=&quot;org.eclipse.ui.examples.rcp.browser.CookieConfigDetails&quot;/&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The class specified in the section element must be a concrete subclass of &lt;code&gt;org.eclipse.ui.about.ISystemSummarySection&lt;/code&gt;.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The Workbench uses this extension point to provide the following sections in the system summary dialog:
+&lt;ul&gt;
+&lt;li&gt;System properties: The properties returned by java.lang.System.getProperties().&lt;/li&gt;
+&lt;li&gt;Features: The installed features.&lt;/li&gt;
+&lt;li&gt;Plug-in Registry: The installed plug-ins and their status.&lt;/li&gt;
+&lt;li&gt;User Preferences: The preferences that have been modified from their default values.&lt;/li&gt;
+&lt;/ul&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2004, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/themes.exsd b/bundles/org.eclipse.rap.ui/schema/themes.exsd
new file mode 100755
index 0000000000..b6a1c5900f
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/themes.exsd
@@ -0,0 +1,695 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="themes" name="Themes"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to customize the appearance of the UI. It allows definition of color and font entities as well as theme entities. Themes allow applications to selectively override default color and font specifications for particular uses.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="theme" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="colorDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="fontDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="themeElementCategory" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="data" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="categoryPresentationBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="theme">
+ <annotation>
+ <documentation>
+ A collection of font, color and data overrides. Such a collection may be used to alter the appearance of the workbench. Many theme elements may exist with the same id. This allows component authors to contribute to existing themes.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="colorOverride" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="fontOverride" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ <element ref="data" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this theme
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ a translatable name of the theme to be presented to the user. At least one theme definition with any given id should contain this attribute.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="themeElementCategory">
+ <annotation>
+ <documentation>
+ A logical grouping of theme element definitions. This category may include colors and fonts.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the id for this category
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="parentId" type="string">
+ <annotation>
+ <documentation>
+ the id of the parent category, if any.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.themes/themeElementCategory/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ a class that implements &lt;code&gt;org.eclipse.ui.themes.IThemePreview&lt;/code&gt;
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IPresentationPreview"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string">
+ <annotation>
+ <documentation>
+ a translatable name of the theme element category to be presented to the user
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="colorDefinition">
+ <annotation>
+ <documentation>
+ A symbolic color definition.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="colorFactory" minOccurs="0" maxOccurs="1"/>
+ <element ref="colorValue" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique id that can be used to identify this color definition.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the color to be presented to the user.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="defaultsTo" type="string">
+ <annotation>
+ <documentation>
+ the id of another color definition that is the default setting for the receiver. When there is no preference for this color the color registry will have the value of defaultsTo set for it in the registry.
+
+Only one of &lt;code&gt;defaultsTo&lt;/code&gt;, &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;colorFactory&lt;/code&gt; may be defined.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ The default value of this color. The value may be specified in the following ways:
+&lt;ul&gt;
+&lt;li&gt;a String containing comma separated integers in the form red,green,blue
+&lt;li&gt;a String that maps to an SWT color constant (ie: COLOR_RED).
+&lt;/ul&gt;
+Only one of &lt;code&gt;defaultsTo&lt;/code&gt;, &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;colorFactory&lt;/code&gt; may be defined. If &lt;code&gt;value&lt;/code&gt; is specified, additional value definitions may be specified on a per platform/windowing system basis via the &lt;code&gt;colorValue&lt;/code&gt; element.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="categoryId" type="string">
+ <annotation>
+ <documentation>
+ the optional id of the &lt;code&gt;themeElementCategory&lt;/code&gt; this color belongs to.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.themes/themeElementCategory/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="colorFactory" type="string">
+ <annotation>
+ <documentation>
+ a class that implements &lt;code&gt;org.eclipse.ui.themes.IColorFactory&lt;/code&gt;. This may be used instead of &lt;code&gt;value&lt;/code&gt; to specify the default value of the color. Please be advised that this should be used with caution - usage of this attribute will cause plugin activation on workbench startup.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.themes.IColorFactory"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="isEditable" type="boolean">
+ <annotation>
+ <documentation>
+ whether the user should be allowed to edit this color in the preference page. If this is &lt;code&gt;false&lt;/code&gt; then the contribution is not shown to the user.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="fontDefinition">
+ <annotation>
+ <documentation>
+ A symbolic font definition.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="fontValue" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this font definition.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name of the font to be presented to the user.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;the font value. This is in the form: &lt;code&gt;fontname-style-height&lt;/code&gt; where &lt;code&gt;fontname&lt;/code&gt; is the name of a font, &lt;code&gt;style&lt;/code&gt; is a font style (one of &lt;code&gt;&quot;regular&quot;&lt;/code&gt;, &lt;code&gt;&quot;bold&quot;&lt;/code&gt;, &lt;code&gt;&quot;italic&quot;&lt;/code&gt;, or &lt;code&gt;&quot;bold italic&quot;&lt;/code&gt;) and &lt;code&gt;height&lt;/code&gt; is an integer representing the font height.&lt;/p&gt;
+&lt;p&gt;Example: &lt;code&gt;Times New Roman-bold-36&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;Only one (or neither) of &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;defaultsTo&lt;/code&gt; may be used.&lt;/p&gt; If &lt;code&gt;value&lt;/code&gt; is specified, additional value definitions may be specified on a per platform/windowing system basis via the &lt;code&gt;fontValue&lt;/code&gt; element.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="categoryId" type="string">
+ <annotation>
+ <documentation>
+ the optional id of the &lt;code&gt;themeElementCategory&lt;/code&gt; this font belongs to.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.themes/themeElementCategory/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="defaultsTo" type="string">
+ <annotation>
+ <documentation>
+ the id of another font definition that is the default setting for the receiver. When there is no preference for this font the font registry will have the value of defaultsTo set for it in the registry.
+&lt;p&gt;
+Only one (or neither) of &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;defaultsTo&lt;/code&gt; may be used.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="isEditable" type="boolean">
+ <annotation>
+ <documentation>
+ whether the user should be allowed to edit this color in the preference page. If this is &lt;code&gt;false&lt;/code&gt; then the contribution is not shown to the user.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="colorOverride">
+ <annotation>
+ <documentation>
+ Allows overriding of colors defined in &lt;code&gt;colorDefinition&lt;/code&gt; elements. These colors will be applied when the theme is in use. The colors that are defined by workbench are:
+
+&lt;ul&gt;
+&lt;li&gt;org.eclipse.jface.preference.JFacePreference.ERROR_COLOR
+&lt;li&gt;org.eclipse.jface.preference.JFacePreference.HYPERLINK_COLOR
+&lt;li&gt;org.eclipse.jface.preference.JFacePreference.ACTIVE_HYPERLINK_COLOR
+&lt;/ul&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="colorFactory" minOccurs="0" maxOccurs="1"/>
+ <element ref="colorValue" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique id that can be used to identify this color definition override. This should match an existing font identifier. Strictly speaking, you may override colors that do not exist in the base theme although this practice is not recommended. In effect, such overrides will have behavior similar to &lt;code&gt;colorDefinition&lt;/code&gt;s that have &lt;code&gt;isEditable&lt;/code&gt; set to &lt;code&gt;false&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.themes/colorDefinition/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ the overriding value of this color. The value may be specified in the following ways:
+&lt;ul&gt;
+&lt;li&gt;a String containing comma separated integers in the form red,green,blue
+&lt;li&gt;a String that maps to an SWT color constant (ie: COLOR_RED).
+&lt;/ul&gt;
+Only one of &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;colorFactory&lt;/code&gt; may be defined.
+Unlike a &lt;code&gt;colorDefinition&lt;/code&gt;, you may not supply a &lt;code&gt;defaultsTo&lt;/code&gt; for an override.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="colorFactory" type="string">
+ <annotation>
+ <documentation>
+ a class that implements &lt;code&gt;org.eclipse.ui.themes.IColorFactory&lt;/code&gt;. This may be used instead of &lt;code&gt;value&lt;/code&gt; to specify the default value of the color. Please be advised that this should be used with caution - usage of this attribute will cause plugin activation on workbench startup.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="fontOverride">
+ <annotation>
+ <documentation>
+ Allows overriding of fonts defined in &lt;code&gt;fontDefinition&lt;/code&gt; elements. These fonts will be applied when the theme is in use. The fonts that are defined by workbench are:
+
+&lt;ul&gt;
+&lt;li&gt;org.eclipse.jface.resource.JFaceResources.BANNER_FONT
+&lt;li&gt;org.eclipse.jface.resource.JFaceResources.DIALOG_FONT
+&lt;li&gt;org.eclipse.jface.resource.JFaceResources.HEADER_FONT
+&lt;li&gt;org.eclipse.jface.resource.JFaceResources.TEXT_FONT
+&lt;/ul&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="fontValue" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique id that can be used to identify this font definition override. This should match an existing font identifier. Strictly speaking, you may override fonts that do not exist in the base theme although this practice is not recommended. In effect, such overrides will have behavior similar to &lt;code&gt;fontDefinition&lt;/code&gt;s that have &lt;code&gt;isEditable&lt;/code&gt; set to &lt;code&gt;false&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.themes/fontDefinition/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ &lt;p&gt;the overriding value of this font. This is in the form: &lt;code&gt;fontname-style-height&lt;/code&gt; where &lt;code&gt;fontname&lt;/code&gt; is the name of a font, &lt;code&gt;style&lt;/code&gt; is a font style (one of &lt;code&gt;&quot;regular&quot;&lt;/code&gt;, &lt;code&gt;&quot;bold&quot;&lt;/code&gt;, &lt;code&gt;&quot;italic&quot;&lt;/code&gt;, or &lt;code&gt;&quot;bold italic&quot;&lt;/code&gt;) and &lt;code&gt;height&lt;/code&gt; is an integer representing the font height.&lt;/p&gt;
+&lt;p&gt;Example: &lt;code&gt;Times New Roman-bold-36&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;&lt;code&gt;value&lt;/code&gt; must be defined for a font override.
+Unlike a &lt;code&gt;fontDefinition&lt;/code&gt;, you may not supply a &lt;code&gt;defaultsTo&lt;/code&gt; for a &lt;code&gt;fontOverride&lt;/code&gt;.&lt;/p&gt;
+
+&lt;p&gt;If this value is not specified the default font will be used&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <documentation>
+ A short description of the elements usage.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="colorFactory">
+ <annotation>
+ <documentation>
+ The element version of the &lt;code&gt;colorFactory&lt;/code&gt; attribute. This is used when the colorFactory implements &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt; and there is parameterized data that you wish used in its initialization.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a class that implements &lt;code&gt;org.eclipse.ui.themes.IColorFactory&lt;/code&gt;. It may also implement &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.themes.IColorFactory"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="plugin" type="string">
+ <annotation>
+ <documentation>
+ the identifier of the plugin that contains the class
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <documentation>
+ A parameter element to be used within the colorFactory element. This will be passed as initialization data to the colorFactory class.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter name
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter value
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="data">
+ <annotation>
+ <documentation>
+ &lt;p&gt;An element that allows arbitrary data to be associated with a theme or the default theme. This data may be gradient directions or percentages, labels, author information, etc.&lt;/p&gt;
+&lt;p&gt;This element has behavior similar to definitions and overrides. If a key is present in both the default theme and an identified theme, then the identified themes value will be used when that theme is accessed. If the identified theme does not supply a value then the default is used.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the data name,
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the data value
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="colorValue">
+ <annotation>
+ <documentation>
+ This element allows specification of a color value on a per-platform basis.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="colorFactory" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="os" type="string">
+ <annotation>
+ <documentation>
+ an optional os string to enable choosing of color based on current OS. eg: win32,linux
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="ws" type="string">
+ <annotation>
+ <documentation>
+ an optional os string to enable choosing of color based on current WS. eg: win32,gtk
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ The default value of this color. The value may be specified in the following ways:
+&lt;ul&gt;
+&lt;li&gt;a String containing comma separated integers in the form red,green,blue
+&lt;li&gt;a String that maps to an SWT color constant (ie: COLOR_RED).
+&lt;/ul&gt;
+Only one of &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;colorFactory&lt;/code&gt; may be defined.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="colorFactory" type="string">
+ <annotation>
+ <documentation>
+ a class that implements &lt;code&gt;org.eclipse.ui.themes.IColorFactory&lt;/code&gt;. This may be used instead of &lt;code&gt;value&lt;/code&gt; to specify the value of the color. Please be advised that this should be used with caution - usage of this attribute will cause plugin activation on workbench startup.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.themes.IColorFactory"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="fontValue">
+ <annotation>
+ <documentation>
+ This element allows specification of a font value on a per-platform basis.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="os" type="string">
+ <annotation>
+ <documentation>
+ an optional os string to enable choosing of font based on current OS. eg: win32,linux
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="ws" type="string">
+ <annotation>
+ <documentation>
+ an optional os string to enable choosing of font based on current WS. eg: win32,gtk
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ &lt;p&gt;the font value. This is in the form: &lt;code&gt;fontname-style-height&lt;/code&gt; where &lt;code&gt;fontname&lt;/code&gt; is the name of a font, &lt;code&gt;style&lt;/code&gt; is a font style (one of &lt;code&gt;&quot;regular&quot;&lt;/code&gt;, &lt;code&gt;&quot;bold&quot;&lt;/code&gt;, &lt;code&gt;&quot;italic&quot;&lt;/code&gt;, or &lt;code&gt;&quot;bold italic&quot;&lt;/code&gt;) and &lt;code&gt;height&lt;/code&gt; is an integer representing the font height.&lt;/p&gt;
+&lt;p&gt;Example: &lt;code&gt;Times New Roman-bold-36&lt;/code&gt;.&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="categoryPresentationBinding">
+ <annotation>
+ <documentation>
+ This element allows a category to be bound to a specific presentation as described by the &lt;code&gt;org.eclipse.ui.presentationFactory&lt;/code&gt; extension point. If a category has any presentation bindings then it (and it&apos;s children) is only configurable by the user if it is bound to the active presentation. This is useful for removing unused items from user consideration.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="categoryId" type="string" use="required">
+ <annotation>
+ <documentation>
+ the id of the category to bind
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.themes/themeElementCategory/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="presentationId" type="string" use="required">
+ <annotation>
+ <documentation>
+ the id of the presentation to bind to
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.presentationFactories/factory/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ 3.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of several color and font definitions as well as a theme that overrides them.
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.themes&quot;&gt;
+ &lt;themeElementCategory
+ id=&quot;com.xyz.ThemeCategory&quot;
+ class=&quot;com.xyz.XYZPreview&quot;
+ label=&quot;XYZ Elements&quot;/&gt;
+ &lt;colorDefinition
+ id=&quot;com.xyz.Forground&quot;
+ categoryId=&quot;com.xyz.ThemeCategory&quot;
+ label=&quot;XYZ Foreground Color&quot;
+ value=&quot;COLOR_BLACK&quot;&gt;
+ &lt;!-- white should be used on GTK --&gt;
+ &lt;colorValue
+ value=&quot;COLOR_WHITE&quot;
+ os=&quot;linux&quot;
+ ws=&quot;gtk&quot;/&gt;
+ &lt;description&gt;
+ This color is used for the foreground color of the XYZ plugin editor.
+ &lt;/description&gt;
+ &lt;/colorDefinition&gt;
+ &lt;colorDefinition
+ id=&quot;com.xyz.Background&quot;
+ categoryId=&quot;com.xyz.ThemeCategory&quot;
+ label=&quot;XYZ Background Color&quot;&gt;
+ &lt;colorFactory
+ class=&quot;org.eclipse.ui.themes.RGBBlendColorFactory&quot;
+ plugin=&quot;org.eclipse.ui&quot;&gt;
+ &lt;parameter
+ name=&quot;color1&quot;
+ value=&quot;COLOR_WHITE&quot;/&gt;
+ &lt;parameter
+ name=&quot;color2&quot;
+ value=&quot;COLOR_BLUE&quot;/&gt;
+ &lt;/colorFactory&gt;
+ &lt;!-- black should be used on GTK --&gt;
+ &lt;colorValue
+ value=&quot;COLOR_BLACK&quot;
+ os=&quot;linux&quot;
+ ws=&quot;gtk&quot;/&gt;
+ &lt;description&gt;
+ This color is used for the background color of the XYZ plugin editor.
+ &lt;/description&gt;
+ &lt;/colorDefinition&gt;
+ &lt;fontDefinition
+ id=&quot;com.xyz.TextFont&quot;
+ categoryId=&quot;com.xyz.ThemeCategory&quot;
+ label=&quot;XYZ Editor Font&quot;
+ defaultsTo=&quot;org.eclipse.jface.textfont&quot;&gt;
+ &lt;description&gt;
+ This font is used by the XYY plugin editor.
+ &lt;/description&gt;
+ &lt;/fontDefinition&gt;
+ &lt;data
+ name=&quot;com.xyz.EditorMarginWidth&quot;
+ value=&quot;5&quot;/&gt;
+ &lt;theme
+ id=&quot;com.xyz.HarshTheme&quot;
+ label=&quot;Harsh Colors for XYZ&quot;&gt;
+ &lt;colorOverride
+ id=&quot;com.xyz.Forground&quot;
+ value=&quot;COLOR_CYAN&quot;/&gt;
+ &lt;colorOverride
+ id=&quot;com.xyz.Background&quot;
+ value=&quot;COLOR_MAGENTA&quot;/&gt;
+ &lt;data
+ name=&quot;com.xyz.EditorMarginWidth&quot;
+ value=&quot;1&quot;/&gt;
+ &lt;/theme&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The &lt;code&gt;org.eclipse.ui.IWorkbench.getThemeManager()&lt;/code&gt; provides an instance of &lt;code&gt;org.eclipse.ui.themes.IThemeManager&lt;/code&gt; that may be used to obtain a named theme (by id, including the default theme which has an id of &lt;code&gt;IThemeManager.DEFAULT_THEME&lt;/code&gt;) or the current theme. From an &lt;code&gt;org.eclipse.ui.themes.ITheme&lt;/code&gt; you may obtain a &lt;code&gt;org.eclipse.jface.resources.ColorRegistry&lt;/code&gt;, an &lt;code&gt;org.eclipse.jface.resources.FontRegistry&lt;/code&gt; and the arbitrary data associated with a theme.
+ </documentation>
+ </annotation>
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The workbench provides the font definitions for the text, dialog, banner, header and part title fonts. it also supplies color definitions for the hyperlink, active hyperlink, error, active part (background gradient parts and foreground) and the inactive part (background gradient parts and foreground). The workbench also provides data constants for the title gradient percentages (active and inactive) and the gradient directions (active and inactive). The workbench does not provide any named themes.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2003, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/viewActions.exsd b/bundles/org.eclipse.rap.ui/schema/viewActions.exsd
new file mode 100755
index 0000000000..cb1ce9f971
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/viewActions.exsd
@@ -0,0 +1,485 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="viewActions" name="View Menus,Toolbars and Actions"/>
+ </appinfo>
+ <documentation>
+ &lt;p&gt;This extension point is used to add actions to the pulldown menu and toolbar for views registered by other plug-ins. Each view has a local pulldown menu normally activated
+by clicking on the top right triangle button. Other plug-ins can contribute submenus and actions to this menu. Plug-ins may also contribute actions to a view toolbar. View owners are first given a chance to populate these areas. Optional additions by other plug-ins are appended.&lt;/p&gt;
+&lt;p&gt;
+You can now use &lt;a href=&quot;org_eclipse_ui_menus.html&quot;&gt;org.eclipse.ui.menus&lt;/a&gt; to place commands in menus and toolbars as well.
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <include schemaLocation="commonAction.exsd"/>
+
+ <include schemaLocation="commonExpression.exsd"/>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="viewContribution" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="viewContribution">
+ <annotation>
+ <documentation>
+ This element is used to define a group of view actions and/or menus.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="menu" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used to reference this contribution.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="targetID" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier of a registered view that is the target of this contribution.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/view/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="action">
+ <annotation>
+ <documentation>
+ This element defines an action that the user can invoke in the UI.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <choice>
+ <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+ </choice>
+ <element ref="class" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique identifier used as a reference for this action.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="label" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name used either as the menu item text or toolbar button label. The name can include mnenomic information.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="menubarPath" type="string">
+ <annotation>
+ <documentation>
+ a slash-delimited path (&apos;/&apos;) used to specify the location of this action in the pulldown menu. Each token in the path, except the last one, must represent a valid identifier of an existing menu in the hierarchy. The last token represents the named group into which this action will be added. If the path is omitted, this action will not appear in the pulldown menu.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="toolbarPath" type="string">
+ <annotation>
+ <documentation>
+ a named group within the local toolbar of the target view. If the group does not exist, it will be created. If omitted, the action will not appear in the local toolbar.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context.
+If omitted and the action appears in the toolbar, the Workbench will use a placeholder icon. The path is relative to the location of the plugin.xml file of the contributing plug-in. The icon will appear in the toolbar but not in the pulldown menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="disabledIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the action is disabled. If omitted, the normal icon will simply appear greyed out. The path is relative to the location of the plugin.xml file of the contributing plug-in. The disabled icon will appear in the toolbar but not in the pulldown menu.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="hoverIcon" type="string">
+ <annotation>
+ <documentation>
+ a relative path of an icon used to visually represent the action in its context when the mouse pointer is over the action. If omitted, the normal icon will be used. The path is relative to the location of the plugin.xml file of the contributing plug-in.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="tooltip" type="string">
+ <annotation>
+ <documentation>
+ a translatable text representing the action&apos;s tool tip. Only used if the action appears in the toolbar.
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="helpContextId" type="string">
+ <annotation>
+ <documentation>
+ a unique identifier indicating the help context for this action. On some platforms, if the action appears as a menu item, then pressing the appropriate help key while the menu item is highlighted will display help. Not all platforms support this behaviour.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="style" use="default" value="push">
+ <annotation>
+ <documentation>
+ an optional attribute to define the user interface style type for the action. If defined, the attribute value will be one of the following:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;push&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a regular menu item or tool item.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;radio&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a radio style menu item or tool item. Actions with the radio style within the same menu or toolbar group behave as a radio set. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;toggle&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- as a checked style menu item or as a toggle tool item. The initial value is specified by the &lt;samp&gt;state&lt;/samp&gt; attribute.&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="push">
+ </enumeration>
+ <enumeration value="radio">
+ </enumeration>
+ <enumeration value="toggle">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="state" type="boolean">
+ <annotation>
+ <documentation>
+ an optional attribute indicating the initial state (either &lt;samp&gt;true&lt;/samp&gt; or &lt;samp&gt;false&lt;/samp&gt;), used when the &lt;samp&gt;style&lt;/samp&gt; attribute has the value &lt;samp&gt;radio&lt;/samp&gt; or &lt;samp&gt;toggle&lt;/samp&gt;.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ name of the fully qualified class that implements &lt;samp&gt;org.eclipse.ui.IViewActionDelegate&lt;/samp&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IViewActionDelegate"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="enablesFor" type="string">
+ <annotation>
+ <documentation>
+ a value indicating the selection count which must be met to enable the action.
+If this attribute is specified and the condition is met, the action is enabled.
+If the condition is not met, the action is disabled.
+If no attribute is specified, the action is enabled for any number of items selected.
+The following attribute formats are supported:
+ &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;!&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;?&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 0 or 1 items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 1 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;multiple, 2+&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- 2 or more items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;n&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- a precise number of items selected.a precise number of items selected.&amp;nbsp;
+ For example: enablesFor=&amp;quot; 4&amp;quot; enables the action only when 4
+ items are selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;*&lt;/b&gt;&lt;/td&gt;
+ &lt;td valign=&quot;top&quot;&gt;- any number of items selected&lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="mode">
+ <annotation>
+ <documentation>
+ For actions appearing in a toolbar, &lt;code&gt;FORCE_TEXT&lt;/code&gt; will show text even if there is an icon. See ActionContribuitonItem.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="FORCE_TEXT">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="parameter">
+ <annotation>
+ <documentation>
+ A parameter element to be used within an IExecutableExtension element. This will be passed as initialization data to the instantiated class.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter name
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required">
+ <annotation>
+ <documentation>
+ the parameter value
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation>
+ <documentation>
+ The element version of the &lt;code&gt;class&lt;/code&gt; attribute. This is used when the class implements &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt; and there is parameterized data that you wish used in its initialization.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ A class that implements &lt;code&gt;org.eclipse.ui.IViewActionDelegate&lt;/code&gt;. It may also implement &lt;code&gt;org.eclipse.core.runtime.IExecutableExtension&lt;/code&gt;.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of a view action extension:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.viewActions&quot;&gt;
+ &lt;viewContribution
+ id=&quot;com.xyz.xyzViewC1&quot;
+ targetID=&quot;org.eclipse.ui.views.navigator.ResourceNavigator&quot;&gt;
+ &lt;menu
+ id=&quot;com.xyz.xyzMenu&quot;
+ label=&quot;XYZ Menu&quot;
+ path=&quot;additions&quot;&gt;
+ &lt;separator name=&quot;group1&quot;/&gt;
+ &lt;/menu&gt;
+ &lt;action
+ id=&quot;com.xyz.runXYZ&quot;
+ label=&quot;&amp;amp;Run XYZ Tool&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/group1&quot;
+ toolbarPath=&quot;Normal/additions&quot;
+ style=&quot;toggle&quot;
+ state=&quot;true&quot;
+ icon=&quot;icons/runXYZ.gif&quot;
+ tooltip=&quot;Run XYZ Tool&quot;
+ helpContextId=&quot;com.xyz.run_action_context&quot;
+ class=&quot;com.xyz.actions.RunXYZ&quot;&gt;
+ &lt;selection class=&quot;org.eclipse.core.resources.IFile&quot; name=&quot;*.java&quot;/&gt;
+ &lt;/action&gt;
+ &lt;/viewContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In the example above, the specified action will only enable for a single selection (&lt;samp&gt;enablesFor&lt;/samp&gt; attribute). In addition, the object in the selection must be a Java file resource.
+&lt;/p&gt;
+&lt;p&gt;
+The following is an other example of a view action extension:
+&lt;/p&gt;
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.viewActions&quot;&gt;
+ &lt;viewContribution
+ id=&quot;com.xyz.xyzViewC1&quot;
+ targetID=&quot;org.eclipse.ui.views.navigator.ResourceNavigator&quot;&gt;
+ &lt;menu
+ id=&quot;com.xyz.xyzMenu&quot;
+ label=&quot;XYZ Menu&quot;
+ path=&quot;additions&quot;&gt;
+ &lt;separator name=&quot;group1&quot;/&gt;
+ &lt;/menu&gt;
+ &lt;action
+ id=&quot;com.xyz.runXYZ2&quot;
+ label=&quot;&amp;amp;Run XYZ2 Tool&quot;
+ menubarPath=&quot;com.xyz.xyzMenu/group1&quot;
+ style=&quot;push&quot;
+ icon=&quot;icons/runXYZ2.gif&quot;
+ tooltip=&quot;Run XYZ2 Tool&quot;
+ helpContextId=&quot;com.xyz.run_action_context2&quot;
+ class=&quot;com.xyz.actions.RunXYZ2&quot;&gt;
+ &lt;enablement&gt;
+ &lt;and&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
+ &lt;not&gt;
+ &lt;objectState name=&quot;extension&quot; value=&quot;java&quot;/&gt;
+ &lt;/not&gt;
+ &lt;/and&gt;
+ &lt;/enablement&gt;
+ &lt;/action&gt;
+ &lt;/viewContribution&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+&lt;p&gt;
+In the example above, the specified action will appear as a menu item. The action is enabled if the selection contains no Java file resources.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must be a fully qualified name of a Java class that implements &lt;samp&gt;org.eclipse.ui.IViewActionDelegate&lt;/samp&gt;. This class is loaded as late as possible to avoid loading the entire plug-in before it is really needed.
+&lt;p&gt;
+The interface &lt;samp&gt;org.eclipse.ui.IViewActionDelegate&lt;/samp&gt; extends &lt;samp&gt;org.eclipse.ui.IActionDelegate&lt;/samp&gt; and adds an additional method that allows the
+delegate to initialize with the view instance it is contributing into.
+&lt;/p&gt;
+&lt;p&gt;
+This extension point can be used to contribute actions into menus previously created by the target view. Omitting the menu path attribute will result in adding the new menu or action at the end of the pulldown menu.
+&lt;/p&gt;
+&lt;p&gt;
+The enablement criteria for an action extension is initially defined by &lt;samp&gt;enablesFor&lt;/samp&gt;, and also either &lt;samp&gt;selection&lt;/samp&gt; or &lt;samp&gt;enablement&lt;/samp&gt;. However, once the action delegate has been instantiated, it may control the action enable state directly within its &lt;samp&gt;selectionChanged&lt;/samp&gt; method.
+&lt;/p&gt;
+&lt;p&gt;
+Action and menu labels may contain special characters that encode mnemonics using the following rules:
+&lt;ol&gt;
+&lt;li&gt;
+Mnemonics are specified using the ampersand (&apos;&amp;amp;&apos;) character in front
+of a selected character in the translated text. Since ampersand is not
+allowed in XML strings, use &lt;samp&gt;&amp;amp;amp;&lt;/samp&gt; character entity.&lt;/li&gt;
+&lt;/ol&gt;
+If two or more actions are contributed to a menu or toolbar by a single extension the actions will appear in the reverse order of how they are listed in the plugin.xml file. This behavior is admittedly unintuitive. However, it was discovered after the Eclipse Platform API was frozen. Changing the behavior now would break every plug-in which relies upon the existing behavior.
+&lt;p&gt;
+The &lt;samp&gt;selection&lt;/samp&gt; and &lt;samp&gt;enablement&lt;/samp&gt; elements are mutually exclusive. The &lt;samp&gt;enablement&lt;/samp&gt; element can replace the &lt;samp&gt;selection&lt;/samp&gt; element using the sub-elements &lt;samp&gt;objectClass&lt;/samp&gt; and &lt;samp&gt;objectState&lt;/samp&gt;. For example, the following:
+&lt;pre&gt;
+ &lt;selection
+ class=&quot;org.eclipse.core.resources.IFile&quot;
+ name=&quot;*.java&quot;&gt;
+ &lt;/selection&gt;
+&lt;/pre&gt;
+can be expressed using:
+&lt;pre&gt;
+ &lt;enablement&gt;
+ &lt;and&gt;
+ &lt;objectClass name=&quot;org.eclipse.core.resources.IFile&quot;/&gt;
+ &lt;objectState name=&quot;extension&quot; value=&quot;java&quot;/&gt;
+ &lt;/and&gt;
+ &lt;/enablement&gt;
+&lt;/pre&gt;
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ Each view normally comes with a number of standard items on the pulldown menu and local toolbar. Additions from other plug-ins will be appended to the standard complement.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2007 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/views.exsd b/bundles/org.eclipse.rap.ui/schema/views.exsd
new file mode 100755
index 0000000000..dcfababe27
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/views.exsd
@@ -0,0 +1,308 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.ui" id="views" name="Views"/>
+ </appinfo>
+ <documentation>
+ This extension point is used to define additional views
+for the workbench. A view is a visual component
+within a workbench page. It is typically used to
+navigate a hierarchy of information (like the workspace),
+open an editor, or display properties for
+the active editor. The user can make a view
+visible from the Window &gt; Show View menu or close it from the
+view local title bar.
+&lt;p&gt;
+In order to reduce the visual clutter in the Show View Dialog, views should be grouped using categories.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="category"/>
+ <element ref="view"/>
+ <element ref="stickyView"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="category">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this category
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the UI for this category
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="parentCategory" type="string">
+ <annotation>
+ <documentation>
+ an optional path composed of category IDs separated by &apos;/&apos;. This
+allows the creation of a hierarchy of categories.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="view">
+ <complexType>
+ <sequence>
+ <element ref="description" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this view
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the UI for this view
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ an optional attribute that is composed of the category IDs separated
+by &apos;/&apos;. Each referenced category must be declared in a corresponding category element.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/category/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified name of the class that implements
+&lt;samp&gt;org.eclipse.ui.IViewPart&lt;/samp&gt;. A common practice
+is to subclass &lt;samp&gt;org.eclipse.ui.part.ViewPart&lt;/samp&gt;
+in order to inherit the default functionality.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.part.ViewPart"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ a relative name of the icon that will
+be associated with the view.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="fastViewWidthRatio" type="string">
+ <annotation>
+ <documentation>
+ the percentage of the width of the workbench that the view will take up as an active fast view.
+This must be defined as a floating point value and lie between 0.05 and 0.95.
+If no value is supplied, a default ratio will be used.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="allowMultiple" type="boolean">
+ <annotation>
+ <documentation>
+ flag indicating whether this view allows multiple instances to be created using IWorkbenchPage.showView(String id, String secondaryId). The default is false.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="restorable" type="boolean" use="default" value="true">
+ <annotation>
+ <documentation>
+ flag indicating whether this view allows to be restored upon workbench restart. If set to false, the view will not be open after a workbench restart. The default is true.
+&lt;p&gt;
+Since: 3.4
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <documentation>
+ an optional subelement whose body should contain text providing a short description of the view.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="stickyView">
+ <annotation>
+ <documentation>
+ A sticky view is a view that will appear by default across all perspectives in a window once it is opened. Its initial placement is governemed by the location attribute, but nothing prevents it from being moved or closed by the user. Use of this element will only cause a placeholder for the view to be created, it will not show the view. Please note that usage of this element should be done with great care and should only be applied to views that truely have a need to live across perspectives.
+
+Since 3.0
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ the id of the view to be made sticky.
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="identifier" basedOn="org.eclipse.ui.views/view/@id"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="location">
+ <annotation>
+ <documentation>
+ optional attribute that specifies the location of the sticky view relative to the editor area. If absent, the view will be docked to the right of the editor area.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="RIGHT">
+ </enumeration>
+ <enumeration value="LEFT">
+ </enumeration>
+ <enumeration value="TOP">
+ </enumeration>
+ <enumeration value="BOTTOM">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="closeable" type="boolean">
+ <annotation>
+ <documentation>
+ optional attribute that specifies wether the view should be closeable. If absent it will be closeable.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="moveable" type="boolean">
+ <annotation>
+ <documentation>
+ optional attribute that specifies wether the view should be moveable. If absent it will be moveable.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ The following is an example of the extension point:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.views&quot;&gt;
+ &lt;category
+ id=&quot;com.xyz.views.XYZviews&quot;
+ name=&quot;XYZ&quot;/&gt;
+ &lt;view
+ id=&quot;com.xyz.views.XYZView&quot;
+ name=&quot;XYZ View&quot;
+ category=&quot;com.xyz.views.XYZviews&quot;
+ class=&quot;com.xyz.views.XYZView&quot;
+ icon=&quot;icons/XYZ.gif&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+The following is an example of a sticky view declaration:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.views&quot;&gt;
+ &lt;stickyView
+ id=&quot;com.xyz.views.XYZView&quot; /&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiInfo"/>
+ </appinfo>
+ <documentation>
+ The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must be a
+fully qualified name of the class that implements
+&lt;samp&gt;org.eclipse.ui.IViewPart&lt;/samp&gt;. It is common
+practice to subclass &lt;samp&gt;org.eclipse.ui.part.ViewPart&lt;/samp&gt;
+ when developing a new view.
+ </documentation>
+ </annotation>
+
+
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ The Eclipse Platform provides a number of standard views including Navigator, Properties, Outline and Tasks. From the user point of view, these views are no different from any other view provided by the plug-ins. All the views can be shown from the &quot;Show View&quot; submenu of the &quot;Window&quot; menu. The position of a view is persistent: it is saved when the view is closed and restored when the view is reopened in a single session. The position is also persisted between workbench sessions.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="copyright"/>
+ </appinfo>
+ <documentation>
+ Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.rap.ui/schema/workingSets.exsd b/bundles/org.eclipse.rap.ui/schema/workingSets.exsd
new file mode 100755
index 0000000000..457520d05c
--- /dev/null
+++ b/bundles/org.eclipse.rap.ui/schema/workingSets.exsd
@@ -0,0 +1,192 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ui" id="workingSets" name="Working Sets"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to define a working set wizard page. Working sets contain a number of elements of type IAdaptable and can be used to group elements for presentation to the user or for operations on a set of elements. A working set wizard page is used to create and edit working sets that contain elements of a specific type. An updater class is capable of monitoring for changes in resources contained within working sets and an element adapter class is able to transform resources prior to inclusion in the working set.
+&lt;p&gt;
+To select a working set the user is presented with a list of working sets that exist in the workbench. From that list a working set can be selected and edited using one of the wizard pages defined using this extension point. An existing working set is always edited with the wizard page that was used to create it or with the default resource based working set page if the original page is not available.
+&lt;p&gt;
+A new working set can be defined by the user from the same working set selection dialog. When a new working set is defined, the plugin provided wizard page is preceded by a page listing all available working set types. This list is made up of the name attribute values of each working set extension.
+&lt;p&gt;
+Views provide a user interface to open the working set selection dialog and must store the selected working set.
+&lt;p&gt;
+The resource navigator uses a working set to filter elements from the navigator view. Only parents and children of working set elements are shown in the view, in addition to the working set elements themselves.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="workingSet" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="workingSet">
+ <complexType>
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that can be used to identify this working set dialog.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ the name of the element type that will be displayed and edited by the working set page. This should be a descriptive name like &quot;Resource&quot; or &quot;Java Element&quot;.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ a brief description of this working set type. This should likely include the general kinds of elements that can be added to the set.
+Added in 3.4.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ the relative path of an image that will be displayed in the working set type list on the first page of the working set creation wizard as well as in the working set selection dialog.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="pageClass" type="string">
+ <annotation>
+ <documentation>
+ the fully qualified name of a Java class implementing &lt;samp&gt;org.eclipse.ui.dialogs.IWorkingSetPage&lt;/samp&gt;.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jface.wizard.WizardPage:org.eclipse.ui.dialogs.IWorkingSetPage"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="updaterClass" type="string">
+ <annotation>
+ <documentation>
+ the fully qualified name of a Java class implementing &lt;samp&gt;org.eclipse.ui.IWorkingSetUpdater&lt;/samp&gt;. Use of this attribute will not cause eager plug-in activation. This class will only be instantiated when the declaring bundle is otherwise activated.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IWorkingSetUpdater"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="elementAdapterClass" type="string">
+ <annotation>
+ <documentation>
+ the fully qualified name of a Java class implementing &lt;samp&gt;org.eclipse.ui.IWorkingSetElementAdapter&lt;/samp&gt;. Use of this attribute will not cause eager plug-in activation. This class will only be instantiated when the declaring bundle is otherwise activated. Added in 3.3.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ui.IWorkingSetElementAdapter"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ Release 2.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ Following is an example of how the resource working set dialog extension is defined to display and edit generic IResource elements. Additionally, it supplies an updaterClass that can handle removal and addition of resources on the fly as well as an elementAdapterClass that is capable of adapting objects to IResources.
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ui.workingSets&quot;&gt;
+ &lt;workingSet
+ id=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;
+ name=&quot;Resource&quot;
+ description=&quot;Contains basic resources (files, folders, and projects)&quot;
+ icon=&quot;icons/resworkset.gif&quot;
+ pageClass=&quot;org.eclipse.ui.internal.dialogs.ResourceWorkingSetPage&quot;
+ updaterClass=&quot;org.eclipse.ui.internal.workingsets.ResourceWorkingSetUpdater&quot;
+ elementAdapterClass=&quot;org.eclipse.ui.internal.workingsets.ResourceWorkingSetElementAdapter&quot;&gt;
+ &lt;/workingSet&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The value of the pageClass attribute must represent a class that implements the &lt;samp&gt;org.eclipse.ui.dialogs.IWorkingSetPage&lt;/samp&gt; interface.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The workbench provides a working set wizard page for creating and editing resource based working sets.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2002, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which accompanies
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>