<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
    Copyright (c) 2009 Tasktop Technologies and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
   
    Contributors:
         Tasktop Technologies - initial API and implementation
 -->
<plugin>

   <!--
   <extension point = "org.eclipse.ui.popupMenus">
     <objectContribution
        id="org.eclipse.mylyn.ui.instrospection"
        objectClass="java.lang.Object">
	    <action
  		  	label="Sandbox: Introspect Object"
	  		menubarPath="additions"
	  		id="org.eclipse.mylyn.sandbox.actions.introspect"
	  		class="org.eclipse.mylyn.internal.sandbox.dev.IntrospectObjectAction"
	  		enablesFor="1"/>
	 </objectContribution>
	</extension>
	-->
	<extension point="org.eclipse.ui.commands">
      <category
            name="Sandbox"
            description="Mylyn Sandbox Commands"
            id="org.eclipse.mylyn.sandbox.dev.commands.category">
      </category>
      <command
            name="Sandbox: Introspect Object"
            id="org.eclipse.mylyn.sandbox.dev.commands.Introspect"
            categoryId="org.eclipse.mylyn.sandbox.dev.commands.category"
            defaultHandler="org.eclipse.mylyn.internal.sandbox.dev.IntrospectObjectHandler">
      </command>
	</extension>
	<extension
       point="org.eclipse.ui.menus">
	    <menuContribution
	          locationURI="popup:org.eclipse.ui.popup.any">
	          <command
                 commandId="org.eclipse.mylyn.sandbox.dev.commands.Introspect"
                 style="push">
	          </command>
	    </menuContribution>
	</extension>	

   <extension point="org.eclipse.ui.decorators">
      <decorator
            lightweight="true"
            label="Experimental: Interest Debugging Decorator"
            class="org.eclipse.mylyn.internal.sandbox.dev.InterestDebuggingDecorator"
            state="false"
            id="org.eclipse.mylyn.sandbox.ui.decorator.interest">
         <description>
			Appends interest level to nodes
		 </description>
         <enablement>
            <objectClass name="java.lang.Object"/>
         </enablement>
      </decorator>
   </extension>

  <extension
         point="org.eclipse.ui.views">
      <view
            name="Repository Spy"
            icon="icons/repositories.gif"
            category="org.eclipse.mylyn.sandbox"
            class="org.eclipse.mylyn.internal.sandbox.dev.views.RepositorySpyView"
            id="org.eclipse.mylyn.tasks.spy.views.RepositorySpyView">
      </view>
      <category
            id="org.eclipse.mylyn.sandbox"
            name="Experimental">
      </category>
   </extension>
   <extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="org.eclipse.mylyn.tasks.core.TaskRepository"
            class="org.eclipse.mylyn.internal.sandbox.dev.properties.MylynPropertiesSourceAdapterFactory">
         <adapter
               type="org.eclipse.ui.views.properties.IPropertySource">
         </adapter>
      </factory>
      <factory
            adaptableType="org.eclipse.mylyn.internal.tasks.core.AbstractTask"
            class="org.eclipse.mylyn.internal.sandbox.dev.properties.MylynPropertiesSourceAdapterFactory">
         <adapter
               type="org.eclipse.ui.views.properties.IPropertySource">
         </adapter>
      </factory>
    <factory
            adaptableType="org.eclipse.mylyn.internal.tasks.core.RepositoryQuery"
            class="org.eclipse.mylyn.internal.sandbox.dev.properties.MylynPropertiesSourceAdapterFactory">
         <adapter
               type="org.eclipse.ui.views.properties.IPropertySource">
         </adapter>
      </factory>
   
    <factory
            adaptableType="org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory"
            class="org.eclipse.mylyn.internal.sandbox.dev.properties.MylynPropertiesSourceAdapterFactory">
         <adapter
               type="org.eclipse.ui.views.properties.IPropertySource">
         </adapter>
      </factory>
   </extension>

  <extension point="org.eclipse.ui.popupMenus"> 
     <objectContribution
     	   adaptable="false"
           id="org.eclipse.mylyn.java.ui.interest.decrease.contribution"
           objectClass="org.eclipse.jdt.core.IJavaElement">
	    <action
           class="org.eclipse.mylyn.internal.sandbox.dev.InterestDecrementAction"
           enablesFor="*"
           id="org.eclipse.mylyn.java.ui.interest.increase.element"
           label="Make Less Interesting (Experimental)"
           menubarPath="group.reorganize">
     </action>
     <visibility>
     	<and>
	     	<systemProperty
	               name="org.eclipse.mylyn.context.core.context.active"
    	           value="true">
    	    </systemProperty>
           <objectClass
                 name="org.eclipse.jdt.core.IMember">
           </objectClass>
        </and>
     </visibility>
	 </objectContribution>
	</extension>
  <extension
        point="org.eclipse.ui.actionSets">
     <actionSet
           id="org.eclipse.mylyn.sandbox.dev.actions"
           label="Mylyn Development"
           visible="false">
        <action
              class="org.eclipse.mylyn.internal.sandbox.dev.actions.TestTaskListNotificationAction"
              icon="icons/test.png"
              id="org.eclipse.mylyn.sandbox.dev.action1"
              label="Test Notifications"
              style="push"
              toolbarPath="mylyn">
        </action>
     </actionSet>
  </extension>
  <extension
        point="org.eclipse.ui.popupMenus">
     <viewerContribution
           id="org.eclipse.mylyn.sandbox.dev.TasksPropertiesContribution"
           targetID="org.eclipse.mylyn.tasks.ui.views.tasks">
        <action
              class="org.eclipse.mylyn.internal.sandbox.dev.actions.ShowPropertiesAction"
              enablesFor="1"
              icon="icons/debug.gif"
              id="org.eclipse.mylyn.sandbox.dev.ShowPropertiesAction"
              label="Show in Properties View"
              menubarPath="additions"
              tooltip="Show properties in Properties View">
        </action>
     </viewerContribution>
     <viewerContribution
           id="org.eclipse.mylyn.sandbox.dev.RepositoriesPropertiesContribution"
           targetID="org.eclipse.mylyn.tasks.ui.views.repositories">
        <action
              class="org.eclipse.mylyn.internal.sandbox.dev.actions.ShowPropertiesAction"
              enablesFor="1"
              icon="icons/debug.gif"
              id="org.eclipse.mylyn.sandbox.dev.ShowPropertiesAction"
              label="Show in Properties View"
              menubarPath="additions"
              tooltip="Show properties for this Repository in Properties View">
        </action>
     </viewerContribution>
  </extension>
  
</plugin>
