2.1
O ponto de extensão org.eclipse.ui.commands
é utilizado para declarar comandos e categorias de comandos, recorrendo aos elementos command
e category
. Um comando é uma representação abstracta de um comportamento semântico, mas não é uma implementação na verdadeira acepção da palavra. Isto permite a diferentes programadores contribuir com comportamentos específicos para as suas partes individuais. Por exemplo, poderá haver um comando de "colar" com uma implementação num editor e uma implementação diferente num widget de explorador. Estas implementações são denominadas operadores.
Os comandos podem também ser vistos como apontador para função declarativa ou
rotinas de tratamento de sinais.
<!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 é utilizado para definir comandos. Um comando representa um pedido do utilizador que pode ser processado por uma acção e deve ser exclusivo em termos semânticos, em relação a outros comandos. Não defina um comando caso já exista outro definido com o mesmo significado.Caso exista mais do que um destes elementos com o mesmo atributo id
, apenas o último elemento declarado (por ordem de leitura do registo de plugin) é considerado válido. Consulte os pontos de extensão org.eclipse.ui.actionSets e org.eclipse.ui.editorActions para compreender a ligação entre acções e comandos.
categoryId
.Um id exclusivo da categoria para este comando. Se este comando não especificar uma categoria, não deixará de aparecer na UI juntamente com outros comandos com categorias específicas.
A partir de: 3.0
O operador predefinido deste comando (consulte o ponto de extensão
org.eclipse.ui.bindings). Caso não haja outro operador activo, este operador estará activo. Este operador entrará em conflito com outras definições de operador que não especifiquem quaisquer condições activeWhen
. Caso esteja a criar um IExecutableExtension
, pode utilizar o elemento defaultHandler
em seu lugar.
A partir de: 3.1
O id de um commandParameterType
que indica o tipo de valor devolvido por este comando.
A especificação de um returnTypeId
permite aos clientes executar o
comando para associar o valor devolvido com um tipo Java e converter o valor
para uma forma Cadeia que pode ser armazenado e/ou transmitido para outro comando
que aceita parâmetros do mesmo tipo.
A partir de: 3.2
O identificador do contexto de ajuda que em geral está relacionado com este comando. As rotinas de tratamento podem substituir este identificador de contexto para facultar uma ajuda mais específica para os seus comportamentos.
A partir de: 3.2
<!ELEMENT category EMPTY>
<!ATTLIST category
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED>
Na UI, os comandos estão frequentemente organizados por categorias, para facilitar a sua gestão. Este elemento é utilizado para definir estas categorias. Os comandos podem adicionar-se a apenas uma categoria. Caso exista mais do que um destes elementos com o mesmo atributo id
, apenas o último elemento declarado (por ordem de leitura do registo de plugin) é considerado válido.
<!ELEMENT commandParameter (values?)>
<!ATTLIST commandParameter
id CDATA #REQUIRED
name CDATA #REQUIRED
values CDATA #IMPLIED
typeId CDATA #IMPLIED
optional (true | false) "true">
Define um parâmetro que deverá ser compreensível para um comando.Um parâmetro consiste numa forma de facultar mais informações a um operador no tempo de execução. Por exemplo, um comando "show view" (mostrar vista) poderá tomar uma vista por um parâmetro. Os operadores deverão compreender estes parâmetros para que possam ser tratados como APIs.
A partir de: 3.1
org.eclipse.core.commands.IParameterValues
. Caso esta classe não seja especificada, o utilizador tem de especificar o elemento mais detalhadovalues
. Consulte org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT commandParameterType EMPTY>
<!ATTLIST commandParameterType
id CDATA #REQUIRED
type CDATA #IMPLIED
converter CDATA #IMPLIED>
Define o tipo de objecto de um commandParameter e pode especificar uma
subclasse
org.eclipse.core.commands.AbstractParameterValueConverter
para
converter entre valores e objectos dos parâmetros de uma cadeia.
A partir de: 3.2
java.lang.Object
será utilizado como tipo de parâmetro. org.eclipse.core.commands.AbstractParameterValueConverter
.
O conversor deve produzir e consumir objectos do tipo indicado no atributo type
.
Se esta classe não for especificada, esta função para converter entre a
cadeia e os valores de objectos para este tipo de parâmetro não estará
disponível (o getValueConverter()
na classe
ParameterType
será devolvido como nulo
).<!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
A versão mas detalhada do atributo values
em commandParameter
.
A partir de: 3.1
org.eclipse.core.commands.IParameterValues
. Caso esta classe não seja especificada, o utilizador tem de especificar o elemento mais detalhadovalues
. Consulte org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
Um valor possível para um parâmetro.
A partir de: 3.1
IExecutableExtension
.IExecutableExtension
.<!ELEMENT defaultHandler (parameter)>
<!ATTLIST defaultHandler
class CDATA #REQUIRED>
O operador predefinido deste comando. Caso não haja outro operador activo, este operador estará activo. Este operador entrará em conflito com outras definições de operador que não especifiquem quaisquer condições activeWhen
. Caso não esteja a criar um IExecutableExtension
, pode utilizar o atributo defaultHandler
em seu lugar.
A partir de: 3.1
org.eclipse.core.commands.IHandler
.<!ATTLIST state
class CDATA #IMPLIED
id CDATA #REQUIRED>
A informação do estado partilhada entre todas as rotinas de tratamento e potencialmente mantidas entre sessões. Geralmente, é algo como um estado de caixa de verificação ou como a etiqueta de uma rotina de tratamento. O estado é apenas uma classe carregada para cuidar do estado. Para mais detalhes, consulte a Informações sobre a API.
A partir de: 3.2
org.eclipse.core.commands.State
.
Consulte as Informações sobre a API.
Um identificador exclusivo para este estado. Este identificador é utilizado para
manter o estado entre sessões (se o estado for uma instância de
org.eclipse.jface.commands.PersistentState
). Alguns
identificadores comuns (consulte
org.eclipse.jface.menus.IMenuStateIds
) são compreendidos quando o
comando está a ser composto nos menus ou nas barras de ferramentas.
O identificador necessita apenas de ser exclusivo no comando que define o estado.
<!ATTLIST class
class CDATA #REQUIRED>
A classe que pode ser carregada para armazenar o estado deste comando. Este
elemento é utilizado se desejar passar vários parâmetros para um org.eclipse.core.runtime.IExecutableExtension
.
A partir de: 3.2
org.eclipse.core.commands.State
.
Consulte as Informações sobre a API. <!ELEMENT keyConfiguration EMPTY>
<!ATTLIST keyConfiguration
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED
parentId CDATA #IMPLIED>
Este elemento é utilizado para definir configurações de teclas. Caso exista mais do que um destes elementos com o mesmo atributo id
, apenas o último elemento declarado (por ordem de leitura do registo de plugin) é considerado válido. Utilize o ponto de extensão "org.eclipse.ui.bindings" em seu lugar.
<!ELEMENT context EMPTY>
<!ATTLIST context
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED
parentId CDATA #IMPLIED>
Este elemento é utilizado para definir contextos. Caso exista mais do que um destes elementos com o mesmo atributo id
, apenas o último elemento declarado (por ordem de leitura do registo de plugin) é considerado válido. Utilize o ponto de extensão org.eclipse.ui.contexts em seu lugar.
<!ELEMENT scope EMPTY>
<!ATTLIST scope
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED>
Este elemento é utilizado para definir âmbitos. Caso exista mais do que um destes elementos com o mesmo atributo id
, apenas o último elemento declarado (por ordem de leitura do registo de plugin) é considerado válido.
@deprecated Utilize o ponto de extensão "org.eclipse.ui.contexts" em seu
lugar.
<!ELEMENT activeKeyConfiguration EMPTY>
<!ATTLIST activeKeyConfiguration
value CDATA #IMPLIED
keyConfigurationId CDATA #IMPLIED>
Este elemento é utilizado para definir a configuração de teclas activa inicial de Eclipse. Caso exista mais do que um destes elementos, apenas o último elemento declarado (por ordem de leitura do registo de plugin) é considerado válido.
Este elemento foi substituído por uma preferência.Caso a aplicação do utilizador necessite de alterar a configuração de teclas predefinida, especifique o seguinte no ficheiro plugin_customization.ini
: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id
.
id
) do elemento keyConfiguration que deve estar activo inicialmente.
id
) do elemento keyConfiguration que deve
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 atribuir sequências de teclas a comandos. Utilize o elemento key
no ponto de extensão "org.eclipse.ui.bindings" em seu lugar.
java.util.Locale
.platform
são o conjunto de valores possíveis devolvidos por org.eclipse.swt.SWT.getPlatform()
.schemeId
no elemento key
, no novo ponto de extensão "org.eclipse.ui.bindings".A sequência de teclas a atribuir ao comando. As sequências de teclas são formadas por um ou mais batimentos de teclas, em que um batimento de tecla corresponde a uma tecla do teclado que pode ser premida, opcionalmente, em conjunto com um ou mais do que um dos seguintes modificadores: Ctrl, Alt, Shift e Command. Os batimentos de teclas são separados por espaços e os modificadores são separados por caracteres '+'.
As teclas modificadoras também podem ser expressas de forma independente da plataforma. Em MacOS X, por exemplo, "Command" é quase sempre utilizado em vez de "Ctrl". Por isso, é facultado "M1", que irá correlacionar a "Ctrl" ou "Command", consoante for adequado. De forma similar, "M2" corresponde a "Shift"; "M3" corresponde a "Alt"; e "M4" corresponde a "Ctrl" (MacOS X). Caso sejam adicionadas mais plataformas, estes nomes alternativos serão relacionados a predefinições válidas da plataforma.
A sintaxe desta cadeia está definida em org.eclipse.ui.internal.keys
. Resumidamente, cadeia não é sensível a letras maiúsculas e minúsculas, ainda que seja preferível utilizar apenas letras maiúsculas, por uma questão de estilo. Caso a tecla seja uma letra, basta anexar a letra. Caso a tecla seja especial (i.e., não ASCII), utilize um dos seguintes valores: 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 ou SCROLL_LOCK. Caso a tecla seja uma tecla ASCII não imprimível, utilize um dos seguintes valores: BS, CR, DEL, ESC, FF, LF, NUL, SPACE, TAB ou VT. Tenha em atenção que a tecla principal de introdução/retorno é CR.
O ficheiro plugin.xml
no plugin org.eclipse.ui
utiliza amplamente o ponto de extensão org.eclipse.ui.commands
.
Uma rotina de tratamento pode ser registada com os comandos através da
utilização de org.eclipse.ui.handlers.IHandlerService
. Este
registo pode ser obtido a partir de vários componentes da área de trabalho (como por
exemplo, área de trabalho, janela da área de trabalho, componentes de sítios, etc.) ao chamar getService(IHandlerService.class)
.
Geralmente, é preferível declarar todos os comandos estaticamente (em
plugin.xml
). Esta acção permite aos utilizadores anexar associações de teclas aos comandos.
Contudo, é possível declarar comandos em tempo de execução. Para o fazer,
obtenha o org.eclipse.ui.commands.ICommandService
a partir de uma
componente da área de trabalho, chame o getCommand(yourCommandID)
e depois o Command.define(...)
.
Existem algumas implementações predefinidas dos estados de rotina de tratamento que podem ser úteis para os utilizadores deste ponto de extensão:
Copyright (c) 2000, 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