blob: 1f8861b3ca00fae0519bd9f3eefe0c23fa357c06 [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.common.frameworks.ui">
<annotation>
<appInfo>
<meta.schema plugin="org.eclipse.wst.common.frameworks.ui" id="wtpuiAction" name="WTP UI Action"/>
</appInfo>
<documentation>
This extension point is for WTP Operations which need to be tied to a generic UI action, such as CUT, COPY, PASTE, DELETE, and RENAME.
</documentation>
</annotation>
<element name="extension">
<complexType>
<sequence>
<choice>
<element ref="masterOperation"/>
<element ref="slaveOperation"/>
</choice>
</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>
</annotation>
</attribute>
</complexType>
</element>
<element name="masterOperation">
<annotation>
<documentation>
A masterOperation enables an existing WTP Operation to be used in a UI action. Generic Ids aggregate a set of masterOperations for the same Abstract action (like a &quot;CUT&quot; operation). WTP Operations are themselves extendible, so for any masterOperation defined, there may be any number of pre|post operations. These pre|post operation can have slaveOperation elements defined which indicate the pre|post operation may be run independently.
</documentation>
</annotation>
<complexType>
<sequence>
<element ref="selectionEnablement"/>
</sequence>
<attribute name="extendedGenericId" type="string" use="required">
<annotation>
<documentation>
The ID of the Generic Action you would like to contribute to. (e.g. The id for CUT, COPY, PASTE, DELETE, RENAME).
</documentation>
</annotation>
</attribute>
<attribute name="operationClass" type="string">
<annotation>
<documentation>
The fully qualified class of your operation. Your operation must be a WTPOperation and must provide a no-arguments default constructor. If this attribute is not provided, the getDefaultOperation() returned by the dataModel will be used.
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string" use="required">
<annotation>
<documentation>
A name to display in the dialog for your action (if the operation is optional). You can use the standard &quot;%key&quot; for translatable text stored in plugin.properties.
</documentation>
</annotation>
</attribute>
<attribute name="description" type="string">
<annotation>
<documentation>
A description to display in the dialog for your action (if the operation is optional). You can use the standard &quot;%key&quot; for translatable text stored in plugin.properties.
</documentation>
</annotation>
</attribute>
<attribute name="populatorClass" type="string" use="required">
<annotation>
<documentation>
The populatorClass knows how to provide a WTP Operation Data Model based on a given selection. The getDefaultOperation() method of the data model will be ignored if the operationClass is provided.
</documentation>
</annotation>
</attribute>
<attribute name="alwaysExecute" type="boolean">
<annotation>
<documentation>
optional setting to determine execution context
</documentation>
</annotation>
</attribute>
<attribute name="overrideId" type="string">
<annotation>
<documentation>
optional setting to define an overridable id
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
optional identification for operation instance
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="selectionEnablement">
<annotation>
<documentation>
The selectionEnablement element allows you to filter which kinds of selection your object is applicable to using Standard Eclipse Action Expresions.
</documentation>
</annotation>
<complexType>
<choice>
<element ref="objectClass"/>
<element ref="or"/>
</choice>
</complexType>
</element>
<element name="slaveOperation">
<annotation>
<documentation>
The slaveOperation element defines display information for operations which extend a declared master operation. If a pre|post operation of a master does not have a corresponding slaveOperation element, then the pre|post operation will be consider required, and not be displayed to the user.
</documentation>
</annotation>
<complexType>
<attribute name="operationClass" type="string" use="required">
<annotation>
<documentation>
The fully qualified class of your operation. Your operation must be a WTPOperation and must provide a no-arguments default constructor. For slave operations, the data model of the master operation will be provided. Therefore, slaves cannot override the data model using a seperate populatorClass.
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string" use="required">
<annotation>
<documentation>
A name to display in the dialog for your action (if the operation is optional). You can use the standard &quot;%key&quot; for translatable text stored in plugin.properties.
</documentation>
</annotation>
</attribute>
<attribute name="description" type="string">
<annotation>
<documentation>
A description to display in the dialog for your action (if the operation is optional). You can use the standard &quot;%key&quot; for translatable text stored in plugin.properties.
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="or">
<complexType>
<choice>
<element ref="objectClass"/>
<element ref="and"/>
<element ref="objectState"/>
</choice>
</complexType>
</element>
<element name="objectClass">
<complexType>
<attribute name="name" type="string">
<annotation>
<documentation>
fully qualified name of the object class
</documentation>
</annotation>
</attribute>
<attribute name="adaptable" type="string">
<annotation>
<documentation>
optional setting to specify the object class as adaptable
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="and">
<complexType>
<choice>
<element ref="objectClass"/>
<element ref="or"/>
</choice>
</complexType>
</element>
<element name="objectState">
<complexType>
<attribute name="value" type="string">
<annotation>
<documentation>
optional setting for the value of a specific object state
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
optional setting for an object state name to check the selected object&apos;s value is matching with
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
1.0
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
&lt;!-- The examples in this section have been commented out because they reference only extension point IDs. These examples must be corrected before being included in the documentation. --&gt;
&lt;!--
The following example declares two Master Operations (&lt;code&gt;com.acme.ui.operation.MasterOperationA&lt;/code&gt; and &lt;code&gt;com.acme.ui.operation.MasterOperationB&lt;/code&gt;) which are attached to the Generic ID &lt;code&gt;com.acme.ui.WTPOptionalOperationTest&lt;/code&gt;.
The scenario has Master A which has as a pre-operation of Slave A and a post-operation of Slave C. Slave A is made optional by the &lt;code&gt;slaveOperation&lt;/code&gt; element, while Slave C will always be run (no &lt;code&gt;slaveOperation&lt;/code&gt; is given to run it seperately). Slave A further has an optional pre-operation (Slave B) that can be executed indepently of either Slave A or Master A.
--&gt;
&lt;!--
&lt;pre&gt;
&lt;extension
point=&quot;org.eclipse.wst.common.frameworks.ui.wtpuiAction&quot;&gt;
&lt;masterOperation
populatorClass=&quot;com.acme.ui.operation.AcmeOperationPopulator&quot;
name=&quot;%master_a_name&quot;
operationClass=&quot;com.acme.ui.operation.MasterOperationA&quot;
extendedGenericId=&quot;com.acme.ui.WTPOptionalOperationTest&quot;
description=&quot;%master_a_description&quot;&gt;
&lt;/masterOperation&gt;
&lt;slaveOperation
name=&quot;Slave A&quot;
operationClass=&quot;com.acme.ui.operation.SlaveOperationA&quot;&gt;
&lt;/slaveOperation&gt;
&lt;slaveOperation
name=&quot;Slave B&quot;
operationClass=&quot;com.acme.ui.operation.SlaveOperationB&quot;&gt;
&lt;/slaveOperation&gt;
&lt;masterOperation
populatorClass=&quot;com.acme.ui.operation.AcmeOperationPopulator&quot;
name=&quot;EAR Project Action&quot;
operationClass=&quot;com.acme.ui.operation.MasterOperationB&quot;
extendedGenericId=&quot;com.acme.ui.WTPOptionalOperationTest&quot;&gt;
&lt;selectionEnablement&gt;
&lt;objectState name=&quot;projectNature&quot; value=&quot;org.eclipse.jst.j2ee.EARNature&quot; /&gt;
&lt;/selectionEnablement&gt;
&lt;/masterOperation&gt;
&lt;/extension&gt;
&lt;/pre&gt;
--&gt;
&lt;!--
For each of the slaveOperations referenced above, you must have a corresponding WTP Operation Extension declared similar to the following:
--&gt;
&lt;!--
&lt;pre&gt;
&lt;extension
id=&quot;wtpuiAciton.Acme.Extensions&quot;
point=&quot;org.eclipse.wst.common.frameworks.ExtendableOperation&quot;&gt;
&lt;extendableOperation
class=&quot;com.acme.ui.operation.MasterOperationA&quot;
id=&quot;com.acme.ui.operation.MasterOperationA&quot;&gt;
&lt;/extendableOperation&gt;
&lt;extendableOperation
class=&quot;com.acme.ui.operation.SlaveOperationA&quot;
id=&quot;com.acme.ui.operation.SlaveOperationA&quot;&gt;
&lt;/extendableOperation&gt;
&lt;/extension&gt;
&lt;extension
point=&quot;org.eclipse.wst.common.frameworks.OperationExtension&quot;&gt;--&gt;
&lt;!-- Made optional by the above declaration --&gt;
&lt;!--&lt;operationExtension
preOperationClass=&quot;com.acme.ui.operation.SlaveOperationA&quot;
id=&quot;com.acme.ui.operation.MasterOperationA&quot;&gt;
&lt;/operationExtension&gt;--&gt;
&lt;!-- Made optional by the above declaration --&gt;
&lt;!--&lt;operationExtension
postOperationClass=&quot;com.acme.ui.operation.SlaveOperationB&quot;
id=&quot;com.acme.ui.operation.SlaveOperationA&quot;&gt;
&lt;/operationExtension&gt;--&gt;
&lt;!-- Non-optional operation, will always run --&gt;
&lt;!--&lt;operationExtension
postOperationClass=&quot;com.acme.ui.operation.SlaveOperationC&quot;
id=&quot;com.acme.ui.operation.MasterOperationA&quot;&gt;
&lt;/operationExtension&gt;
&lt;/extension&gt;
&lt;/pre&gt;
--&gt;
&lt;!--
In general, users extending existing actions only need to declare the following:
--&gt;
&lt;!--
&lt;pre&gt;
&lt;extension
point=&quot;org.eclipse.wst.common.frameworks.OperationExtension&quot;&gt;--&gt;
&lt;!-- The action referenced must be declared as extensible by the org.eclipse.wst.common.frameworks.ExtendableOperation extension point --&gt;
&lt;!--&lt;operationExtension
preOperationClass=&quot;...YOUR CLASS...&quot;
id=&quot;...ID OF EXISTING OPERATION...&quot;&gt;
&lt;/operationExtension&gt;
&lt;/extension&gt;
&lt;/pre&gt;
--&gt;
&lt;!--
And if your operation is optional declare the slaveOperation:
--&gt;
&lt;!--
&lt;pre&gt;
&lt;extension
point=&quot;org.eclipse.wst.common.frameworks.ui.wtpuiAction&quot;&gt;
&lt;slaveOperation
name=&quot;..NAME OF YOUR OPERATION...&quot;
description=&quot;...DESCRIPTION OF YOUR ACTION...&quot;
operationClass=&quot;...YOUR CLASS...&quot;&gt;
&lt;/slaveOperation&gt;
&lt;/extension&gt;
&lt;/pre&gt;
--&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 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>