Несколько обработчиков для одной команды в eclipse e4

Я пишу новую команду для своего RCP eclipse, которая должна выполнять одну задачу, если одна часть активна, и другую задачу, если активна другая задача (например, команда копирования, которая копирует файлы, если активен проводник проекта, или копирует текст, если активен текстовый редактор ). Я думал о двух обработчиках для одной команды (один определен во фрагменте.e4xmi одного плагина, а другой обработчик — во фрагменте.e4xmi другого плагина). Это выполнимо?

На этой странице http://www.vogella.com/tutorials/EclipseRCP/article.html#importantmodelelement_examples говорит, что:

У каждой команды может быть только один действительный обработчик для данной области. Инфраструктура Eclipse выбирает обработчик, наиболее специфичный для элемента модели.

Например, если у вас есть два обработчика для команды «Копировать», один для окна, а другой для детали, тогда среда выполнения выбирает обработчики, наиболее близкие к элементу модели, который в данный момент выбран пользователем.

Возможно ли иметь 2 обработчика для одной команды в e4?


person deckard cain    schedule 10.08.2016    source источник


Ответы (1)


Если вы имеете в виду, что два обработчика вызываются для одного вызова команды, ответ — Нет.

Как указано в ссылке, которую вы цитируете, выбирается обработчик, ближайший к текущему элементу модели.

Если несколько обработчиков применяются к разным частям, поместите каждый обработчик в список обработчиков той части, к которой вы хотите применить его. Это может быть фрагмент или основной файл e4xmi.

person greg-449    schedule 10.08.2016
comment
Я имел в виду не одну команду, выполняющую два обработчика одновременно, а вызов метода выполнения одного из этих обработчиков в зависимости от того, какая часть активна. - person deckard cain; 10.08.2016
comment
Ну, цитата, которую вы привели, говорит вам об этом. Я добавил некоторые пояснения к моему ответу. - person greg-449; 10.08.2016
comment
Попробовал то, что вы предложили, добавив обработчики в список обработчиков для частей, но это не помогло :(. Я вижу, что моя команда включена только для одной части. - person deckard cain; 10.08.2016
comment
Кстати, одна из частей на самом деле не часть, описанная в файле фрагмента, а FXEditor, определенный внутри plugin.xml. Любые идеи о том, как добавить обработчик в этот редактор? Программно наверное? - person deckard cain; 11.08.2016