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 類別,而不是預設類別。 請利用下列原始碼:
    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)