org.eclipse.ui.viewActions

Los conectores suelen contribuir suministrando comportamiento a las vistas que ya existen en el entorno de trabajo. Esto se lleva a cabo mediante el punto de extensión org.eclipse.ui.viewActions. Este punto de extensión permite a los conectores contribuir suministrando entradas de elementos de menú, submenús y barra de herramientas al menú desplegable local y a la barra de herramientas local de una vista existente.

Tal vez se haya fijado en un elemento de la barra de herramientas local de la vista Navegador que queda habilitado cada vez que se selecciona un archivo readme. Este elemento también figura en el menú desplegable local de la vista Navegador. Estas acciones aparecen porque el conector de la herramienta readme contribuye con ellas utilizando la extensión viewActions.

A continuación, se muestra la contribución pertinente del archivo 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.gif" 
              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>

Se ha especificado una contribución de vista con un id exclusivo. La vista a la que estamos añadiendo la acción está especificada en el parámetro targetID. Estamos contribuyendo al menú del navegador de recursos.  Especificamos la etiqueta y las ubicaciones de la barra de menús y de la barra de herramientas de la nueva acción.  (Hallará una descripción completa de las ubicaciones de la barra de menús y la barra de herramientas en el tema Vías de acceso de los menús y la barra de herramientas).

También especificamos las condiciones bajo las que debe habilitarse la acción. Puede ver que esta acción se habilitará cuando haya una selección (enablesFor="1") de tipo IFile (class="org.eclipse.core.resources.IFile"), cuyo nombre de archivo tiene la extensión ".readme" (name="*.readme"). Con toda certeza, esto es lo que ocurre cuando pulsa en el navegador de recursos.  

La información que hay en el archivo plugin.xml es todo lo que se necesita para añadir elementos a los menús y a las barras de herramientas, porque el código del conector solo se ejecutará cuando la acción se seleccione realmente en el menú o en la barra de herramientas. Para proporcionar el comportamiento de la acción, la clase de implementación especificada en el archivo plugin.xml debe implementar la interfaz IViewActionDelegate.

En este ejemplo, el conector readme suministra la clase ViewActionDelegate para implementar la acción. Si examina esta clase, verá que incluye métodos para recordar su vista, manejar los cambios de selección e invocar su acción.  Cuando se invoca, la propia acción no hace otra cosa que lanzar un diálogo que anuncia que se ha ejecutado.

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

Aunque esta acción es simple, podría resultar más interesante si utilizamos selecciones y diálogos más funcionales.

Copyright IBM Corporation y otros 2000, 2003.