El punto de extensión org.eclipse.ui.bindings
se utiliza para
declarar enlaces y esquemas. Los esquemas son conjuntos de uno o más enlaces. Un enlace es una correlación
entre un grupo de condiciones determinados, entradas de usuario y un mandato
desencadenado.
Todos los enlaces necesitan un desencadenante de alguna clase, un contexto en
el que están activos y el esquema en el que existen. Si no está seguro de qué contexto debe elegir, déjelo en blanco. Tomará por
omisión el contexto "org.eclipse.ui.contexts.window"
. Este
contexto quiere decir que el enlace se aplicará en cualquier ventana principal
de Eclipse. Cuando el contexto pase a estar activo, el enlace también pasará a estarlo. Los enlaces de contextos hijos prevalecerán sobre los enlaces de contextos
padres. Para obtener más información sobre los contextos, consulte el punto de
extensión org.eclipse.ui.contexts
.
Si un enlace no define un identificador de mandato, es un marcador de supresión. Esto quiere decir que, si se cumplen todas las condiciones, cancelará todos los enlaces que tengan el mismo desencadenante en el mismo contexto. Este mecanismo puede utilizarse, por ejemplo, para cambiar un enlace en una plataforma determinada.
Un tipo de enlace es un enlace key
(es decir, un acceso directo de
teclado). Por ejemplo, enlazar Control+C
con Copiar
se
considera un enlace key
. El desencadenante de un enlace de
teclas (key) es una secuencia de pulsaciones.
Un esquema es un grupo de estos enlaces que forman un conjunto que el usuario final puede seleccionar. Por ejemplo, es posible que un usuario desee utilizar el esquema por omisión, pero también podría desear un esquema Emacs-style o Brief-style.
<!ELEMENT extension (scheme , key)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT scheme EMPTY>
<!ATTLIST scheme
id CDATA #REQUIRED
name CDATA #REQUIRED
description CDATA #IMPLIED
parentId CDATA #IMPLIED>
Un esquema es un agrupamiento de enlaces que un usuario final puede optar por utilizar.
Es posible que los esquemas hereden enlaces de un esquema padre. Esto está pensado para facilitar a los desarrolladores de conectores la creación de conjuntos de enlaces personalizados. Un enlace activo definido en un esquema hijo prevalecerá siempre sobre un enlace activo en un esquema padre, si ambos tienen el mismo desencadenante. Esta técnica se utiliza para proporcionar el esquema Emacs en el entorno de trabajo.
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
Un enlace entre una entrada del teclado y el desencadenante de un mandato.
secuencia de teclas de este enlace. Esta secuencia de teclas debe constar de
una o varias pulsaciones. Las pulsaciones de teclas están separadas por espacios. Las pulsaciones consisten en presionar una o más teclas al mismo tiempo. Deben
ser cero o más teclas modificadoras y una tecla más. Las teclas se separan con el carácter +
.
Las teclas modificadoras reconocidas son M1
, M2
,
M3
, M4
, ALT
, COMMAND
,
CTRL
y SHIFT
. Las teclas modificadoras "M" son una
forma independiente de la plataforma de representar teclas y en general es la
preferida. M1
es la tecla COMANDO
en MacOS X y la tecla
Control
se encuentra en la mayoría de las demás plataformas. M2
es la tecla MAYÚS
. M3
es la tecla
Opción
en MacOS X y la tecla ALT
se encuentra en
la mayoría de las demás plataformas. M4
es la tecla
Control
en MacOS X y no está definida en otras
plataformas.
Por lo general, la tecla real suele especificarse como el carácter ASCII, en
mayúsculas. Así, por ejemplo F
o ,
son ejemplos de estas teclas. No
obstante, hay algunas teclas especiales que no tienen representación ASCII
imprimible. La siguiente es una lista de las teclas especiales actuales:
ARROW_DOWN
,
ARROW_LEFT
, ARROW_RIGHT
, ARROW_UP
,
BREAK
, BS
, CAPS_LOCK
, CR
, DEL
, END
, ESC
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, F13
, F14
, F15
, FF
, HOME
, INSERT
, LF
, NUL
, 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
, SCROLL_LOCK
, SPACE
, TAB
y VT
.
Algunas teclas especiales comunes tienen nombres alternativos. Por ejemplo, se
acepta tanto ESC
como ESCAPE
, y CR
,
INTRO
y RETURN
son todas la misma.
También se recomienda encarecidamente que las secuencias de teclas sean cortas. Una o dos es lo máximo que debería necesitar. Utilice contextos para dar distintos significados a las secuencias de teclas en diferentes partes de la aplicación. Como máximo, no debería utilizar ninguna secuencia de teclas que contuviera más de cuatro pulsaciones.
org.eclipse.ui.contexts
. Si no se especifica, toma como valor por omisión
org.eclipse.ui.contexts.window
.Identificador del mandato que debe ejecutarse cuando se desencadena este enlace.
Si no se especifica ningún identificador de mandato, es un marcador de supresión. Esto quiere decir que cualquier enlace en el mismo contexto con la misma secuencia, plataforma y local se volverá inactivo cuando se active este enlace. Si no se especifica la plataforma o el entorno local en una supresión, coincidirá con cualquier plataforma o entorno local.
SWT.getPlatform()
. Por ejemplo, las series siguientes se consideran válidas: win32
,
gtk
, motif
, carbon
y photon
.Locale.toString()
. Por ejemplo, tanto "en"
como "en_CA"
se entienden.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Un nombre de parámetro y valor que debe pasarse al mandato cuando se ejecuta. Permite que el mandato se califique de alguna manera. Por ejemplo, el mandato "Mostrar vista" podría aceptar el ID de vista como parámetro.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Predeterminado"
description=
"Atajos predeterminados para Eclipse"
id=
"default"
/>
</extension>
No hay ninguna API pública para definir enlaces. Para intentar alcanzar
estabilidad para el usuario, los enlaces sólo se definen a través de los puntos
de extensión. Si tiene una aplicación RCP, debería poder alterar temporalmente este
comportamiento en WorkbenchAdvisor
.
Para que los enlaces funcionen, debe haber definido un mandato. Para que el enlace funcione, el mandato debe tener un manejador activo. Los manejadores pueden registrarse de forma programática; consulte el punto de extensión org.eclipse.ui.handlers.
Copyright (c) 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