Как вызвать метод в другом плагине? - PullRequest
0 голосов
/ 04 июля 2019

Я разрабатываю плагин eclipse с именем mainPage и хочу вызвать метод в плагине с именем Terminal.

Я уже добавил Terminal в Bundle-ClassPath и Require-Bundle, затем я вызвал методв mainPage вот так

new ShowToolStoreCommandHandler().execute(null);

Этот метод заключается в открытии окна.Но у меня есть java.lang.NullPointerException при вызове этого метода.

Я обнаружил, что метод getDefault () возвращает ноль при получении экземпляра терминала в активаторе терминала.

Итак,как вызвать этот метод, чтобы открыть окно?

1 Ответ

1 голос
/ 04 июля 2019

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

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

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

String commandId = .... the command id 

IHandlerService handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class);

handlerService.executeCommand(commandId, null);

Это предполагает, что обработчику команд не нужен аргумент eventи не требует никаких параметров команды.Если это произойдет, вызов будет более сложным и потребует дополнительных исследований.

Возможно, 'commandId' будет определен в plugin.xml плагина.

...