<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>

   <!-- 
      Cheat sheet test content
   -->
   <extension
         point="org.eclipse.ui.cheatsheets.cheatSheetContent">
      <category
            name="Cheat sheet examples - part 1"
            id="org.eclipse.ua.tests.cheatsheet.cheatSheetsCat">
      </category>
      <category
            name="Cheat sheet examples - part 2"
            id="org.eclipse.ua.tests.cheatsheet.cheatSheetsCat2">
      </category>
      <category
            name="Tests"
            id="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat">
      </category>
      <cheatsheet
            name="Hello World"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsCat"
            contentFile="data/cheatsheet/valid/HelloWorld.xml"
            id="org.eclipse.ua.tests.cheatsheet.HelloWorld">
         <description>
            This cheat sheet will guide you through building a hello world Java application and testing it.
            Uses only the basic cheat sheet features.
         </description>
      </cheatsheet>
      <cheatsheet
            name="Hello World With Extensions Icons"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsCat"
            contentFile="data/cheatsheet/valid/HelloWorldWithExtensions.xml"
            id="org.eclipse.ua.tests.cheatsheet.HelloWorldWithExtensions">
         <description>
            This cheat sheet has extra icons next to the help icon using the cheatSheetItemExtension extension point.
         </description>
      </cheatsheet>
      <cheatsheet
            name="Hello World With Subitems"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsCat"
            contentFile="data/cheatsheet/valid/HelloWorldWithSubitems.xml"
            id="org.eclipse.ua.tests.cheatsheet.HelloWorldWithSubitem">
         <description>
            This cheat sheet uses subitems.
         </description>
      </cheatsheet>
      <cheatsheet
            name="Testing Cheat Sheets actions"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat"
            contentFile="data/cheatsheet/valid/TestCSActions.xml"
            id="org.eclipse.ua.tests.cheatsheet.cheatsheetsActions">
         <description>
            This cheat sheet has items to test the framework
         </description>
      </cheatsheet>
      <cheatsheet
            name="Testing Parameters"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat"
            contentFile="data/cheatsheet/valid/TestParameters.xml"
            id="org.eclipse.ua.tests.cheatsheet.parameters">
         <description>
            This cheat sheet has items to test the framework
         </description>
      </cheatsheet>
      <cheatsheet
            name="Testing Context Help and Help Links"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat"
            contentFile="data/cheatsheet/valid/TestContext_Help.xml"
            id="org.eclipse.ua.tests.cheatsheet.infopop.help">
         <description>
            This cheat sheet has items to test the framework
         </description>
      </cheatsheet>
      <cheatsheet
            name="Testing SubItems"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat"
            contentFile="data/cheatsheet/valid/TestSubItems.xml"
            id="org.eclipse.ua.tests.cheatsheet.subitems">
         <description>
            This cheat sheet has items to test the framework
         </description>
      </cheatsheet>
      <cheatsheet
            name="Testing Dynamic SubItems"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat"
            contentFile="data/cheatsheet/valid/TestDynamicSubItems.xml"
            id="org.eclipse.ua.tests.cheatsheet.dynamic.subitems">
         <description>
            This cheat sheet has items to test the framework
         </description>
      </cheatsheet>
      <cheatsheet
            name="Testing Item Description Formatting"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat"
            contentFile="data/cheatsheet/valid/TestDescriptionFormatting.xml"
            id="org.eclipse.ua.tests.cheatsheet.description">
         <description>
            This cheat sheet has items to test the framework
         </description>
      </cheatsheet>
      <cheatsheet
            name="Testing Actions"
            category="org.eclipse.ua.tests.cheatsheet.cheatSheetsTestCat"
            contentFile="data/cheatsheet/valid/TestActions.xml"
            id="org.eclipse.ua.tests.cheatsheet.actions">
         <description>
            This cheat sheet has items to test the framework
         </description>
      </cheatsheet>
      <taskEditor
            class="org.eclipse.ua.tests.cheatsheet.util.TestTaskEditor"
            icon="$nl$/icons/sample.gif"
            id="ua.junit"/>
      <cheatsheet
            composite="false"
            contentFile="data/cheatsheet/search/CSSearchTest.xml"
            id="org.eclipse.ua.tests.cheatsheet.searchTest"
            name="Test cheat sheet search"/>
      <cheatsheet
            composite="true"
            contentFile="data/cheatsheet/search/CompositeSearchTest.xml"
            id="org.eclipse.ua.tests.composite.searchTest"
            name="Composite cheat sheet search test"/>
   </extension>

   <!-- 
      Cheat sheet context help test
   -->
   <extension point="org.eclipse.help.contexts"> 
       <contexts file="data/cheatsheet/contexts.xml"/>
   </extension>

   <!-- 
      Command used in tests
   -->
   <extension
         point="org.eclipse.ui.commands">
      <category
            id="org.eclipse.ui.cheatsheets.tests.category1"
            name="org.eclipse.ui.cheatsheets.tests.category1"/>
      <command
            categoryId="org.eclipse.ui.category.file"
            defaultHandler="org.eclipse.ua.tests.cheatsheet.execution.CommandHandler"
            id="org.eclipse.ui.cheatsheets.tests.command1"
            name="Cheatsheet test command">
         <commandParameter
               id="param1_id"
               name="Parameter1"
               optional="true"
               />
         <commandParameter
               id="param2_id"
               name="Parameter2"
               optional="true"
               />
      </command>
      <command
            defaultHandler="org.eclipse.ua.tests.cheatsheet.execution.NegateIntegerHandler"
            id="org.eclipse.ui.cheatsheets.tests.NegateIntegerCommand"
            name="Test Command with Integer Values"
            returnTypeId="org.eclipse.ui.dialogs.Integer">
         <commandParameter
               id="number"
               name="Number"
               optional="false"
               typeId="org.eclipse.ui.dialogs.Integer"/>
      </command>
   </extension>

   <!--
      Intro test content
   -->
   <extension
         point="org.eclipse.ui.intro">
      <intro
            class="org.eclipse.ui.intro.config.CustomizableIntroPart"
            id="org.eclipse.ua.tests.intro.dynamicXHTML">
      </intro>
      <intro
            class="org.eclipse.ui.intro.config.CustomizableIntroPart"
            id="org.eclipse.ua.tests.intro.dynamicXML">
      </intro>
   </extension>   
   <extension
         point="org.eclipse.ui.intro.config">
      <config
            introId="org.eclipse.ua.tests.intro.dynamicXHTML"
            content="data/intro/dynamicXHTML/introContent.xml"
            id="org.eclipse.ua.tests.intro.config.dynamicXHTML">
         <presentation
               home-page-id="root">
            <implementation
                  kind="html"
                  os="win32,linux,macosx">
            </implementation>
         </presentation>
      </config>
      <config
            introId="org.eclipse.ua.tests.intro.dynamicXML"
            id="org.eclipse.ua.tests.intro.config.dynamicXML"
            content="data/intro/dynamicXML/introContent.xml">
         <presentation
               home-page-id="root" standby-page-id="standby">
            <implementation
                  style="data/intro/dynamicXML/css/shared.css"
                  kind="html"
                  os="win32,linux,macosx">
            </implementation>
            <implementation
                  kind="swt">
            </implementation>
         </presentation>
      </config>
   </extension>
   <extension
         point="org.eclipse.ui.intro.configExtension">
      <configExtension
            content="data/intro/dynamicXHTML/ext.xml"
            configId="org.eclipse.ua.tests.intro.config.dynamicXHTML">
      </configExtension>
      <configExtension
            content="data/intro/dynamicXHTML/ext2.xml"
            configId="org.eclipse.ua.tests.intro.config.dynamicXHTML">
      </configExtension>
      <configExtension
            content="data/intro/dynamicXML/ext.xml"
            configId="org.eclipse.ua.tests.intro.config.dynamicXML">
      </configExtension>
   </extension>

   <!--
      Context help test content
   -->
   <extension
         point="org.eclipse.help.contexts"
         id="contextTest">
      <contexts
            file="data/help/context/contexts.xml">
      </contexts>
   </extension>
   
   <!--
      TOC test content
   -->
   <extension point="org.eclipse.help.toc">
       <toc file="data/help/toc/filteredToc/toc.xml" primary="true" />
       <toc file="data/help/toc/filteredToc/filter.xml" />
       <toc file="data/help/toc/filteredToc/simple_toc.xml" />
       <toc file="data/help/toc/extraContent/toc.xml" primary="true"/>
       <toc file="data/help/toc/extraContent/toc2.xml" primary="true"/>
       <toc file="data/help/toc/extraContent/simple_toc.xml" />
       <toc file="data/help/search/toc.xml" primary="true"/>
       <toc file="data/help/producer/toc.xml" primary="true"/>
   </extension>

   <!--
      For testing dynamic content
   -->
   <extension
         point="org.eclipse.help.contentProducer">
      <binding producerId="org.eclipse.help.dynamic"/>
   </extension>

   <!--
      For testing XHTML content
   -->
   <extension
         point="org.eclipse.help.base.luceneSearchParticipants">
      <binding participantId="org.eclipse.help.base.xhtml"/>
   </extension>

   <!--
      An activity used to test searching (see
      XHTMLTest#testXHTMLActivityFilteringSearch())
   -->
   <extension
         point="org.eclipse.ui.activities">
      <category
            name="testCategory"
            description="testCategoryDescription"
            id="org.eclipse.ua.tests.activity.category">
      </category>
      <activity
            name="testActivity"
            description="testActivityDescription"
            id="org.eclipse.ua.tests.activity">
      </activity>
      <categoryActivityBinding
	        activityId="org.eclipse.ua.tests.activity"
	        categoryId="org.eclipse.ua.tests.activity.category">
      </categoryActivityBinding>
   </extension>

   <extension point= "org.eclipse.help.contentExtension"> 
      <contentExtension file="data/help/search/extension.xml"/>
      <contentExtension file="data/help/search/extension2.xml"/>
   </extension>

</plugin>
