org.eclipse.ui.editorActions

Vi har just sett hur redigerare kan bidra med egna åtgärder till arbetsmiljöns menyer och verktygsfält när de blir aktiva.  Utökningspunkten org.eclipse.ui.editorActions extension gör att ett insticksprogram kan bidra till arbetsmiljöns menyer och verktygsfält när ett annat insticksprograms redigerare blir aktiv.

I readme-exemplet använder insticksprogrammet utökningspunkten editorActions till att bidra med ytterligare åtgärder till den meny som bidragits med av readme-redigeraren. Definitionen i plugin.xml bör se rätt bekant ut nu.

<extension
    point = "org.eclipse.ui.editorActions">
      <editorContribution 
         id="org.eclipse.ui.examples.readmetool.ec1" 
         targetID="org.eclipse.ui.examples.readmetool.ReadmeEditor">        
	   <action id="org.eclipse.ui.examples.readmetool.ea1" 
              label="%Editors.Action.label" 
              toolbarPath="ReadmeEditor" 
              icon="icons/obj16/editor.png" 
              tooltip="%Editors.Action.tooltip" 
              class="org.eclipse.ui.examples.readmetool.EditorActionDelegate"
              definitionId="org.eclipse.ui.examples.readmetool.ea1"
              /> 
      </editorContribution>
 </extension>

På liknande sätt som en vy-åtgärd måste utökningen ange targetID för redigeraren som den bidrar med åtgärder till.  Själva åtgärden är väldigt lik en vy-åtgärd (id, label, icon, toolbarPath, ...), förutom att den angivna klassen måste implementera IEditorActionDelegate och att ett definitionId kan anges som länk för den här åtgärden till ett kommando som anges av utökningen org.eclipse.ui.commands och som är viktig för nyckelbindning. Mer information finns i avsnittet om kommandon.

Lägg märke till att en menyrads sökväg inte anges i denna kod.  Därför visas inte åtgärden på arbetsmiljöns verktygsfält när redigeraren är aktiv, utan bara i arbetsmiljöns menyrad.  (Se Sökvägar för menyer och verktygsfält för sökvägar för verktygsfält och menyer.)

Visst är det så att vi när redigeraren är aktiv ser vår redigeraråtgärd på verktygsfältet bredvid åtgärderna som själva redigeraren bidrog med.

Redigeraråtgärd visad bredvid de ursprungliga bidragen av redigeraren på arbetsmiljöns verktygsfält

Readme-verktyget tillhandahåller EditorActionDelegate som implementerar åtgärden.  Den här klassen liknar den vy-åtgärdsdelegat vi såg tidigare.

public void run(IAction action) {
	MessageDialog.openInformation(editor.getSite().getShell(),
		MessageUtil.getString("Readme_Editor"),  
		MessageUtil.getString("Editor_Action_executed")); 
}