Я реализовал представление Eclipse, расширив ViewPart
. В этом конкретном представлении я также внедрил поле ввода текста Text
и несколько кнопок, которые выполняют определенную команду Eclipse.Как установить содержимое текстового элемента SWT из экземпляра класса, который вызывается командой Eclipse?
Например:
IHandlerService handlerService = (IHandlerService) PlatformUI
.getWorkbench().getService(
IHandlerService.class);
handlerService.executeCommand("com.company.commandxyz", null);
Эта команда вызывает обработчик, который затем вызывает службу вклиниться в расширениях DSF. Чтобы быть конкретным, я внедрил обычай CommandFactory
, расширив CommandFactory_6_8
. Это позволяет мне отправлять команды в очередь на GDB, а затем возвращать результат. Тем не менее, я хочу установить ответ в текстовом поле, которое находится в представлении, где был вызван com.example.commandxyz
.
К сожалению, я не могу передать какую-либо ссылку на эту реализацию расширения DSF. Я попытался следующий код, чтобы получить представление Eclipse, для того, чтобы впоследствии установить текст (который является собственностью этой точки зрения):
IViewPart vp = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("com.example.myview");
Однако, я получаю следующее исключение при вызове:
Exception in thread "MI RX Thread" java.lang.NullPointerException
Любая идея, как я могу получить доступ к потоку пользовательского интерфейса, чтобы получить свойство представления, чтобы его установить?
Вы являетесь героем. Как в мире я мог это пропустить. У меня уже было это, как вы сказали мне, но я только поставил вызов метода (из моего представления) в run(). Большое спасибо. –