Mandatos

org.eclipse.ui.commands

2.1

El punto de extensión org.eclipse.ui.commands se utiliza para declarar mandatos y categorías de mandatos, mediante los elementos command y category. Un mandato es una representación abstracta de un comportamiento semántico, pero no es su implementación real. Esto permite que diferentes desarrolladores contribuyan con comportamientos específicos para sus partes individuales. Por ejemplo, puede haber un mandato "pegar" con una implementación en un editor y una implementación diferente en un widget de explorador. Estas implementaciones se denominan manejadores. Los mandatos también pueden verse como punteros de funciones declarativas o manejadores de señal.

<!ELEMENT extension (category* , command* , commandParameterType* , keyBinding* , keyConfiguration* , context* , scope* , activeKeyConfiguration?)>

<!ATTLIST extension

id    CDATA #IMPLIED

name  CDATA #IMPLIED

point CDATA #REQUIRED>


<!ELEMENT command (defaultHandler? , state* , commandParameter*)>

<!ATTLIST command

category       CDATA #IMPLIED

description    CDATA #IMPLIED

id             CDATA #REQUIRED

name           CDATA #REQUIRED

categoryId     CDATA #IMPLIED

defaultHandler CDATA #IMPLIED

returnTypeId   CDATA #IMPLIED

helpContextId  CDATA #IMPLIED>

Este elemento se utiliza para definir mandatos. Un mandato representa una petición del usuario que puede manejarse mediante una acción, y debe ser semánticamente exclusivo con respecto a otros mandatos. No defina un mandato si ya existe uno definido con el mismo significado. Si existe más de uno de estos elementos con el mismo atributo id, sólo se considera válido el último elemento declarado (por orden de lectura del registro de plug-ins). Consulte los puntos de extensión org.eclipse.ui.actionSets y org.eclipse.ui.editorActions para saber cómo se conectan las acciones a los mandatos.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

En la UI, los mandatos están organizados frecuentemente por categorías para facilitar su gestión. Este elemento se utiliza para definir estas categorías. Los mandatos pueden añadirse a sí mismos a una categoría como máximo. Si existe más de uno de estos elementos con el mismo atributo id, sólo se considera válido el último elemento declarado (por orden de lectura del registro de plug-ins).



<!ELEMENT commandParameter (values?)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

typeId   CDATA #IMPLIED

optional (true | false) "true">

Define un parámetro que un mandato debe entender. Un parámetro es una manera de proporcionar más información a un manejador durante la ejecución. Por ejemplo, el mandato "Mostrar vista" podría tomar una vista como parámetro. Los manejadores deben poder entender estos parámetros para que se traten como API.

Desde: 3.1



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

Define el tipo de objeto de un commandParameter y puede especificar una subclase org.eclipse.core.commands.AbstractParameterValueConverter para convertir entre valores de parámetro de serie y objetos.

Desde: 3.2



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

La versión más detallada del atributo values en commandParameter.

Desde: 3.1



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Un valor posible para un parámetro.

Desde: 3.1



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

El manejador por omisión para este mandato. Si no hay ningún otro manejador activo, este manejador estará activo. Este manejador estará en conflicto con otras definiciones de manejador que no especifiquen ninguna condición activeWhen. Si está creando un IExecutableExtension, puede utilizar en su lugar el atributo defaultHandler.

Desde: 3.1



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

Información de estado compartida entre todos los manejadores y persistida entre sesiones. Normalmente esto es algo parecido al estado de recuadro de selección o la etiqueta de un manejador. El estado es simplemente una clase que se carga para buscar el estado. Consulte la información de la API para obtener más detalles.

Desde: 3.2



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

Clase que puede cargarse para almacenar el estado de este mandato. Este elemento se utiliza si desea pasar varios parámetros a org.eclipse.core.runtime.IExecutableExtension.

Desde: 3.2



El elemento keyConfiguration está en desuso

<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Este elemento se utiliza para definir configuraciones de teclas. Si existe más de uno de estos elementos con el mismo atributo id, sólo se considera válido el último elemento declarado (por orden de lectura del registro de plug-ins). En su lugar, utilice el punto de extensión "org.eclipse.ui.bindings".



El elemento context está en desuso

<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Este elemento se utiliza para definir contextos. Si existe más de uno de estos elementos con el mismo atributo id, sólo se considera válido el último elemento declarado (por orden de lectura del registro de plug-ins). Utilice en su lugar el punto de extensión org.eclipse.ui.contexts.



El elemento scope está en desuso

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

Este elemento se utiliza para definir ámbitos. Si existe más de uno de estos elementos con el mismo atributo id, sólo se considera válido el último elemento declarado (por orden de lectura del registro de plug-ins). @obsoleto; en su lugar, utilice el punto de extensión "org.eclipse.ui.contexts".



El elemento activeKeyConfiguration está en desuso

<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

Este elemento se utiliza para definir la configuración de teclas activa inicial de Eclipse. Si existe más de uno de estos elementos, sólo se considera válido el último elemento declarado (por orden de lectura del registro de plug-ins).

Este elemento se ha sustituido por una preferencia. Si la aplicación tiene que cambiar la configuración de teclas, especifique lo siguiente en el archivo plugin_customization.ini: org.eclipse.ui/KEY_CONFIGURATION_ID=ID.configuración.teclas.por.omisión.usuario.



El elemento keyBinding está en desuso

<!ELEMENT keyBinding EMPTY>

<!ATTLIST keyBinding

configuration      CDATA #IMPLIED

command            CDATA #IMPLIED

locale             CDATA #IMPLIED

platform           CDATA #IMPLIED

contextId          CDATA #IMPLIED

string             CDATA #IMPLIED

scope              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED

commandId          CDATA #IMPLIED

keySequence        CDATA #IMPLIED>

Este elemento permite asignar secuencias de teclas a los mandatos. Utilice en su lugar el elemento key en el punto de extensión "org.eclipse.ui.bindings".



El archivo plugin.xml del plug-in org.eclipse.ui utiliza ampliamente el punto de extensión org.eclipse.ui.commands.

Los manejadores pueden registrarse con los mandatos que utilizan org.eclipse.ui.handlers.IHandlerService. Esto puede recuperarse desde varios componentes del entorno de trabajo (por ejemplo, entorno de trabajo, ventana del entorno de trabajo, sitio de componentes, etc.) llamando a getService(IHandlerService.class).

En general, es preferible declarar todos los mandatos estáticamente (en plugin.xml). Esto es de tal manera que los usuarios pueden conectar enlaces de teclas a los mandatos. Sin embargo, es posible declarar mandatos en tiempo de ejecución. Para hacerlo, recupere org.eclipse.ui.commands.ICommandService de un componente del entorno de trabajo, llame a getCommand(yourCommandID) y después llame a Command.define(...).

Hay unas pocas implementaciones predeterminadas de estados de manejador que pueden ser útiles para los usuarios de este punto de extensión: