Eclipse RCP应用程序,将数据传递给命令

时间:2011-03-13 09:36:33

标签: eclipse-rcp

我是eclipse的新手,我正在尝试编写一个简单的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窗口出现时填充建议的文件名。

我一直在寻找答案,我无法解决问题。由于该命令仅由其ID引用,因此我无法确定如何将变量传递给它。

我最后放弃了,现在我将字符串写入我在命令处理程序中读取的临时文件,但显然这是一个疯狂的解决方案。当然必须有一个更简单的方法吗?

非常感谢任何帮助,

的Cathal。

2 个答案:

答案 0 :(得分:1)

您正在寻找参数化命令,如wiki和此article中所述。前者专注于程序化调用,而后者则对参数化命令的声明性方面进行了全面的解释。

答案 1 :(得分:0)

以下帖子可能会有所帮助:RCP Command with object argument

或者您可以直接在“widgetSelected”方法中打开文件对话框,而不是使用额外的命令执行此任务。