Conjuntos de acciones

Identificador: org.eclipse.ui.actionSets

Descripción: este punto de extensión permite añadir menús, elementos de menú y botones de barra de herramientas a las áreas comunes de la ventana del entorno de trabajo. A estas contribuciones se las conoce colectivamente como conjunto de acciones y aparecen dentro de la ventana del entorno de trabajo según sean las preferencias del usuario.

Códigos XML de configuración:

   <!ELEMENT actionSet (menu)* (action)* (description?)>
   <!ATTLIST actionSet
      id        CDATA #REQUIRED
      label     CDATA #REQUIRED
      visible   (true | false) #IMPLIED
    >
    <!ELEMENT description (#PCDATA)>

   <!ELEMENT menu (separator)+ (groupMarker)*>
   <!ATTLIST menu
      id         CDATA #REQUIRED
      label      CDATA #REQUIRED
      path       CDATA #IMPLIED
   >    <!ELEMENT separator EMPTY>
   <!ATTLIST separator
      name       CDATA #REQUIRED
   >
  • name: nombre del separador al que más adelante se puede hacer referencia como último símbolo de la vía de acceso de la acción. Por lo tanto, los separadores actúan a modo de grupos con nombre a los que pueden añadirse acciones y submenús.
  •    <!ELEMENT groupMarker EMPTY>
       <!ATTLIST groupMarker
          name       CDATA #REQUIRED
       >
  • name: nombre del marcador de grupo al que más adelante se puede hacer referencia como último símbolo de la vía de acceso de la acción.
  •    <!ELEMENT action (selection)* (enablement)?>
       <!ATTLIST action
          id                NMTOKEN #REQUIRED
          label             CDATA #REQUIRED
          accelerator       CDATA #IMPLIED
          definitionId      CDATA #IMPLIED
          menubarPath       CDATA #IMPLIED
          toolbarPath       CDATA #IMPLIED
          icon              CDATA #IMPLIED
          disabledIcon      CDATA #OPTIONAL
          hoverIcon         CDATA #OPTIONAL
          tooltip           CDATA #IMPLIED
          helpContextId     CDATA #IMPLIED
          state             (true | false) #IMPLIED
          pulldown          (true | false) #IMPLIED
          class             CDATA #OPTIONAL
          retarget          (true | false) #OPTIONAL
          allowLabelUpdate  (true | false) #OPTIONAL
          enablesFor        CDATA #IMPLIED
       >    <!ELEMENT selection EMPTY>
       <!ATTLIST selection
          class             CDATA #REQUIRED
          name              CDATA #IMPLIED
       >    <!ELEMENT enablement (and | or | not | objectClass | objectState | systemProperty | pluginState)*>
       <!ATTLIST enablement EMPTY>
    En la versión 2.0 de Eclipse, puede usarse un elemento enablement para definir la habilitación de la acción. Hallará más información sobre cómo se utiliza el elemento enablement en actionExpressions.html.
    Ejemplos:

    A continuación vemos un ejemplo de un conjunto de acciones (fíjese en los subelementos y en la manera de utilizar los atributos):

        <extension point = "org.eclipse.ui.actionSets">
            <actionSet id="com.xyz.actionSet"
                label="Mis Acciones"
                visible="true">
                <menu id="com.xyz.xyzMenu"
                    label="Menú XYZ"
                    path="additions">
                    <separator name="group1"/>
                </menu>
                <action id="com.xyz.runXYZ"
                    label="&amp;Ejecutar herramienta XYZ"
                    menubarPath="com.xyz.xyzMenu/group1"
                    toolbarPath="Normal/XYZ"
                    icon="icons/runXYZ.gif"
                    tooltip="Ejecutar herramienta XYZ"
                    helpContextId="com.xyz.run_action_context"
                    class="com.xyz.actions.RunXYZ"
                    enablesFor="1">
                    <selection class="org.eclipse.core.resources.IFile" name="*.java"/>
                </action>
                <action id="com.xyz.runABC"
                    label="&amp;Ejecutar herramienta ABC"
                    menubarPath="com.xyz.xyzMenu/group1"
                    toolbarPath="Normal/XYZ"
                    icon="icons/runABC.gif"
                    tooltip="Ejecutar herramienta ABC"
                    helpContextId="com.xyz.run_abc_action_context"
                    retarget="true"
                    allowLabelUpdate="true">
                </action>
            </actionSet>
        </extension>

    En el ejemplo anterior, la acción especificada, denominada "Mis Acciones", está inicialmente visible dentro de cada perspectiva. Únicamente se habilitará para una sola selección (atributo enablesFor). Además, los objetos que hay dentro de la selección deben implementar la interfaz especificada (IFile) y tienen que ser un archivo Java.

    Información sobre las API: el valor del atributo class debe ser el nombre totalmente calificado de una clase que implementa la interfaz org.eclipse.ui.IWorkbenchWindowActionDelegate o la interfaz org.eclipse.ui.IWorkbenchWindowPulldownDelegate. Esta última debe implementarse en los casos en que el valor del atributo pulldown sea true. Esta clase se carga lo más tarde posible para evitar que se cargue todo el conector antes de que sea realmente necesario.

    Los criterios de habilitación de una extensión de acciones se definen inicialmente con los atributos enablesFor, selection y enablement. Sin embargo, una vez creada una instancia del delegado de la acción, dicha instancia puede controlar el estado de habilitación de la acción directamente dentro del correspondiente método selectionChanged.

    Es importante tener en cuenta que el entorno de trabajo no genera menús en nombre de los conectores: las vías de acceso de los menús deben hacer referencia a menús que ya existen.

    Las etiquetas de acción y de menú pueden contener caracteres especiales que codifiquen nemotécnicos y aceleradores siguiendo estas reglas:

    1. Los nemotécnicos se especifican utilizando el carácter & delante de un carácter seleccionado del texto traducido. Como el símbolo ampersand no está permitido en las series XML, hay que utilizar la entidad de tipo carácter &amp;.
    2. Los aceleradores opcionales se especifican al final de la serie del nombre, utilizando el carácter @ seguido de una serie de modificadores y el carácter acelerador final (por ejemplo, &amp;Guardar@Control+G). El modificador se puede encadenar utilizando el signo '+' como delimitador (como en @Control+Mayús+G).
    Si se contribuye suministrando dos o más acciones a un menú o barra de herramientas mediante una extensión individual, las acciones aparecerán en el orden inverso de como figuran en el archivo plugin.xml. Este comportamiento es definitivamente poco intuitivo. No obstante, se descubrió después de haber congelado la API de la plataforma Eclipse. Si se cambiara ahora el comportamiento, quedarían dañados todos los conectores que se basan en el comportamiento existente.

    Implementación suministrada: los conectores pueden utilizar este punto de extensión para añadir nuevos menús de nivel superior (por ejemplo, Depuración). Los conectores pueden asimismo definir grupos con nombre que permitan a otros conectores contribuir suministrando sus acciones a dichos grupos.

    Los menús de nivel superior se crean utilizando los valores siguientes para el atributo path:

    La omisión del atributo path dará como resultado la adición del nuevo menú al grupo additions de la barra de menús.

    Los grupos por omisión de una ventana del entorno de trabajo están definidos en la interfaz IWorkbenchActionConstants (constantes de acciones de entorno de trabajo). Estas constantes pueden utilizarse en el código para la contribución dinámica. Los valores también pueden copiarse en un archivo XML para obtener una integración más precisa con los menús y la barra de herramientas existentes en el entorno de trabajo.

    Dentro de la ventana del entorno de trabajo, hay diversos elementos de menú y de barra de herramientas de la ventana que están definidos algorítmicamente. En tales casos, hay que utilizar un mecanismo aparte para ampliar la ventana. Por ejemplo, la adición de una vista nueva del entorno de trabajo da como resultado la aparición de un nuevo elemento en el menú Ventana. Las extensiones de los asistentes de Importar, Exportar y Nuevo también se añaden a la ventana automáticamente.
     

    Copyright IBM Corporation y otros 2000, 2002.