Выполненный и Поиск появляются в Строке меню RCP

Я внезапно "Работал" и "Поиск" в строке меню моего приложения RCP. Там должен так или иначе удалить их?

6
задан Ohanes Dadian 16 March 2010 в 01:47
поделиться

1 ответ

Сначала проверьте эту ветку (и статью « Содействие в Eclipse Workbench », использованный в этом потоке ):

Уловка заключалась в том, чтобы« проверить конфигурацию модуля запуска »- даже после полностью новой установки Eclipse 3.1.1 , ни с чем другим в моем WS, кроме моих собственных плагинов, все еще присутствовали раздражающие дополнительные меню и досадная ошибка «редактировать последнюю позицию».

Затем я перешел в конфигурацию пусковой установки, как вы предложили, в которой было много мусора (созданного Eclipse автоматически) - , поэтому я снял выделение со всех, выбрал свои плагины и щелкнул " Добавить обязательное "; убегать от WS с этим - отлично!

См. Также ошибка 115998

удаление функции «платформы» все исправляет - очень простое исправление, которое было очень трудно найти!


Тем не менее, в целом, чтобы скрыть некоторые действия, вы можете попробовать, например, в этой ветке по адресу:

1 /, чтобы скрыть меню / панель управления, определенную точкой расширения ActionSet.

IWorkbenchPage.hideActionSet(actionSetId)
IWorkbenchPage.hideActionSet("org.eclipse.search.menu"); 

2 / Скрыть его меню:

MenuManager mbManager = ((ApplicationWindow)page.getWorkbenchWindow()).getMenuBarManager();
for (int i=0; i<mbManager.getItems().length; i++){
  IContributionItem item=mbManager.getItems()[i];
  if (item.getId().equals("org.eclipse.search.menu")){
    item.setVisible(false);
  }
}

Или вы можете попробовать эту ветку , чтобы скрыть ее для любой перспективы с помощью PerspectiveListener :

Идентификаторы действий, которые я получил от просмотр моих зависимых плагинов eclipse .. поиск ActionSets

package ch.post.pf.gui.prototyp.sesam.pstonline;

import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.IPerspectiveListener;
import org.eclipse.ui.IStartup;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;

public class ActionWiper implements IStartup, IPerspectiveListener {

    private static final String[] ACTIONS_2_WIPE = new String[] {
            "org.eclipse.search.searchActionSet",
            "org.eclipse.ui.edit.text.actionSet.presentation",
            "org.eclipse.ui.edit.text.actionSet.openExternalFile",
            "org.eclipse.ui.edit.text.actionSet.annotationNavigation",
            "org.eclipse.ui.edit.text.actionSet.navigation",
            "org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo",
            "org.eclipse.update.ui.softwareUpdates" };

    public void earlyStartup() {
        IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
                .getWorkbenchWindows();
        for (int i = 0; i < windows.length; i++) {
            IWorkbenchPage page = windows[i].getActivePage();
            if (page != null) {
                wipeActions(page);
            }
            windows[i].addPerspectiveListener(this);
        }
    }

    private void wipeActions(IWorkbenchPage page) {
        for (int i = 0; i < ACTIONS_2_WIPE.length; i++) {
            wipeAction(page, ACTIONS_2_WIPE[i]);
        }

    }

    private void wipeAction(final IWorkbenchPage page, final String actionsetId) {
        Display.getDefault().syncExec(new Runnable() {
            public void run() {
                page.hideActionSet(actionsetId);
            }
        });
    }

    public void perspectiveActivated(IWorkbenchPage page,
            IPerspectiveDescriptor perspective) {
        wipeActions(page);
    }

    public void perspectiveChanged(IWorkbenchPage page,
            IPerspectiveDescriptor perspective, String changeId) {
    }    
}

И удаление настроек:

С помощью PreferenceManager я даже избавился от нежелательных настроек .. :)
{ {1}} Где PREFERENCES_2_WIPE Строки должны быть идентификаторами основных категорий, от которых вы хотите избавиться. Как "org.eclipse.ui.preferencePages.Workbench" -> отображается как General

PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager();
for (int i = 0; i < PREFERENCES_2_WIPE.length; i++) {
    pm.remove(PREFERENCES_2_WIPE[i]);
}
8
ответ дан 9 December 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: