本課程將指導您完成建立處理自訂的開放式功能表所需之 Java™ 類別的步驟。
您將建立的快速功能表是下列項目的集合:動作、分隔字元,以及包含較小動作集合的動作群組。針對本練習,您將建立構成快速功能表的
MainActionGroup 類別。此外,您還會建立另一個類別,亦即
OpenActionGroup,此類別將置換預設的開放式群組選項。
若要建立這些類別:
- 由於 MainActionGroup 類別將需要一個自訂的開放式群組,所以您將從 OpenActionGroup 類別開始。在套件瀏覽器視圖中,用滑鼠右鍵按一下您在「練習 5」中修改的 com.ibm.carma.plugin.view Eclipse 外掛程式專案,然後選取新建 > 套件。
- 在開啟的新建 Java 套件對話框中,輸入 menu 作為套件的名稱,然後按一下完成。
- 現在,建立 Java 類別。
用滑鼠右鍵按一下 menu 套件,然後選取新建 > 類別。這時將開啟新建 Java 類別對話框。
- 輸入 CustomOpenActionGroup 作為類別的名稱。
- 按一下超類別文字欄位右側的瀏覽按鈕。在開啟的選取超類別對話框中,輸入過濾文字 OpenActionGroup。選取隸屬於 com.ibm.carma.ui.view 套件的類別,然後按一下確定。
- 按一下完成來關閉新建 Java 類別對話框,並建立該類別。
- 您將要置換 fillContextMenu 方法,來提供快速功能表開放式區段的自訂內容。針對快速功能表的開放式區段,您將需要顯示除開啟和開啟工具功能表選項之外的所有內容。達到此目的的最簡單方式,就是從 OpenActionGroup 區段取得預設內容,然後移除開啟和開啟工具功能表選項。
下列虛擬碼對此進行了示範:
get the default items;
for each item
{
if(item is open or open with)
{
remove it from the list;
}
}
請利用下列範例程式碼來實作此功能:
public void fillContextMenu(IMenuManager menu)
{
super.fillContextMenu(menu);
IContributionItem[] myItems = menu.getItems();
for(int i = 0; i < myItems.length; i++)
{
IContributionItem item = myItems[i];
if(item.getId() != null)
{
if(item.getId().equals(OpenAction.ID) || item.getId().equals("com.ibm.carma.ui.openWithSubMenu"))
{
menu.remove(item);
}
}
}
}
- 自動匯入所需的任何套件及類別。請確保已匯入下列所有項目:
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
import com.ibm.carma.ui.action.OpenAction;
import com.ibm.carma.ui.view.OpenActionGroup;
- 儲存原始檔,並對任何錯誤進行除錯。