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 ambiente de trabalho 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 ambiente de trabalho 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 ambiente de trabalho.

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

Já vimos as interfaces do ambiente de trabalho IViewActionDelegate e IEditorActionDelegate. Essas interfaces são utilizadas quando contribuem com ações de exibição ou ações do editor para o ambiente de trabalho. A ação que o ambiente de trabalho delega é inicializada com uma referência às suas exibições ou editores associados. Com esse conhecimento, eles podem navegar para a página do ambiente de trabalho 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 ambiente de trabalho. Isso é feito a seu favor quando o ambiente de trabalho 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.