<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.hyades.test.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.hyades.test.ui" id="testNavigatorFile" name="testNavigatorFile"/>
      </appInfo>
      <documentation>
         The goal of this extension point is to allow the Hyades Test Navigator to manage new file types through their file extension. This is the file system level of the extensibility (which is the root level since the core of navigator only knows projects, folders and some predefined elements – presented further).&lt;br&gt;
This extension point basically associates a file extension (e.g. &lt;code&gt;.ctTestSuite&lt;/code&gt;) to an &lt;samp&gt;IHyadesTestNavigatorProvider&lt;/samp&gt; class implementation.&lt;br&gt; 
Tool vendor plug-ins should implement this interface and provide all its delegated methods according to the file itself. For example, a tool vendor can provide a new test element as a file and provide its &lt;samp&gt;IHyadesTestNavigatorProvider&lt;/samp&gt; implementation to display this file as a node in the Hyades Test Navigator (control of the icon and the text of the node is provided by the &lt;samp&gt;ILabelProvider&lt;/samp&gt; part methods). That way he can also provide a sub tree beneath this node using &lt;code&gt;ITreeContentProvider&lt;/code&gt; part methods. Nevertheless, new nodes added using a specific content provider should be known by a label provider in order to be displayed (this label is provided by the next extension point).
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="fileExtension" 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>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="fileExtension">
      <complexType>
         <choice>
            <element ref="provider"/>
            <element ref="converter"/>
         </choice>
         <attribute name="targetExtension" type="string" use="required">
            <annotation>
               <documentation>
                  file extension name of resource added to the Test navigator
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="provider">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  an implementation of &lt;code&gt;org.eclispe.hyades.test.ui.IHyadesTestNavigatorProvider&lt;/code&gt; associated to extension files (given by attribute &lt;code&gt;targetExtesnion&lt;/code&gt;). This attribute is exclusive with &lt;code&gt;converter&lt;/code&gt;. If user uses this attribute the file (&lt;code&gt;IFile&lt;/code&gt;) will be part of the tree navigator.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclispe.hyades.test.ui.IHyadesTestNavigatorProvider"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="converter">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  an implementation of &lt;code&gt;org.eclispe.hyades.test.ui.IHyadesTestNavigatorConverter&lt;/code&gt; which allows conversion of the resource file targeted by extensions and a memory object which will be part of the test navigator as one of its tree nodes. This attribute is exclusive with &lt;code&gt;provider&lt;/code&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclispe.hyades.test.ui.IHyadesTestNavigatorConverter"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;p&gt;The following example comes from the Hyades test.ui plugin. Those two extensions allow the test navigator to display files with extension &lt;amp&gt;*.testsuite&lt;/amp&gt; and &lt;amp&gt;*.deploy&lt;/amp&gt;.
&lt;p&gt;As far as test suite is concerning, we provide a converter to use a EMF object (&lt;code&gt;TPFTestSuite&lt;/code&gt;) instead of the file itself. That way, the related provider for this object is given by the use of another extension of &lt;code&gt;org.eclipse.hyades.test.ui.testNavigatorObject&lt;/code&gt; using the actual object type.
&lt;p&gt;The second example use directly a provider which is given through the provider attribute of extensions.

&lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.hyades.test.ui.testNavigatorFile&quot;&gt;
      &lt;fileExtension&gt;
            targetExtension=&quot;testsuite&quot;
            &lt;converter 
            	class=&quot;org.eclipse.hyades.test.ui.internal.navigator.TestSuiteHTNConverter&quot;&gt;
            &lt;/converter&gt;
      &lt;/fileExtension&gt;
      &lt;fileExtension&gt;
            targetExtension=&quot;deploy&quot;
            &lt;provider 
            	class=&quot;org.eclipse.hyades.test.ui.internal.navigator.DeploymentHTNProvider&quot;&gt;
            &lt;/provider&gt;
      &lt;/fileExtension&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         All new files handle by the Hyades Test Navigator are instances of &lt;code&gt;org.eclipse.test.ui.IHyadesTestNavigatorProvider&lt;/code&gt;
      </documentation>
   </annotation>

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

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