<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.views">
      <view
            category="org.fusesource.ide"
            class="org.fusesource.ide.fabric.navigator.FabricNavigator"
            icon="icons/fabric_explorer.png"
            id="org.fusesource.ide.fabric.navigator"
            name="Fabric Explorer"
            restorable="true">
         <description>
            Displays the Fuse Fabric outline view showing containers and their features and properties
         </description>
      </view>
      <category
            id="org.fusesource.ide"
            name="Fuse">
      </category>
      <view
            category="org.fusesource.ide"
            class="org.fusesource.ide.fabric.views.MessagesView"
            icon="icons/messages_view.png"
            id="org.fusesource.ide.fabric.views.MessageView"
            name="Messages View">
         <description>
            Displays a table of messages from an endpoint, a traced Camel route or an XML file
         </description>
      </view>
      <view
            category="org.fusesource.ide"
            class="org.fusesource.ide.fabric.views.logs.LogsView"
            icon="icons/log_view.png"
            id="org.fusesource.ide.fabric.views.logs.LogsView"
            name="Log View">
         <description>
            Displays a table of log events from a Fabric
         </description>
      </view>
   </extension>
   <extension
         point="org.eclipse.ui.navigator.viewer">
      <viewer
            viewerId="org.fusesource.ide.fabric.navigator">
      </viewer>
      <viewerContentBinding
            viewerId="org.fusesource.ide.fabric.navigator">
         <includes>
            <contentExtension
                  isRoot="true"
                  pattern="org.fusesource.ide.fabric.navigator.root">
            </contentExtension>
            <contentExtension
                  pattern="org.fusesource.ide.jmx.ui.internal.views.navigator.root">
            </contentExtension>
            <contentExtension
                  pattern="org.fusesource.ide.jmx.ui.internal.views.navigator.queryFilter">
            </contentExtension>
            <contentExtension
                  pattern="org.fusesource.ide.jmx.ui.internal.views.navigator.JMXLinkHelper">
            </contentExtension>
         </includes>
      </viewerContentBinding>
      <viewerActionBinding
            viewerId="org.fusesource.ide.fabric.navigator">
         <includes>
            <actionExtension
                  pattern="org.fusesource.ide.fabric.navigator.actionProvider">
            </actionExtension>
            <actionExtension
                  pattern="org.fusesource.ide.jmx.ui.internal.views.navigator.actionProvider">
            </actionExtension>
         </includes>
      </viewerActionBinding>
      
   </extension>
   <extension
         id="org.fusesource.ide.fabric.navigatorContent"
         point="org.eclipse.ui.navigator.navigatorContent">
      <navigatorContent
            activeByDefault="true"
            contentProvider="org.fusesource.ide.fabric.navigator.FabricsContentProvider"
            icon="icons/fabric_folder.png"
            id="org.fusesource.ide.fabric.navigator.root"
            labelProvider="org.fusesource.ide.fabric.navigator.FabricsContentProvider"
            name="Fabrics"
            priority="normal">
         <triggerPoints>
            <instanceof
                  value="org.eclipse.ui.IViewPart">
            </instanceof>
         </triggerPoints>
         <possibleChildren>
            <or>
               <instanceof
                     value="org.fusesource.ide.fabric.navigator.Fabric">
               </instanceof>
               <instanceof
                     value="org.fusesource.ide.fabric.navigator.FabricsContentProvider">
               </instanceof>
               <instanceof
                     value="org.fusesource.ide.fabric.navigator.FabricNavigator">
               </instanceof>
               
               <!-- JMX -->
               <instanceof
                     value="org.fusesource.ide.jmx.core.tree.Node">
               </instanceof>
               <instanceof
                     value="org.fusesource.ide.jmx.core.IConnectionProvider">
               </instanceof>
               <instanceof
                     value="org.fusesource.ide.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider$DelayProxy">
               </instanceof>
            </or>
         </possibleChildren>
      </navigatorContent>
   </extension>
   <extension
         point="org.eclipse.help.contexts">
      <contexts
            file="contexts.xml">
      </contexts>
   </extension>

     <extension
         point="org.eclipse.ui.startup">
      <startup
            class="org.fusesource.ide.fabric.Startup">
      </startup>
   </extension>
     <extension
           point="org.eclipse.ui.perspectives">
        <perspective
              class="org.fusesource.ide.fabric.perspective.FabricPerspective"
              icon="icons/fabric_perspective.png"
              id="org.fusesource.ide.fabric.perspective"
              name="Fuse Fabric">
        </perspective>
     </extension>
     
     
   <!-- launch configs so we can kick off a build -->
   <extension
         point="org.eclipse.debug.core.launchConfigurationTypes">
      <launchConfigurationType
            delegate="org.fusesource.ide.fabric.navigator.maven.ProvisionMavenLaunchDelegate"
            id="org.fusesource.fabric.build"
            modes="run"
            name="%build.name"
            public="true"
            sourceLocatorId="org.eclipse.m2e.launching.MavenSourceLocator"
            sourcePathComputerId="org.eclipse.m2e.launching.MavenSourceComputer">
      </launchConfigurationType>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
      <launchConfigurationTypeImage
            configTypeID="org.fusesource.fabric.build"
            icon="icons/m2.gif"
            id="org.fusesource.fabric.build.launchConfigurationTypeImage">
      </launchConfigurationTypeImage>
   </extension>

   <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            class="org.fusesource.ide.fabric.navigator.maven.BuildLaunchConfigurationTabGroup"
            description="%tabgroup.build.description"
            id="org.fusesource.fabric.build.tabGroup"
            type="org.fusesource.fabric.build">
      </launchConfigurationTabGroup>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            allPopups="false"
            locationURI="toolbar:org.eclipse.ui.views.PropertySheet">
         <command
               commandId="org.fusesource.ide.ide.fabric.deleterequirement"
               icon="icons/delete.gif"
               id="fabric.delete.requirement"
               label="%profile.deleteRequirementsTitle"
               style="push"
               tooltip="%profile.deleteRequirementsText">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="selection">
                  <iterate
                        operator="or">
                     <instanceof
                           value="org.fusesource.fabric.api.ProfileStatus">
                     </instanceof>
                  </iterate>
               </with>
            </visibleWhen>
         </command>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            description="%profile.deleteRequirementsText"
            id="org.fusesource.ide.ide.fabric.deleterequirement"
            name="%profile.deleteRequirementsTitle">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="org.fusesource.ide.fabric.actions.DeleteProfileRequirementAction"
            commandId="org.fusesource.ide.ide.fabric.deleterequirement">
         <activeWhen>
            <with
                  variable="selection">
                  <test
                        forcePluginActivation="true"
                        property="org.fusesource.ide.fabric.testers.requirementsNotEmpty">
                  </test>
            </with>
         </activeWhen>
         <enabledWhen>
            <with
                  variable="selection">
               <iterate
                     operator="or">
                  <instanceof
                        value="org.fusesource.fabric.api.ProfileStatus">
                  </instanceof>
               </iterate>
            </with>
         </enabledWhen>
      </handler>
   </extension>
   <extension
         point="org.eclipse.ui.commandImages">
      <image
            commandId="org.fusesource.ide.ide.fabric.deleterequirement"
            icon="icons/delete.gif">
      </image>
   </extension>
   <extension
         point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            class="org.fusesource.ide.fabric.RequirementsPropertyTester"
            id="org.fusesource.ide.fabric.requirementsPropertyTester"
            namespace="org.fusesource.ide.fabric.testers"
            properties="requirementsNotEmpty"
            type="org.eclipse.jface.viewers.ISelection">
      </propertyTester>
   </extension>
     
   <extension
         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
      <propertyTabs contributorId="org.fusesource.ide.jmx.ui.internal.views.navigator.MBeanExplorer">
         <propertyTab
               category="org.fusesource.ide.jmx.ui.views"
               id="org.fusesource.ide.jmx.ui.views.BundlesTab"
               label="Bundles"/>
         <propertyTab
               category="org.fusesource.ide.jmx.ui.views"
               id="org.fusesource.ide.jmx.ui.views.ContainersTab"
               label="Containers"/>
         <propertyTab
               category="org.fusesource.ide.jmx.ui.views"
               id="org.fusesource.ide.jmx.ui.views.FabricStatusTab"
               label="Status"/>
         <propertyTab
               afterTab="org.fusesource.ide.jmx.ui.views.PropertiesTab"
               category="org.fusesource.ide.jmx.ui.views"
               id="org.fusesource.ide.jmx.ui.views.ContainerProfilesTab"
               label="Profiles"/>
         <propertyTab
               afterTab="org.fusesource.ide.jmx.ui.views.ContainerProfilesTab"
               category="org.fusesource.ide.jmx.ui.views"
               id="org.fusesource.ide.jmx.ui.views.ContainerProfileDetailsTab"
               label="Profile Details"/>
         <propertyTab
               category="org.fusesource.ide.jmx.ui.views"
               id="org.fusesource.ide.jmx.ui.views.ProfileDetailsTab"
               label="Details"/>
         <propertyTab
               afterTab="org.fusesource.ide.jmx.ui.views.PropertiesTab"
               category="org.fusesource.ide.jmx.ui.views"
               id="org.fusesource.ide.jmx.ui.views.ProfileRequirementsTab"
               label="Requirements"/>
      </propertyTabs>
   </extension>
   <extension
         point="org.eclipse.ui.views.properties.tabbed.propertySections">
      <propertySections contributorId="org.fusesource.ide.jmx.ui.internal.views.navigator.MBeanExplorer">
         <propertySection
               class="org.fusesource.ide.fabric.navigator.osgi.BundlesTabSection"
               id="BundlesSection"
               tab="org.fusesource.ide.jmx.ui.views.BundlesTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.osgi.BundlesNode">
            </input>
         </propertySection>
         <propertySection
               class="org.fusesource.ide.fabric.navigator.ContainersTabSection"
               id="ContainersSection"
               tab="org.fusesource.ide.jmx.ui.views.ContainersTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.ContainersNode">
            </input>
         </propertySection>
         <propertySection
               class="org.fusesource.ide.fabric.navigator.ProfileContainersTabSection"
               id="ProfileContainersSection"
               tab="org.fusesource.ide.jmx.ui.views.ContainersTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.ProfileNode">
            </input>
         </propertySection>
         <propertySection
               class="org.fusesource.ide.fabric.navigator.FabricStatusTabSection"
               id="FabricStatusSection"
               tab="org.fusesource.ide.jmx.ui.views.FabricStatusTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.Fabric">
            </input>
         </propertySection>
         <propertySection
               class="org.fusesource.ide.fabric.navigator.ProfileTreeTabSection"
               id="ContainerProfilesSection"
               tab="org.fusesource.ide.jmx.ui.views.ContainerProfilesTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.ContainerNode">
            </input>
         </propertySection>
         <propertySection
               class="org.fusesource.ide.fabric.navigator.ProfilesTabSection"
               id="ContainerProfileDetailsSection"
               tab="org.fusesource.ide.jmx.ui.views.ContainerProfileDetailsTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.ContainerNode">
            </input>
         </propertySection>
         <propertySection
               class="org.fusesource.ide.fabric.navigator.ProfileDetailsTabSection"
               id="ProfileDetailsSection"
               tab="org.fusesource.ide.jmx.ui.views.ProfileDetailsTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.ProfileNode">
            </input>
         </propertySection>
         <propertySection
               class="org.fusesource.ide.fabric.navigator.ProfileRequirementsTabSection"
               id="ProfileRequirementsSection"
               tab="org.fusesource.ide.jmx.ui.views.ProfileRequirementsTab">
            <input
                  type="org.fusesource.ide.fabric.navigator.ProfileNode">
            </input>
         </propertySection>
      </propertySections>
   </extension>
</plugin>
