Ligações

org.eclipse.ui.bindings

3.1

O ponto de extensão org.eclipse.ui.bindings é utilizado para declarar ligações e esquemas. Esquemas são conjuntos de uma ou mais ligações. Uma ligação é um mapeamento entre um determinado grupo de condições, alguma entrada do usuário e um comando acionado.

Todas as ligações requerem um acionador de algum tipo, um contexto no qual elas estão ativas e um esquema no qual existem. Se você não tiver certeza sobre qual contexto fechar, deixe-o em branco. Ele será padronizado para o contexto "org.eclipse.ui.contexts.window". Esse contexto indica que a ligação se aplicará em qualquer janela principal do Eclipse. Quando o contexto se torna ativo, a ligação se torna ativa também. Ligações de contextos filhos substituirão ligações de contextos pai. Para obter informações adicionais sobre contextos, consulte o ponto de extensão org.eclipse.ui.contexts.

Se uma ligação não definir um identificador de comando, ele será um marcador de exclusão. Isso significa que, se todas as condições forem atendidas, ele cancelará qualquer ligação com o mesmo acionador no mesmo contexto. Esse mecanismo pode ser utilizado, por exemplo, para alterar uma ligação em uma plataforma específica.

Um tipo de ligação é uma ligação key (isto é, um atalho do teclado). Por exemplo, a ligação de Ctrl+C com Copy é considerada uma ligação key. O acionador para uma ligação key é uma seqüência de pressionamentos de teclas.

Um esquema é um grupo dessas ligações em um conjunto que o usuário final pode selecionar. Por exemplo, um usuário pode desejar utilizar o esquema padrão, mas pode também desejar um esquema no estilho Emacs ou um esquema no estilo Brief.

<!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 agrupamento de ligações que um usuário final pode optar por utilizar.

Esquemas podem herdar ligações de um esquema pai. Isso tem o objetivo de facilitar a criação de conjuntos de ligações customizadas por desenvolvedores de plug-ins. Uma ligação ativa definida em um esquema filho sempre substituirá uma ligação ativa em um esquema pai, se eles tiverem o mesmo acionador. Essa técnica é utilizada para fornecer o esquema Emacs no workbench.



<!ELEMENT key (parameter)>

<!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 ligação entre alguma entrada do teclado e a ativação de um comando.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

id    CDATA #IMPLIED

value CDATA #IMPLIED>

Um nome e valor de parâmetro que devem ser transmitidos para o comando quando ele é executado. Isso permite que o comando seja qualificado de alguma maneira. Por exemplo, um comando "Show View" deve aceitar o id da visualização como um parâmetro.



<extension point=

"org.eclipse.ui.bindings"

>

<key sequence=

"M2+F5"

commandId=

"commandId"

schemeId=

"default"

contextId=

"windows"

/>

<scheme name=

"Padrão"

description=

"Atalhos padrão para Eclipse"

id=

"default"

/>

</extension>

Não existe nenhuma API pública para definir ligações. Para tentar obter estabilidade para o usuário, as ligações são definidas apenas por meio de pontos de extensão. Se você for um aplicativo RCP, deverá poder substituir esse comportamento no WorkbenchAdvisor.

Para que as ligações funcionem, você deve ter definido um comando. Para que a ligação funcione, o comando deve ter uma rotina de tratamento ativa. As rotinas de tratamento podem ser registradas de maneira programática. Consulte o ponto de extensão org.eclipse.ui.handlers.