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.
categoryId
en su lugar.ID exclusivo de la categoría de este mandato. Si el mandato no especifica una categoría, seguirá apareciendo en todas las UI, junto con otros mandatos categorizados específicamente.
Desde: 3.0
manejador por omisión de este mandato (consulte el punto de extensión (consulte el punto de extensión
org.eclipse.ui.bindings.) 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 elemento
defaultHandler
.
Desde: 3.1
ID de un commandParameterType
que indica el tipo de valor devuelto por este mandato. Al especificar
returnTypeId
se permite que los clientes que están ejecutando el mandato asocien el valor devuelto con un
tipo Java y que conviertan el valor en un String que puede almacenarse y/o pasarse a otro mandato que acepte parámetros
del mismo tipo.
Desde: 3.2
Identificador del contexto de ayuda que se relaciona con este mandato en general. Los manejadores pueden alterar temporalmente este identificador de contexto para que proporcione ayuda que sea más específica de sus comportamientos particulares.
Desde: 3.2
<!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
org.eclipse.core.commands.IParameterValues
. Si no se especifica esta clase, debe especificar el elemento más detallado
values
. Consulte org.eclipse.core.runtime.IExecutableExtension
.<!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
java.lang.Object
como el
tipo de parámetro.org.eclipse.core.commands.AbstractParameterValueConverter
.
El conversor debe generar y consumir objetos del tipo indicado en el atributo type
. Si esta clase no se
especifica, este recurso para convertir entre valores de serie y de objeto para este tipo de parámetro no estará
disponible (getValueConverter()
en la clase ParameterType
devolverá null
).<!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
La versión más detallada del atributo values
en
commandParameter
.
Desde: 3.1
org.eclipse.core.commands.IParameterValues
. Si no se especifica esta clase, debe especificar el elemento más detallado
values
. Consulte org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
Un valor posible para un parámetro.
Desde: 3.1
IExecutableExtension
.IExecutableExtension
.<!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
org.eclipse.core.commands.IHandler
.<!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
org.eclipse.core.commands.State
. Consulte la información de la API.
Un identificador exclusivo para este estado. Esto se utiliza para persistir el estado entre sesiones (si el estado es
una instancia de org.eclipse.jface.commands.PersistentState
). Algunos identificadores comunes (consulte
org.eclipse.jface.menus.IMenuStateIds
) se entienden cuando el mandato se representa en los menús o las
barras de herramientas. El identificador solo necesita ser exclusivo en el mandato que define el estado.
<!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
org.eclipse.core.commands.State
. Consulte la información de la API.<!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".
<!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.
<!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".
<!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
.
id
atributo) del elemento keyConfiguration que debe estar activo inicialmente.id
) del elemento keyConfiguration que debe estar activo inicialmente.<!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".
java.util.Locale
.platform
son el conjunto de valores posibles devueltos por el método org.eclipse.swt.SWT.getPlatform()
.schemeId
en el elemento
key
del nuevo punto de extensión
"org.eclipse.ui.bindings".secuencia de teclas que debe asignarse al mandato. Las secuencias de teclas constan de una o varias pulsaciones de teclas, en las que una pulsación de tecla representa una de las teclas del teclado, que opcionalmente se pulsa en combinación con uno o varios de los siguientes modificadores: Control, Alt, Mayús y Mandato. Las pulsaciones de teclas están separadas por espacios y los modificadores están separados por caracteres '+'.
Las teclas modificadoras también pueden expresarse de una forma independiente de la plataforma. Por ejemplo, en MacOS X, "Comando" se utiliza casi siempre en lugar de "Control". Por ello proporcionamos "M1", que se correlacionará con "Control" o con "Comando" según sea lo adecuado. De manera similar, "M2" is "Mayús"; "M3" es "Alt"; y "M4" es "Control" (MacOS X). Si se añaden más plataformas, puede contar con que estos alias se correlacionarán con valores por omisión de plataforma válidos.
La sintaxis correspondiente a esta serie se define en
org.eclipse.ui.internal.keys
. En pocas palabras, la serie no es
sensible a mayúsculas y minúsculas, aunque por razones de estilo se prefiere que
se escriba sólo en mayúsculas. Si la tecla es una letra, simplemente añada la letra. Si se trata de una tecla
especial (es decir, que no es ASCII), utilice uno de los valores siguientes:
ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, BREAK, CAPS_LOCK, END, F1, F2,
F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, HOME, INSERT,
NUM_LOCK, NUMPAD_0, NUMPAD_1, NUMPAD_2, NUMPAD_3, NUMPAD_4, NUMPAD_5, NUMPAD_6,
NUMPAD_7, NUMPAD_8, NUMPAD_9, NUMPAD_ADD, NUMPAD_DECIMAL, NUMPAD_DIVIDE, NUMPAD_ENTER,
NUMPAD_EQUAL, NUMPAD_MULTIPLY, NUMPAD_SUBTRACT, PAGE_UP, PAGE_DOWN, PAUSE, PRINT_SCREEN o SCROLL_LOCK. Si la tecla es una tecla ASCII no imprimible, utilice uno de los valores
siguientes: BS, CR,
DEL, ESC, FF, LF, NUL, SPACE, TAB o VT. Observe que la tecla Intro/Retorno del teclado
principal es CR.
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:
Copyright (c) 2000, 2005 IBM Corporation y otros.
Reservados todos los derechos. Este programa y sus materiales adjuntos están disponibles bajo los términos de
la licencia pública común (Eclipse Public License) v1.0 que acompaña a esta
distribución, y está disponible en
http://www.eclipse.org/legal/epl-v10.html