org.eclipse.ui.viewActions

Det är vanligt att insticksprogram bidrar med beteenden till vyer som redan finns i arbetsmiljön. Detta görs via utökningspunkten org.eclipse.ui.viewActions. Denna utökningspunkt gör det möjligt för insticksprogram att bidra med menyobjekt, undermenyer och verktygsfältsposter till en befintlig vys lokala snabbmeny och lokala verktygsfält.

Du kan ha lagt märke till ett objekt i navigatorns lokala verktygsfält som aktiveras när en readme-fil väljs. Detta objekt visas också i navigatorns lokala snabbmeny. Dessa åtgärder visas eftersom readme-verktygets insticksprogram bidrar med dem via utökningen viewActions.

Nedan anges det relevanta plugin.xml-bidraget.

<extension
    point = "org.eclipse.ui.viewActions">
      <viewContribution 
         id="org.eclipse.ui.examples.readmetool.vc1" 
         targetID="org.eclipse.ui.views.ResourceNavigator">        
	   <action id="org.eclipse.ui.examples.readmetool.va1" 
              label="%PopupMenu.ResourceNav.label" 
	      menubarPath="additions"
              toolbarPath="additions" 
              icon="icons/obj16/editor.png" 
              tooltip="%PopupMenu.ResourceNav.tooltip" 
   	      helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
              class="org.eclipse.ui.examples.readmetool.ViewActionDelegate" 
              enablesFor="1"> 
		<selection class="org.eclipse.core.resources.IFile" name="*.readme"/> 
	   </action>
      </viewContribution>
 </extension>

Ett vybidrag med ett unikt id anges. Den vy som vi lägger till åtgärden i anges i targetID. Vi bidrar till resursnavigatorns meny.  Vi anger etiketten och menyraden och verktygsfältsplatserna för den nya åtgärden.  (För en fullständig diskussion om meny- och verktygsfältplatser, se Sökvägar för menyer och verktygsfält).

Vi anger också under vilka förhållanden som åtgärden ska aktiveras. Du kan se att denna åtgärd aktiveras när det finns ett urval (enablesFor="1") av typen IFile (class="org.eclipse.core.resources.IFile"), vars namn har ".readme" i filtillägget (name="*.readme"). Detta är så klart exakt det som händer du klickar runt i resursnavigatorn.  

Informationen i plugin.xml är allt som behövs för att lägga till objekt på menyer och verktygsfält eftersom insticksprogrammetskod bara körs när åtgärden verkligen väljs på menyn eller verktygsfältet. För att tillhandahålla åtgärdsbeteendet måste implementationsklassen som anges i plugin.xml implementera gränssnittet IViewActionDelegate.

I det här exemplet tillhandahålla readme-insticksprogrammet ViewActionDelegate som implementerar åtgärden. Om du bläddrar i den här klassen ser du att den innehåller metoder som kommer ihåg dess vy, hanterar urvalsändringar och anropar dess åtgärd.  När åtgärden anropas öppnas en dialogruta som meddelat att den körts.

public void run(org.eclipse.jface.action.IAction action) {
	MessageDialog.openInformation(view.getSite().getShell(),
		MessageUtil.getString("Readme_Editor"),  
		MessageUtil.getString("View_Action_executed")); 
}

Även om denna åtgärd är enkel kan vi föreställa oss hur urval och mer funktionella dialogrutor kan göra denna åtgärd något mer intressant.