Как удалить значки из пунктов меню в приложении на основе Eclipse RCP?

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

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


person Scott K.    schedule 08.07.2009    source источник


Ответы (4)


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

Создайте подкласс 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);
}

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

person Scott K.    schedule 04.08.2009

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

person ist_lion    schedule 08.07.2009

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

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

person Rich Seller    schedule 10.07.2009
comment
Нам нужно приложение, которое не похоже на рабочую среду Eclipse. RCP не определяет, как выглядит «стандартный интерфейс», а значки больше нигде в пользовательском интерфейсе не появляются, поэтому, если что-то и есть, они вносят путаницу своим присутствием. - person Scott K.; 11.07.2009

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

person Jaknap Ramuk    schedule 03.08.2011