Как получить значок из метода выполнения обработчика в eclipse e4 - PullRequest
1 голос
/ 11 октября 2019

Используя обработчик для добавления в меню, я могу получить ParameterizedCommand в методе execute, как показано ниже.

@Execute
public void execute(final Event event, final ParameterizedCommand command)

Как получить iconURI выбранного элемента меню?

Iпробовал это, но получаю предупреждения "Отказ в доступе"

final MenuItem menuItem = (MenuItem) event.widget;
    Object obj = (Object) menuItem.getData("modelElement");
    HandledMenuItemImpl item = (HandledMenuItemImpl) obj;
    String iconUrl = item.getIconURI();

1 Ответ

0 голосов
/ 11 октября 2019

Просто введите MMenuItem в обработчик:

@Execute
public void execute(MMenuItem menuItem, ..... other parameters)
{
   String iconUrl = menuItem.getIconURI();
   ...
}

Если обработчик также вызывается из событий вне меню, сделайте элемент меню необязательным

@Execute
public void execute(@Optional MMenuItem menuItem, ..... other parameters)
{
   if (menuItem != null) {
      String iconUrl = menuItem.getIconURI();
      ...
   }
}
...