Создание анонимных действий просмотра в Eclipse e4

Я пытаюсь создать новое представление, используя Eclipse e4 (мой продукт основан на RCP 3.x, но теперь обновлен для использования Legacye4.xmi). В прошлом, когда я хотел создать действие панели инструментов для взаимодействия с внутренним состоянием представления, я делал что-то вроде этого;

private TableViewer viewer;
private IAction doSomething;

private void makeActions() {
  doSomething = new Action() {
    public void run() {
      // Do something e.e.g with a table viewer
      tableViewer.getXXXX();
    }
  }
  getViewSite().getActionsBars().getToolBarManager().add(doSomething);
}

Как я могу добиться того же, используя API e4?

Насколько я могу судить, теперь мне нужно зарегистрировать команду и подключить обработчик в plugin.xml/ фрагмент.e4xmi, но этот подход работает только для отдельных классов, а не для внутренних классов. Я нашел кое-что, что выглядит многообещающим здесь. Однако я не делаю, регистрирует ли это обработчик только для представления или глобально, или нужно обработчику деактивировать / повторно активировать при изменениях детали.

1 ответ

Решение

Для вида e4 вы обычно объявляете элементы панели инструментов вида в фрагменте. E4xmi в разделе ToolBar детали.

Вы можете использовать "Handled Tool Item", в котором вам нужно объявить "command" и "handler", или вы можете использовать "Direct Tool Item", в этом случае вы просто указываете класс для вызова.

Добавить пример обработчика метода выполнения может быть:

@Execute
public void execute(MPart part)
{
  MyViewClass view = (MyViewClass)part.getObject();

  ... call view methods
}
Другие вопросы по тегам