<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.linuxtools.tmf.ui" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="org.eclipse.linuxtools.tmf.ui" id="tracetypeui" name="TMF Trace Type UI Elements"/>
      </appinfo>
      <documentation>
         This extension point is used to assign UI elements to a trace type defined by org.eclipse.linuxtools.tmf.core.tracetype.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appinfo>
            <meta.element />
         </appinfo>
      </annotation>
      <complexType>
         <choice minOccurs="0" maxOccurs="unbounded">
            <element ref="type"/>
            <element ref="experiment"/>
         </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="type">
      <annotation>
         <appinfo>
            <meta.element labelAttribute="tracetype"/>
         </appinfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="eventsTableType" minOccurs="0" maxOccurs="1"/>
            <element ref="defaultEditor" minOccurs="0" maxOccurs="1"/>
            <element ref="perspective" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="tracetype" type="string" use="required">
            <annotation>
               <documentation>
                  The unique ID that identifies this trace type.
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.linuxtools.tmf.core.tracetype/type/@id"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  The icon associated to the trace type.
               </documentation>
               <appinfo>
                  <meta.attribute kind="resource"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="experiment">
      <annotation>
         <appinfo>
            <meta.element labelAttribute="tracetype"/>
         </appinfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="eventsTableType" minOccurs="0" maxOccurs="1"/>
            <element ref="defaultEditor" minOccurs="0" maxOccurs="1"/>
            <element ref="perspective" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="tracetype" type="string" use="required">
            <annotation>
               <documentation>
                  The unique ID that identifies this experiment type.
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.linuxtools.tmf.core.tracetype/experiment/@id"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  The icon associated to the experiment type.
               </documentation>
               <appinfo>
                  <meta.attribute kind="resource"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="eventsTableType">
      <annotation>
         <documentation>
            The events table to use for this trace type.
If omitted, the default events table will be used.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="default" value="org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable">
            <annotation>
               <documentation>
                  The fully qualified name of a class that extends &lt;samp&gt;TmfEventsTable&lt;/samp&gt; .
If empty, the default events table will be used.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.tracecompass.tmf.ui.viewers.events.TmfEventsTable:"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="useTraceAspects" type="boolean">
            <annotation>
               <documentation>
                  Set this flag to true, if the aspects for the table columns are provided by the &lt;samp&gt;ITmfTrace&lt;/samp&gt;. If the aspects is supplied by the events table extension, set this flag to false. Default value is false.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="defaultEditor">
      <annotation>
         <documentation>
            The default editor to use for this trace type.
If omitted, the default events editor will be used.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="default" value="org.eclipse.linuxtools.tmf.ui.editors.events">
            <annotation>
               <documentation>
                  The id of the editor to use for this trace type.
If empty, the default events editor will be used.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="perspective">
      <annotation>
         <documentation>
            The associated perspective to use for this trace type.
If omitted, the current perspective will be used.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="default" value="org.eclipse.linuxtools.tmf.ui.perspective">
            <annotation>
               <documentation>
                  The associated perspective to use for this trace type.
If empty, the current perspective will be used.
               </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>
         &lt;p&gt;
Example use of the extension point: the GDB trace type, which specifies a custom icon and a custom editor, also the generic experiment, which specifies a custom icon. The &apos;type/tracetype&apos; element has to point to an existing tmf.core.tracetype extension!
&lt;/p&gt;
&lt;pre&gt;
&lt;extension
      point=&quot;org.eclipse.linuxtools.tmf.ui.tracetypeui&quot;&gt;
   &lt;type
         icon=&quot;icons/obj16/gdb_icon16.png&quot;
         tracetype=&quot;org.eclipse.linuxtools.gdbtrace.core.type.gdb&quot;&gt;
      &lt;eventsTableType
            class=&quot;org.eclipse.linuxtools.internal.gdbtrace.ui.views.events.GdbEventsTable&quot;&gt;
      &lt;/eventsTableType&gt;
   &lt;/type&gt;
   &lt;experiment_type
         tracetype=&quot;org.eclipse.linuxtools.tmf.core.experiment.generic&quot;
         icon=&quot;icons/elcl16/experiment.gif&quot;&gt;
   &lt;/experiment_type&gt;
&lt;/extension&gt;

public class GdbEventsTable extends TmfEventsTable {
    /**
     * Constructor
     *
     * @param parent
     *            the parent
     * @param cacheSize
     *            the cache size
     */
    public GdbEventsTable(Composite parent, int cacheSize) {
        super(parent, cacheSize, GdbEventAspects.getAspects());
    }
}
&lt;/pre&gt;

      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="apiinfo"/>
      </appinfo>
      <documentation>
         &lt;p&gt;
The &apos;eventsTableType/class&apos; element has to extend TmfEventsTable. It is optional however ; if it is not specified, the default TmfEventsTable will be used.
&lt;/p&gt;
&lt;p&gt;
When providing the &apos;eventsTableType/class&apos; and the flag &apos;useTraceAspects&apos; is set to true, the following constructor has to be implemented:
&lt;/p&gt;
&lt;pre&gt;
    public MyTraceEventsTable(Composite parent, int cacheSize, Iterable&lt;ITmfEventAspect&lt;?&gt;&gt; aspects) {
          super(parent, cacheSize, aspects);
    }
&lt;/pre&gt;
&lt;p&gt;
If the flag &apos;useTraceAspects&apos; is set to false, the following constructor has to be implemented and the aspects have to provided in the constructor:
&lt;/p&gt;
&lt;pre&gt;
    public MyTraceEventsTable(Composite parent, int cacheSize) {
          super(parent, cacheSize, myAspects);
    }
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="implementation"/>
      </appinfo>
      <documentation>
         [Enter information about supplied implementation of this extension point.]
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="copyright"/>
      </appinfo>
      <documentation>
         Copyright (c) 2014, 2017 Ericsson

All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at &amp;lt;a href=&amp;quot;https://www.eclipse.org/legal/epl-2.0/&amp;quot;&amp;gt;https://www.eclipse.org/legal/epl-2.0/&amp;lt;/a&amp;gt;

SPDX-License-Identifier: EPL-2.0
      </documentation>
   </annotation>

</schema>
