Eclipse RCP: как настроить перспективное меню? - PullRequest
4 голосов
/ 17 марта 2011

Мне нужен полный контроль над меню перспективы.

Я уже взломал платформу, чтобы отключить меню КОНТЕКСТ:

private void disablePerspectiveToolbarMenu() {
    PerspectiveBarManager perspectiveBarManager =
        ((WorkbenchWindow) PlatformUI.getWorkbench().getActiveWorkbenchWindow()).getPerspectiveBar();
    if (perspectiveBarManager!=null){
        ToolBar toolBar = perspectiveBarManager.getControl();
        Listener[] listeners = toolBar.getListeners(SWT.MenuDetect);
        if (listeners != null){
            for (Listener listener : listeners){
                toolBar.removeListener(SWT.MenuDetect, listener);
            }
        }
    }
}

Но мне нужно также контролировать содержимое по умолчанию ПЕРСПЕКТИВНОГО МЕНЮ . Всегда присутствует одна опция, которая предоставляет доступ к Оболочке списка перспектив. Мне нужно удалить эту опцию из меню.

Обидно, что перспективное меню полностью вне контроля пользователя. Мне просто нужно добавить перспективы в меню, и ничего более!

Спасибо.

enter image description here

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Есть 3 возможных варианта избавления от другого:

  1. Установите org.eclipse.ui.IWorkbenchPreferenceConstants.SHOW_OTHER_IN_PERSPECTIVE_MENU предпочтение false в вашем приложении RCP. Это можно сделать, включив файл plugin_customization.ini в определение вашего продукта.

  2. Патч верстак в вашем приложении RCP. Посмотри на org.eclipse.ui.internal.PerspectiveBarNewContributionItem а также org.eclipse.ui.actions.ContributionItemFactory.PERSPECTIVES_SHORTLIST

  3. Не включать значение по умолчанию панель перспективы в вашем приложении RCP. Вместо этого создайте панель перспективы используя org.eclipse.ui.menus, a панель инструментов и openPerspective команда.
1 голос
/ 01 сентября 2014

Я провел некоторое исследование, и решение не сработало, как я ожидал.Наконец я нашел свою ошибку.

Чтобы установить свойство в plugin_customization.ini, я попытался:

    org.eclipse.ui.IWorkbenchPreferenceConstants.SHOW_OTHER_IN_PERSPECTIVE_MENU=false

, но это не правильная запись !!!Пожалуйста, посмотрите правильное решение, которое я наконец добавил в plugin_customization.xml

    org.eclipse.ui/SHOW_OTHER_IN_PERSPECTIVE_MENU=false

Так что имя интерфейса или класса, определяющего свойство, не является частью нотации!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...