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

StackOverflow https://stackoverflow.com/questions/1100747

  •  11-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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);
}

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top