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
- Crie uma nova classe clicando com o botão direito do mouse no pacote
menuna visualização Package Explorer , e selecionando Novo > Class. - 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. - Selecione a caixa de seleção Constructors from superclass .
- Clique em Concluir para fechar o diálogo Nova Classe Java e criar a classe.
- A primeira coisa que você vai querer fazer é criar variáveis globais para um
NewMenuActionGroup, umNavigationActionGroup, umOpenActionGroup, umConnectionActionGroup, umDisplayActionGroup, e umPropertyDialogAction, 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. - Agora você quer substituir o método
makeActionspara instanciar os grupos e ações que são necessários para preencher o menu. Com oOpenActionGroup, certifique-se de instanciar sua classeCustomOpenActionGroupem 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()); } - 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); } - 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; - Salve a origem e depure qualquer erro.