<?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="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 will be 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.mxsd"/>

   <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>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="decorator">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="label"/>
         </appInfo>
      </annotation>
      <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>
            </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 true.
               </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>
            </annotation>
         </attribute>
         <attribute name="adaptable" type="boolean">
            <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>
         <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="quadrant">
            <annotation>
               <documentation>
                  if the decorator is &lt;b&gt;&lt;i&gt;lightweight&lt;/b&gt;&lt;/i&gt; this is the quadrant to apply the decorator to. Defaults to BOTTOM_RIGHT. Replaced by location for M4.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="TOP_LEFT">
                  </enumeration>
                  <enumeration value="TOP_RIGHT">
                  </enumeration>
                  <enumeration value="BOTTOM_RIGHT">
                  </enumeration>
                  <enumeration value="BOTTOM_LEFT">
                  </enumeration>
               </restriction>
            </simpleType>
         </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.
               </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>
               </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, 2003 IBM Corporation and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials are made 
available under the terms of the Common Public License v1.0 which accompanies 
this distribution, and is available at 
&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
