本课程将指导您完成创建 CustomMainActionGroup 类时需要执行的步骤。此类模拟 CARMA 缺省 MainActionGroup 类的功能。但是,您将创建的 CustomMainActionGroup 类将使用已创建的 CustomOpenActionGroup 类,而不使用缺省 OpenActionGroup。
要创建 CustomMainActionGroup 类,请执行下列操作:
private NewMenuActionGroup _newMenuActionGroup; private NavigationActionGroup _navigationActionMenu; private OpenActionGroup _openActionGroup; private ConnectionActionGroup _connectionActionGroup; private DisplayActionGroup _displayActionGroup; private PropertyDialogAction _propertyAction;
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());
}
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);
}
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;