<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.scout.sdk.ui" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="org.eclipse.scout.sdk.ui" id="scoutBundle" name="Scout Bundle"/>
      </appinfo>
      <documentation>
         Extension Point to define the display and behavior of Scout bundles in the UI.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appinfo>
            <meta.element />
         </appinfo>
      </annotation>
      <complexType>
         <sequence minOccurs="1" maxOccurs="unbounded">
            <element ref="bundleNode"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appinfo>
                  <meta.attribute translatable="true"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="bundleNode">
      <annotation>
         <documentation>
            Defines a scout bundle node in the UI.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique id of the bundle node.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="bundleName" type="string" use="required">
            <annotation>
               <documentation>
                  The bundle name will be extended by [projectName][bundleName][posfix] when creating new bundles of this type.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="bundleType" type="string" use="required">
            <annotation>
               <documentation>
                  To which bundle type does this UI definition belong.
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.scout.sdk.runtimeBundles/bundle/@type"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="orderNumber" type="string">
            <annotation>
               <documentation>
                  An integer to define the order of the node when displaying scout bundles in a tree or list.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="bundlePage" type="string">
            <annotation>
               <documentation>
                  The page that should be shown in the scout explorer for bundles of this type.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.scout.sdk.ui.view.outline.pages.IPage"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="bundleNewHandler" type="string" use="required">
            <annotation>
               <documentation>
                  The handler that cares about creation of new bundles of this type.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.scout.sdk.ui.extensions.bundle.INewScoutBundleHandler"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="productLauncherContributor" type="string">
            <annotation>
               <documentation>
                  Optional contributor to enhance the product launch presenter with custom links.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.scout.sdk.ui.extensions.bundle.IProductLauncherContributor"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  The icon to use for this bundle when displaying it as node in a list or tree.
               </documentation>
               <appinfo>
                  <meta.attribute kind="resource"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="launcherIcon" type="string">
            <annotation>
               <documentation>
                  The icon to show when a product launcher for the bundle is created.
               </documentation>
               <appinfo>
                  <meta.attribute kind="resource"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appinfo>
         <meta.section type="examples"/>
      </appinfo>
      <documentation>
         &lt;extension
         point=&quot;org.eclipse.scout.sdk.ui.scoutBundle&quot;&gt;
      &lt;bundleNode
            bundleName=&quot;ui.swing&quot;
            bundleNewHandler=&quot;org.eclipse.scout.sdk.ui.internal.extensions.bundle.SwingScoutBundleExtension&quot;
            bundlePage=&quot;org.eclipse.scout.sdk.ui.internal.view.outline.pages.project.client.UiSwingNodePage&quot;
            bundleType=&quot;UI_SWING&quot;
            icon=&quot;resources/icons/uiBundle.png&quot;
            id=&quot;org.eclipse.scout.sdk.ui.UiSwingBundle&quot;
            launcherIcon=&quot;resources/icons/swingLauncher.gif&quot;
            orderNumber=&quot;-510&quot;&gt;
      &lt;/bundleNode&gt;
      &lt;bundleNode
            bundleName=&quot;ui.swt&quot;
            bundleNewHandler=&quot;org.eclipse.scout.sdk.ui.internal.extensions.bundle.SwtScoutBundleExtension&quot;
            bundlePage=&quot;org.eclipse.scout.sdk.ui.internal.view.outline.pages.project.client.UiSwtNodePage&quot;
            bundleType=&quot;UI_SWT&quot;
            icon=&quot;resources/icons/uiBundle.png&quot;
            id=&quot;org.eclipse.scout.sdk.ui.UiSwtBundle&quot;
            launcherIcon=&quot;resources/icons/swtLauncher.gif&quot;
            orderNumber=&quot;-500&quot;&gt;
      &lt;/bundleNode&gt;
&lt;/extension&gt;
      </documentation>
   </annotation>




</schema>
