Eclipse RCP Application, передача данных в команду - PullRequest
0 голосов
/ 13 марта 2011

Я довольно плохо знаком с затмением и пытаюсь написать простое приложение RCP для автоматического создания файлов конфигурации для маршрутизаторов и т. Д.

У меня есть мастер, который собирает необходимую информацию (например, IP-адрес)), а затем обновляет модель с помощью пользовательских данных.Когда мастер завершает работу, он запускает модель для записи файла.

На моей последней странице мастера я предлагаю пользователю сохранить файл и у меня есть кнопка «Обзор», которая запускает команду, которая отображает «сохранить» FileDialog .Команда вызывается при нажатии кнопки:

browseButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e){

            IHandlerService handlerService = (IHandlerService) (PlatformUI.getWorkbench().getService(IHandlerService.class));
            try {
                filename = (String) handlerService.executeCommand("ie.btireland.cm.config.projectFileAs", null);
                path.setText(filename);
                setPageComplete(true);
            }catch(Exception E){ // handle error }
        }
});

Все работает нормально, однако я хочу передать объект String в команду, чтобы он мог использовать его на FileDialog.setFileName() при создании диалога.Моя цель состоит в том, чтобы предложенное имя файла уже было заполнено при появлении окна FileDialog.

Я был вокруг блока в поисках ответа, и я просто не могу его решить.Поскольку на команду ссылается только ее идентификатор, я не могу понять, как передать ей переменную.

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

Любая помощь будет наиболее ценной,

Катал.

Ответы [ 2 ]

1 голос
/ 15 мая 2013

Вы ищете параметризованные команды, как описано в этой вики и в этой статье . Первый концентрируется на программном вызове, а второй дает подробное объяснение декларативной стороны параметризованных команд.

0 голосов
/ 23 марта 2011

Может быть, поможет следующий пост: Команда RCP с аргументом объекта

, или вы можете открыть диалоговое окно файла непосредственно в методе "widgetSelected", не используя дополнительную команду для этой задачи.

...