Rational Developer for System z


课程 2:创建 CustomMainActionGroup Java™ 类

本课程将指导您完成创建 CustomMainActionGroup 类时需要执行的步骤。此类模拟 CARMA 缺省 MainActionGroup 类的功能。但是,您将创建的 CustomMainActionGroup 类将使用已创建的 CustomOpenActionGroup 类,而不使用缺省 OpenActionGroup

要创建 CustomMainActionGroup 类,请执行下列操作:

  1. 通过在包资源管理器视图中右键单击 menu 包,然后选择新建 > 来创建新类。
  2. 在打开的新建 Java 类对话框中,输入 CustomMainActionGroup 作为名称。单击位于超类文本字段右边的浏览按钮。在出现的选择超类对话框中,输入过滤器 CarmaBrowserActionGroup。选择 com.ibm.carma.ui.view 包中所包含的相匹配的类,然后单击确定
  3. 选中来自超类的构造函数复选框。
  4. 单击完成以关闭新建 Java 类对话框并创建此类。
  5. 您首先需要执行的操作就是为 NewMenuActionGroupNavigationActionGroupOpenActionGroupConnectionActionGroupDisplayActionGroupPropertyDialogAction 创建全局变量,其代码与以下样本代码相似:
    	private NewMenuActionGroup _newMenuActionGroup;
    	private NavigationActionGroup _navigationActionMenu;
    	private OpenActionGroup _openActionGroup;
    	private ConnectionActionGroup _connectionActionGroup;
    	private DisplayActionGroup _displayActionGroup;
    	private PropertyDialogAction _propertyAction;
    提示: 应当在此类顶部并且在任何方法声明之前声明这些变量。
  6. 现在,您将需要覆盖 makeActions 方法,以将填充上下文菜单所需要的组和操作实例化。对于 OpenActionGroup,务必实例化 CustomOpenActionGroup 类而不是缺省 OpenActionGroup 类。请使用下列源代码:
    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. 使用已更新的组、操作和分隔符列表来覆盖 fillContextMenu() 方法。要使它看起来像上下文菜单,请使用以下示例代码以按照相同的顺序将各项添加至上下文菜单:
    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. 导入所需要的所有类和包。请确保 import 语句中包括下列所有内容:
    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. 保存源代码,并调试存在的任何错误。

使用条款 | 反馈



本信息中心基于 Eclipse 技术。(http://www.eclipse.org)