Gravando um comando que implementa o Java IAction
O Menu Manager fornece o ponto de extensão com.ibm.tpf.menumanager.actions para que você possa contribuir com as suas próprias ações Java™ para o Gerente de Menu. Essas ações devem ser objetos de ação (classes Java) que implementam a interface org.eclipse.jface.action.IAction .
Você pode utilizar este ponto de extensão para permitir que o Gerente de Menu reconheça ações Java, como classes de ação que implementam a interface org.eclipse.jface.action.IAction . Ao criar uma ação Java, é possível executar operações mais complexas. Por exemplo, você pode escrever uma ação Java que procura ou manipula o arquivo selecionado.
Depois de criar as ações Java, você pode contribuir com eles através deste ponto de extensão para que possam ser adicionados aos menus usando o Gerenciador de Menu. Você pode contribuir com ações para o Menu Manager, incluindo elementos de ação.
Cada elemento da ação é constituído por um ID, classe e atributos separateThread. O ID é um identificador único para a ação e a classe é uma classe Java que implementa a interface org.eclipse.jface.action.IAction . O atributo separateThread determina se a ação que está sendo contribuída é executada em um encadeamento separado quando
iniciado a partir do menu pop-up.
Nota: Ações que executam em uma thread diferente da thread principal devem fazer chamadas especiais (como o método syncExec em org.eclipse.swt.widgets.Display) para usar qualquer uma das funções na GUI.
Ao criar uma ação para contribuir com o ponto de extensão, você pode implementar mais
interfaces para função extra. Por exemplo, você pode criar uma ação que seja notificada quando a seleção é alterada, com as
interfaces a seguir:- org.eclipse.jface.viewers.ISelectionChangedListener - notifica sua ação quando a seleção for alterada
para que seja possível ativar ou desativar a sua ação de acordo com a seleção na visualização.Dica: Se a sua ação se estender org.eclipse.ui.actions.SelectionListenerAction, ele implementa automaticamente IAction e ISelectionChangedListener.
- com.ibm.tpf.menumanager.extensionpoint.api.ISiteDependentAction - assegura que sua ação tenha sempre uma
referência ao ViewPart atual, quando executada. Essa interface permite que sua ação obtenha uma referência ao shell e exiba janelas usando o shell ViewPart
como pai.Nota: Quando as ações são iniciadas a partir do menu pop-up, o Gerente de Menu executa essas ações usando o método runWithEvent . O evento que é passado para as ações contém a seleção, a menos que as ações tenham que ser ativadas e desativadas com base na seleção. Você não precisa implementar o ISelectionListener.
- com.ibm.tpf.connectionmgr.job.ILongRunJob - exibe sua ação na visualização Monitor de Progresso (Progress Monitor). É possível cancelar uma tarefa de longa execução na visualização Progresso; se sua ação for cancelada, você poderá limpar, se necessário.
O que se segue é um exemplo de algumas ações contribuídas para o Menu Manager usando o ponto de extensão.

O exemplo a seguir mostra as propriedades do elemento de ação:
O exemplo a seguir mostra o código-fonte XML para a ação renomear (rename):

<extension
id="com.ibm.tpf.actions.f"
name="%TPFFileAndProjectActionsGroup.Name"
point="com.ibm.tpf.menumanager.actions">
<action
separateThread="false"
class="com.ibm.tpf.core.ui.actions.TPFRenameAction"
id="com.ibm.tpf.core.ui.actions.rename">
</action>
</extension>