org.eclipse.ui.viewActions

Moduly plug-in běžně přispívají chováním do stávajících pohledů pracovní plochy. Používají přitom bod rozšíření org.eclipse.ui.viewActions. Tento bod rozšíření modulům plug-in umožňuje přispívat položkami nabídek, dílčími nabídkami a položkami panelu nástrojů do lokální rozevírací nabídky a do lokálního panelu nástrojů stávajícího pohledu.

Pravděpodobně jste si povšimli položky na lokálním panelu navigátoru, který se aktivuje vždy při volbě souboru README. Tato položka se zobrazuje rovněž v lokální rozevírací nabídce navigátoru. Tyto akce se zobrazují, protože modul plug-in nástroje README jimi přispívá pomocí rozšíření viewActions.

Následuje příslušný příspěvek v souboru plugin.xml.

   <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>

Zadán je příspěvek do pohledu s jedinečným ID. Cílový pohled, do kterého přidáváme akci, je určen v identifikátoru targetID. Přispíváme o nabídky navigátoru prostředků.  Pro novou akci zadáváme štítek a umístění pruhu nabídky a panelu nástrojů.  (Kompletní výklad umístění nabídky a panelu nástrojů viz Cesty nabídky a panelu nástrojů).

Rovněž zadáváme podmínky zpřístupněné akce. Je patrné, že tato akce bude zpřístupněna v případě, že je k dispozici volba (enablesFor="1") typu IFile (class="org.eclipse.core.resources.IFile"), jehož název má příponu ".readme" názvu souboru (name="*.readme"). Přesně k tomuto dojde při klepnutí v oblasti navigátoru prostředků.  

Informace v souboru plugin.xml postačují k přidávání položek do nabídek a panelu nástrojů, protože kód modulu plug-in se provádí pouze při skutečné volbě akce v nabídce nebo na panelu nástrojů. Podmínkou poskytnutí chování akce je, že implementační třída zadaná v plugin.xml musí implementovat rozhraní IViewActionDelegate.

V tomto příkladu modul plug-in README k implementaci akce poskytuje ViewActionDelegate. Prohlédnete-li si tuto třídu, zjistíte, že obsahuje metody k pamatování svého pohledu, k manipulaci se změnami výběrů a k vyvolání své akce.  Při vyvolání samotná akce prostě spustí dialog, který oznámí její provedení.

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

Tato akce je sice velmi jednoduchá, avšak předvádí způsob použití voleb a několik funkčních dialogových oken může přinutit tuto akci k zajímavé činnosti.