Создание анонимных действий просмотра в 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
}