3

RCPアプリケーションからファイル、編集、ソース、リファクタリングなどのメニューを削除したいのですが、使用できますhideActionSet()か?または私は何をすべきですか?

4

2 に答える 2

4

それは正しい; ApplicationWorkbenchWindowAdvisorで、 postWindowOpen()をオーバーライドします。

トリッキーなビットは通常、削除するアクションセットの名前を把握することですが、古いスタンバイALT-SHIFT-F2(「プラグインメニュースパイ」のデフォルトのキーバインド)を使用して、メニューの1つをクリックすることができます削除したいアイテム。

メニュー項目が無効になっている場合、スパイはそれに関する情報を提供しないことに注意してください。

public void postWindowOpen() {
    runApplicationWorkbenchDelegate();

    // remove unwanted UI contributions that eclipse makes by default
    IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();

    for (int i = 0; i < windows.length; ++i) {
        IWorkbenchPage page = windows[i].getActivePage();
        if (page != null) {
            // hide generic 'File' commands
            page.hideActionSet("org.eclipse.ui.actionSet.openFiles");

            // hide 'Convert Line Delimiters To...'
            page.hideActionSet("org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo");

            // hide 'Search' commands
            page.hideActionSet("org.eclipse.search.searchActionSet");

            // hide 'Annotation' commands
            page.hideActionSet("org.eclipse.ui.edit.text.actionSet.annotationNavigation");

            // hide 'Forward/Back' type navigation commands
            page.hideActionSet("org.eclipse.ui.edit.text.actionSet.navigation");
        }
    }
}
于 2012-08-02T15:30:06.333 に答える
0

質問は古いですが:

Eclipseアクティビティに関するLarsVogelのチュートリアルでは、単一のメニューエントリを削除するのではなく、RCPアプリケーションでメニュー全体を非表示にする方法を示しています。

編集:あるいは、ワークベンチウィンドウに接続されたMenuManagerを使用して、メニュー/投稿を表示または非表示にすることができます。次のコードを試して、すべてのメニューを非表示にします。

WorkbenchWindow workbenchWin = (WorkbenchWindow)PlatformUI.getWorkbench().getActiveWorkbenchWindow();
MenuManager menuManager = workbenchWin.getMenuManager();
IContributionItem[] items = menuManager.getItems();

for(IContributionItem item : items) {
  item.setVisible(false);
}
于 2014-04-09T15:20:34.060 に答える