O ponto de extensão org.eclipse.ui.bindings
é utilizado para declarar associações e esquemas. Os esquemas são conjuntos de uma ou mais associações. Uma associação é uma correlação entre um determinado grupo de condições, entre a entrada de um utilizador e um comando activado.
Todas as associações requerem um activador de algum tipo, um contexto no qual estarão activas e um esquema onde existirão. Caso o utilizador não saiba qual o contexto a escolher deixe em branco. O contexto predefinido é "org.eclipse.ui.contexts.window"
. Este contexto significa que a associação será aplicada a qualquer janela principal de Eclipse. Quando o contexto fica activo, a associação também fica activa. As associações de contextos descendentes irão sobrepor associações de contextos ascendentes. Para obter mais informações relativas a contextos, consulte o ponto de extensão org.eclipse.ui.contexts
.
Caso uma associação não defina um identificador de comando, então trata-se de um marcador de eliminação. Isto significa que, se todas as condições forem cumpridas, irá cancelar quaisquer associações ao mesmo activador no mesmo contexto. Este mecanismo pode ser utilizado, por exemplo, para alterar uma associação numa determinada plataforma.
Um tipo de associação é uma associação key
(de teclas) (i.e., uma tecla de atalho). Por exemplo, associar Ctrl+C
a Copy
é considerada uma associação key
(de teclas). O activador de uma associação de teclas é uma sequência de batimentos de tecla.
Um esquema é um grupo destas associações englobadas num conjunto, que o utilizador pode seleccionar. Por exemplo, um utilizador poderá querer utilizar o esquema predefinido, mas também pretende mudar um esquema Emacs-style ou um esquema 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>
Um esquema é um grupo de associações de entre as quais o utilizador final pode escolher.
Os esquemas podem herdar associações de um esquema ascendente. Esta capacidade pretende facilitar o trabalho dos programadores de plug-ins ao criar conjuntos de associações personalizados. Uma associação activa definida num esquema descendente irá sempre sobrepor uma associação activa num esquema ascendente, caso possuam o mesmo activador. Esta técnica é utilizada para facultar o esquema Emacs na área de trabalho.
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
Uma associação entre uma entrada do teclado e a activação de um comando.
A sequência de teclas desta associação. Esta sequência de teclas deve ser formada por um ou mais batimentos de tecla. Os batimentos de tecla são separados por espaços. Os batimentos de tecla são formados por uma ou mais teclas premidas ao mesmo tempo. Deve corresponder a zero ou mais teclas modificadoras e outra tecla. As teclas são separadas pelo carácter +
.
As teclas modificadoras reconhecidas são M1
, M2
, M3
, M4
, ALT
, COMMAND
, CTRL
e SHIFT
. As teclas modificadoras "M" são uma forma independente de plataforma de representar teclas e são as teclas preferidas. M1
é a tecla COMMAND
em MacOS X e a tecla CTRL
na maioria das outras plataformas. M2
é a tecla SHIFT
. M3
é a tecla Option
em MacOS X e a tecla ALT
na maioria das outras plataformas. M4
é a tecla CTRL
em MacOS X e não está definida nas restantes plataformas.
A tecla em si é normalmente especificada apenas como o carácter ASCII, em letra maiúscula. F
ou ,
são exemplos dessas teclas. Contudo, existem teclas especiais; teclas que não possuem representação ASCII passível de ser impressa. De seguida é apresentada uma lista das actuais teclas especiais: 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
e VT
.
Algumas teclas especiais comuns possuem nomes alternativos. Por exemplo, aceita-se tanto ESC
como ESCAPE
e CR
, ENTER
e RETURN
são todas iguais.
Recomenda-se vivamente que a sequência de teclas seja curta.O máximo que o utilizador deve necessitar é um ou dois batimentos de tecla. Utilize contextos para atribuir significados diferentes às sequências de teclas em partes diferentes da aplicação. No máximo, não deve utilizar qualquer sequência de teclas que contenha mais do que quatro batimentos de tecla.
org.eclipse.ui.contexts
. Caso este não esteja especificado, será utilizada a predefinição org.eclipse.ui.contexts.window
.O identificador do comando que deve ser executado quando esta associação é activada.
Caso não seja especificado qualquer identificador de comando, então corresponde a um marcador de eliminação. Isto significa que qualquer associação no mesmo contexto com a mesma sequência, plataforma ou locale, irá ficar inactiva quando esta associação ficar activa. Caso não se especifique a plataforma ou o locale numa eliminação, então corresponderá a qualquer plataforma ou locale.
SWT.getPlatform()
. Por exemplo, as seguintes cadeias são consideradas válidas: win32
, gtk
, motif
, carbon
e photon
.Locale.toString()
. Por exemplo, "en"
ou "en_CA"
são compreensíveis.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Um nome e valor de um parâmetro que deve ser transmitido ao comando quando este é executado. Isto permite que o comando seja qualificado de alguma forma. Por exemplo, um comando"Show View" (Mostrar Vista) poderá aceitar o id de vista como parâmetro.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Default"
description=
"Atalhos Predefinidos para Eclipse"
id=
"default"
/>
</extension>
Não existe qualquer API pública para definir associações. Para tentar conseguir estabilidade para o utilizador, as associações só são definidas através de pontos de extensão. Caso utilize uma aplicação RCP, deverá poder sobrepor este comportamento em WorkbenchAdvisor
.
Para que as associações funcionem, o utilizador tem de ter definido um comando. Para que a associação funcione, o comando tem de ter um operador activo. Os operadores podem ser registados programaticamente; consulte o ponto de extensão org.eclipse.ui.handlers.
Copyright (c) 2005 IBM Corporation e outros.
Todos os direitos reservados. Este programa e os materiais que o acompanham estão disponíveis sob os termos da Eclipse Public License v1.0, que acompanha esta distribuição, e estão disponíveis em http://www.eclipse.org/legal/epl-v10.html