Acciones y contribuciones

Las clases de acciones le permiten definir mandatos de usuario independientemente de su presentación en la UI. Esto le proporciona la posibilidad de cambiar la presentación de una acción en el conector sin cambiar el código que realmente efectúa el mandato una vez se ha elegido. Las clases de contribuciones se utilizan para gestionar los elementos reales de la UI que representan los mandatos. No ha de programar las clases de contribución, pero las verá en algunas de las API de JFace y de entorno de trabajo.

Acciones

Una acción (IAction) representa un mandato que el usuario puede activar. Generalmente, las acciones están asociadas a botones, elementos de menú y artículos en barras de herramientas.

Aunque las acciones no se colocan en la UI, tienen propiedades orientadas a la UI como, por ejemplo, texto de consejos para herramientas, texto de etiquetas y una imagen. Esto permite a otras clases construir widgets para la presentación de la acción.

Cuando el usuario activa la acción en la UI, el método de ejecución de la acción se invoca para efectuar el trabajo real. Un patrón común en el método de ejecución es consultar las selecciones de entorno de trabajo y manipular los objetos que se han seleccionado. Otro patrón común es lanzar un asistente o un diálogo cuando se elige una acción.

No debe implementarse directamente la interfaz IAction. En su lugar, debe hacer que la clase Action sea una subclase. Examine las subclases de esta clase para ver la mayoría de los patrones comunes para las acciones. El código siguiente implementa la acción "About". Se trata de una de las acciones más simples del entorno de trabajo.

public void run() {
    new AboutDialog(workbenchWindow.getShell()).open();

}

Anteriormente se han mostrado las interfaces de entorno de trabajo IViewActionDelegate y IEditorActionDelegate. Estas interfaces se utilizan cuando se contribuye con acciones de vista o de editor al entorno de trabajo. Las representaciones de las acciones del entorno de trabajo se inicializan con una referencia a su vista o editor asociado. Con esta información, pueden navegar por la página o ventana del entorno de trabajo y acceder a selecciones o a cualquier otra información necesaria para efectuar la acción.

Deberá implementar sus propias clases de acciones siempre que quiera definir un mandato en el conector. Si va a contribuir con acciones a otras vistas y editores, deberá implementar representaciones de acciones.

Elementos de contribución

Un elemento de contribución (IContributionItem) representa la parte de la UI de una acción. De manera más específica, representa un elemento con el que se ha contribuido a un recurso de UI compartido, como una barra de menús o de herramientas.

Los elementos de contribución saben cómo rellenar un widget de SWT específico con el elemento de SWT adecuado que representa la contribución.

Usted no tiene que preocuparse sobre cómo crear un elemento de contribución cuando contribuye con acciones a la UI de entorno de trabajo. Esto se lleva a cabo en su lugar cuando el entorno de trabajo crea elementos de la UI para las acciones que ha definido.

Gestores de contribución

Un gestor de contribución (IContributionManager) representa un conjunto de elementos de contribución que se presentará en la UI. Se pueden añadir e insertar elementos de contribución utilizando identificadores de contribución para colocar los elementos en el orden adecuado. También puede buscar elementos por identificador y suprimir elementos individuales.

Cada implementación de IContributionManager sabe cómo rellenar un widget de SWT específico con sus elementos. JFace proporciona gestores de contribución para menús (IMenuManager), barras de herramientas (IToolBarManager), y líneas de estado(IStatusLineManager).

Al ser desarrollador de conectores, no necesita implementar estas interfaces, pero verá referencias a algunos de estos gestores en los métodos de la API.