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 que se ha elegido. Las clases de contribuciones se utilizan para gestionar los elementos reales de la UI que representan los mandatos. No programará las clases de contribución, pero las verá en algunas de las API de JFace y del entorno de trabajo.

Acciones

Una acción (IAction) representa un mandato que el usuario final puede desencadenar. Por lo general, las acciones están asociadas a los botones, a los elementos de menú y a los elementos de las barras de herramientas.

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

Cuando el usuario desencadena la acción en la UI, se invoca el método ejecutar de la acción para efectuar el trabajo real. Un patrón común del método ejecutar es consultar las selecciones del 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 vez de ello, debe crear una subclase de Action. Examine las subclases de esta clase para ver muchos de los patrones comunes de las acciones. El código siguiente implementa la acción Acerca de ("About"). Es una de las acciones más simples del entorno de trabajo.

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

Anteriormente, vimos las interfaces IViewActionDelegate e IEditorActionDelegate del entorno de trabajo. Estas interfaces se utilizan cuando se contribuye aportando acciones de vista o de editor al entorno de trabajo. Los delegados 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 la ventana del entorno de trabajo y acceder a selecciones o a cualquier otra información necesaria para efectuar la acción.

Implementará sus propias clases de acciones siempre que quiera definir un mandato en su conector. Si va a contribuir aportando acciones a otras vistas y editores, implementará delegados de las 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 que se suministra como contribución a un recurso compartido de la UI, como una barra de menús o de herramientas.

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

No hace falta que se preocupe de cómo crear un elemento de contribución cuando vaya a contribuir aportando acciones a la UI del entorno de trabajo. Esto se lleva a cabo en su nombre cuando el entorno de trabajo crea elementos de la UI para las acciones que ha definido.

Gestores de contribuciones

Un gestor de contribuciones (IContributionManager) representa un conjunto de elementos de contribución que se presentará en la UI. Pueden añadir e insertar elementos de contribución utilizando los ID de las contribuciones nombradas para colocar los elementos en el orden adecuado. También puede buscar elementos por su ID y eliminar elementos individuales.

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

En calidad de desarrollador de conectores, no hace falta que implemente estas interfaces, pero verá referencias a algunos de estos gestores en los métodos de las API.

Copyright IBM Corporation y otros 2000, 2003.