Ações e Contribuições

As classes de ação permitem que você defina os comandos do usuário independentemente de suas apresentações na UI. Isso fornece flexibilidade para alterar a apresentação de uma ação no plug-in sem alterar o código que realmente executa o comando assim que é escolhido. As classes de contribuição são utilizadas para gerenciar os itens da UI real representando os comandos. Você não programa para classes de contribuição, mas as verá em algum workbench e em JFace API.

Ações

Uma ação (IAction) representa um comando que pode ser disparado pelo usuário final. As ações são tipicamente associadas aos botões, itens de menu e itens nas barras de ferramentas.

Embora as ações não se coloquem na UI, elas tem propriedades orientadas da UI, como texto de dica de ferramenta, texto de etiqueta e uma imagem. Isso permite que outras classes construam widgets para a apresentação da ação.

Quando o usuário dispara a ação na UI, o método de execução da ação é chamado para executar o trabalho atual. Um padrão comum no método de execução é consultar as seleções do workbench e manipular os objetos que são selecionados. Outro padrão comum é lançar um assistente ou diálogo quando uma ação é escolhida.

Não se deve implementar diretamente a interface IAction. Em vez disso, você deve fazer classes filhas da classe Ação. Procure as classes filhas dessa classe para ver muitos padrões comuns de ações. O código abaixo implementa a ação "Sobre". É uma das ações mais simples no workbench.

   public void run() {
      new AboutDialog(workbenchWindow.getShell()).open();
   }

Já vimos as interfaces do workbench IViewActionDelegate e IEditorActionDelegate. Essas interfaces são utilizadas quando contribuem com ações de exibição ou ações do editor para o workbench. A ação que o workbench delega é inicializada com uma referência às suas exibições ou editores associados. Com esse conhecimento, eles podem navegar para a página do workbench ou janela, acessando seleções ou qualquer outra informação necessária para executar a ação.

Você implementará suas próprias classes de ação no momento que desejar definir um comando no seu plug-in. Se estiver contribuindo com ações para outras exibições e editores, você implementará ações delegadas.

Itens de contribuição

Um item de contribuição(IContributionItem) representa a parte da UI de uma ação. Mais especificamente, representa um item que é contribuído para um recurso da UI compartilhado como um menu ou barra de ferramentas.

Os itens de contribuição sabem como preencher um SWT widget específico com o item SWT apropriado que representa a contribuição.

Não se preocupe com a criação de um item de contribuição quando estiver fazendo contribuição de ações na UI do workbench. Isso é feito a seu favor quando o workbench cria itens da UI para as ações que você definiu.

Gerenciadores de contribuição

Um gerenciador de contribuição(IContributionManager) representa uma coleção de itens de contribuição que serão apresentados na UI. É possível incluir e inserir itens de contribuição utilizando IDs de contribuição de nome para colocar os itens na ordem apropriada. É possível também localizar itens por id e remover itens individuais.

Cada implementação de IContributionManager sabe como preencher um SWT widget específico com seus itens. O JFace fornece gerenciadores de contribuição para menus (IMenuManager), barras de ferramentas(IToolBarManager) e linhas de status (IStatusLineManager).

Como um desenvolvedor de plug-in, não é necessário implementar essas interfaces, mas você verá referências a alguns desses gerenciadores nos métodos API.

Copyright IBM Corporation e outros 2000, 2003.