Lição 2: Criar a classe CustomMainActionGroup Java™

Esta lição o guia pelas etapas para criar uma classe CustomMainActionGroup. Essa classe emula a funcionalidade da classe padrão MainActionGroup do CARMA. No entanto, em vez de usar o padrão OpenActionGroup, a classe CustomMainActionGroup que você cria usa a classe CustomOpenActionGroup que você criou.

Sobre esta Tarefa

Para criar a classe CustomMainActionGroup:

Procedimento

  1. Crie uma nova classe clicando com o botão direito do mouse no pacote menu na visualização Package Explorer , e selecionando Novo > Class.
  2. Na caixa de diálogo Nova Classe Java que se abre, digite CustomMainActionGroup como o nome. Clique no botão Navegar à direita do campo de texto Superclasse. Na caixa de diálogo Seleção de superclasse que aparece, insira o filtro, CarmaBrowserActionGroup.  Selecione a classe de correspondência que está contida no pacote com.ibm.carma.ui.view , e clique em OK.
  3. Selecione a caixa de seleção Constructors from superclass .
  4. Clique em Concluir para fechar o diálogo Nova Classe Java e criar a classe.
  5. A primeira coisa que você vai querer fazer é criar variáveis globais para um NewMenuActionGroup, um NavigationActionGroup, um OpenActionGroup, um ConnectionActionGroup, um DisplayActionGroup, e um PropertyDialogAction, semelhante ao código de amostra a seguir:
    	private NewMenuActionGroup _newMenuActionGroup;
    	private NavigationActionGroup _navigationActionMenu;
    	private OpenActionGroup _openActionGroup;
    	private ConnectionActionGroup _connectionActionGroup;
    	private DisplayActionGroup _displayActionGroup;
    	private PropertyDialogAction _propertyAction;
    Dica: Estas variáveis devem ser declaradas na parte superior da classe antes de qualquer declaração de método.
  6. Agora você quer substituir o método makeActions para instanciar os grupos e ações que são necessários para preencher o menu. Com o OpenActionGroup, certifique-se de instanciar sua classe CustomOpenActionGroup em vez do padrão. Use o seguinte código de origem:
    protected void makeActions()
    {
       _newMenuActionGroup = new NewMenuActionGroup();
       _navigationActionMenu = new NavigationActionGroup(getBrowser());
       _openActionGroup = new CustomOpenActionGroup();
       _connectionActionGroup = new ConnectionActionGroup(getBrowser());
       _displayActionGroup = new DisplayActionGroup(getBrowser());
       _propertyAction = new PropertyDialogAction(getBrowser().getViewSite(), getViewer());
    }
  7. Substituir o método fillContextMenu() com a lista atualizada de grupos, ações e separadores. Para fazer parecer um menu pop-up, use a mesma ordem para incluir itens no menu usando o código de exemplo a seguir:
    public void fillContextMenu(IMenuManager menu)
    {
       ActionContext myContext = new ActionContext(getViewer().getSelection());
       _newMenuActionGroup.getContext();
    
       _newMenuActionGroup.setContext(myContext);
       _newMenuActionGroup.fillContextMenu(menu);
    
       _navigationActionMenu.setContext(myContext);
       _navigationActionMenu.fillContextMenu(menu);
    
       menu.add(new Separator("open"));		
       _openActionGroup.setContext(myContext);
       _openActionGroup.fillContextMenu(menu);
    
       menu.add(new Separator("refractor"));
    		
       menu.add(new Separator("connect"));
    
       _connectionActionGroup.setContext(myContext);
       _connectionActionGroup.fillContextMenu(menu);
       _connectionActionGroup.updateActionBars();
    
       menu.add(new Separator("display"));
    
       _displayActionGroup.setContext(myContext);
       _displayActionGroup.fillContextMenu(menu);
    
       menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
       menu.add(new Separator("project"));
       menu.add(new Separator("properties"));
       menu.add(_propertyAction);
    }
  8. Importe todas as classes e pacotes necessários. Certifique-se de que todos os itens a seguir estão incluídos nas instruções de importação:
    import org.eclipse.jface.action.IMenuManager;
    import org.eclipse.jface.action.Separator;
    import org.eclipse.ui.IWorkbenchActionConstants;
    import org.eclipse.ui.actions.ActionContext;
    import org.eclipse.ui.dialogs.PropertyDialogAction;
    
    import com.ibm.carma.ui.view.BaseCarmaBrowser;
    import com.ibm.carma.ui.view.CarmaBrowserActionGroup;
    import com.ibm.carma.ui.view.ConnectionActionGroup;
    import com.ibm.carma.ui.view.DisplayActionGroup;
    import com.ibm.carma.ui.view.NavigationActionGroup;
    import com.ibm.carma.ui.view.NewMenuActionGroup;
    import com.ibm.carma.ui.view.OpenActionGroup;
  9. Salve a origem e depure qualquer erro.