<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.gmf.runtime.common.ui.services.action">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.gmf.runtime.common.ui.services.action" id="globalActionHandlerProviders" name="Global Action Handler Providers Extension Point"/>
      </appInfo>
      <documentation>
         &lt;P&gt;
This extension point is used to configure providers for the global action handler service (&lt;TT&gt;org.eclipse.gmf.runtime.common.ui.services.action.global.GlobalActionHandlerService&lt;/TT&gt;).
&lt;/P&gt;
&lt;P&gt;
This service provides an extensible way to handle commonly used (global) actions in different views and editors. These global actions may appear in a view part context menu or may be predefined retargetable actions.  The service
allows different handlers to be used depending on the nature of the element(s) selected in the workbench part.  Each global action handler provider registers itself for actions against a specific element type within a view part.
&lt;/P&gt;
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence minOccurs="1" maxOccurs="unbounded">
            <element ref="GlobalActionHandlerProvider"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point, in this case, &lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders&lt;/tt&gt;.
               </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 human readable name of the extension instance
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="GlobalActionHandlerProvider">
      <annotation>
         <documentation>
            This element is used to describe a global action handler provider that will contribute handlers to a given view or views for one or more retargetable actions.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="Priority"/>
            <element ref="Policy" minOccurs="0" maxOccurs="1"/>
            <element ref="ViewId" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier used to reference this provider
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the name of a fully qualified class that implements the &lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.action.global.IGlobalActionHandlerProvider&lt;/tt&gt; and &lt;tt&gt;org.eclipse.gmf.runtime.common.core.service.IProvider&lt;/tt&gt; interfaces.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.gmf.runtime.common.ui.services.action.global.IGlobalActionHandlerProvider"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="Priority">
      <annotation>
         <documentation>
            This element is used to specify the priority that this provider has relative to other global action handler providers that are registered to handle the same global action for the kind of element in the same view. When such a conflict occurs, the provider with the highest priority will be selected to provide the global action handler.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="name" use="required">
            <annotation>
               <documentation>
                  the name of the provider priority, one of &lt;tt&gt;Lowest&lt;/tt&gt;, &lt;tt&gt;Low&lt;/tt&gt;, &lt;tt&gt;Medium&lt;/tt&gt;, &lt;tt&gt;High&lt;/tt&gt;, or &lt;tt&gt;Highest&lt;/tt&gt;
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="Lowest">
                  </enumeration>
                  <enumeration value="Low">
                  </enumeration>
                  <enumeration value="Medium">
                  </enumeration>
                  <enumeration value="High">
                  </enumeration>
                  <enumeration value="Highest">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
      </complexType>
   </element>

   <element name="ViewId">
      <annotation>
         <documentation>
            This element is used to specify a group of global actions that this provider handles for the specified view and element types.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="ElementType" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier of a registered view
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="ElementType">
      <annotation>
         <documentation>
            This element is used to define the set of global actions that are handled by this provider when objects of the specified type are selected.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="GlobalActionId" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  a fully qualified name of the class or interface that at least one object in the selection must subclass or implement in order for this provider to be asked to handle the action(s)
               </documentation>
               <appInfo>
                  <meta.attribute kind="java"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="GlobalActionId">
      <annotation>
         <documentation>
            This element is used to describe a global action that will be handled by this provider.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="actionId" type="string" use="required">
            <annotation>
               <documentation>
                  the name of a global action handled by this provider. Global action names are specified in org.eclipse.gmf.runtime.common.ui.action.global.GlobalActionId.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="Policy">
      <annotation>
         <documentation>
            This element is used to optionally specify a policy to use to further determine if this provider should be considered to provide a handler for a global action, given that the view, element type and action ID all match the specified criteria.
   To delay plugin loading, the recommended strategy for policies is to define them in a separate package and add the package to the Eclipse-LazyStart in the Manifest.MF so that loading the policy class does not load the plug-in.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the fully qualified name of the class that implements &lt;TT&gt;org.eclipse.gmf.runtime.common.core.service.IProviderPolicy&lt;/TT&gt;
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.gmf.runtime.common.core.service.IProviderPolicy"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of the global action handler provider extension:

&lt;PRE&gt;
   &lt;extension
         id=&quot;globalActionHandlerProviders&quot;
         name=&quot;%ext.globalActionHandlerProviders&quot;
         point=&quot;org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders&quot;&gt;
      &lt;GlobalActionHandlerProvider
            class=&quot;org.eclipse.test.common.ui.views.internal.providers.GlobalActionHandlerProvider&quot;
            id=&quot;ContainerResourceGlobalActionHandlerProvider&quot;&gt;
         &lt;Priority
               name=&quot;Lowest&quot;&gt;
         &lt;/Priority&gt;
         &lt;ViewId
               id=&quot;org.eclipse.test.common.ui.views.DiagramNavigator&quot;&gt;
            &lt;ElementType
                  class=&quot;org.eclipse.test.common.ui.views.internal.providers.ContainerViewerElement&quot;&gt;
               &lt;GlobalActionId
                     actionId=&quot;open&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;openProject&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;rename&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;delete&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;move&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;closeProject&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;copy&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;paste&quot;&gt;
               &lt;/GlobalActionId&gt;
               &lt;GlobalActionId
                     actionId=&quot;properties&quot;&gt;
               &lt;/GlobalActionId&gt;
            &lt;/ElementType&gt;
         &lt;/ViewId&gt;
      &lt;/GlobalActionHandlerProvider&gt;
   &lt;/extension&gt;
&lt;/PRE&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The value of the global action handler provider &lt;tt&gt;class&lt;/tt&gt; attribute must be a fully qualified name of a Java class that implements both the &lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.action.global.IGlobalActionHandlerProvider&lt;/tt&gt; and &lt;tt&gt;org.eclipse.gmf.runtime.common.core.service.IProvider&lt;/tt&gt; interfaces. For convenience, this can be a subclass of &lt;tt&gt;org.eclipse.gmf.runtime.common.ui.services.action.global.AbstractGlobalActionHandlerProvider&lt;/tt&gt;.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2003, 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>
