Как удалить значки из пунктов меню в приложении на основе Eclipse RCP? - PullRequest
1 голос
/ 09 июля 2009

Я работаю над приложением на основе Eclipse RCP, и мы решили, что не хотим, чтобы какой-либо из пунктов меню отображал значки рядом с текстом. Проблема, с которой мы сталкиваемся, заключается в том, что стандартные действия, такие как Отмена, Повторить, Вырезать, Копировать, Вставить и т. Д., Отображают значки по умолчанию для соответствующих действий.

Можно ли заставить инфраструктуру управления действиями игнорировать значки? Моим грубым решением этой проблемы было перестроить SWT, чтобы MenuItem.setImage () был недоступен, а затем включить нашу собственную копию SWT в конечный продукт, но, похоже, должно быть более легкое решение .

Ответы [ 4 ]

2 голосов
/ 05 августа 2009

Это оказалось проще, чем я надеялся.

Создать подкласс org.eclipse.ui.application.ActionBarAdvisor. Переопределите регистр метода следующим образом:

protected void register(IAction action) {
    super.register(action);
    action.setImageDescriptor(null);
}

Затем создайте подкласс org.eclipse.ui.application.WorkbenchWindowAdvisor, который переопределяет createActionBarAdvisor:

public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
    return new MyActionBarAdvisor(configurer);
}

Вот и все. Все действия больше не будут иметь значков.

0 голосов
/ 03 августа 2011

Вы можете сделать это, перейдя на вкладку расширения в plugin.xml.add или в расширение org.eclipse.ui.menu (если его нет). Щелкните правой кнопкой мыши, чтобы создать новое меню. Нажмите правую кнопку мыши и создайте новое меню. . здесь у вас есть возможность изменить изображения, сохраненные в папке значков в вашем пути к классам

0 голосов
/ 10 июля 2009

В чем причина не включать иконки? Много усилий ушло на создание стандартного интерфейса. Какая польза от отклонения от стандарта? Как вы думаете, их упущение повышает удобство использования?

Сказав все, что вы могли бы попытаться добавить фрагмент с некоторым AspectJ вокруг совета, чтобы перехватить вызовы setImage () и наложить на них вето.

0 голосов
/ 09 июля 2009

Я полагаю, что вы хотите дополнительно изучить вход в манифест и изучение org.eclipse.ui.views и посмотреть, есть ли там что-нибудь для удаления иконок

...