将对象作为参数传递给命令

时间:2013-03-14 09:35:46

标签: eclipse eclipse-plugin eclipse-rcp

我的eclipse插件中有两个命令。 (上传和运行)。它们可以由用户一个接一个地调用。因此,只有在上传命令完成后调用Run才有意义。

由于upload命令可能需要一些时间,因此它会安排WorkspaceJob进行实际执行。并在安排工作后立即返回。

我想知道的是添加另一个名为“上传和运行”的命令,其中(令人惊讶的)应首先上传然后运行选择。因此,必须在上载命令中启动WorkspaceJob时通知它。

因此,我希望使用额外的IJobChangeListener对该命令进行参数化,并在安排WorkspaceJob时添加该命令。

不幸的是,在我看来,它只能将Strings作为参数传递给命令或者可以轻松转换为Strings的对象。但是,像这样的Listener不能作为String传递。

  • 如何使用这样的侦听器对象提供命令?
  • 是否可能有其他方式向命令提供监听器对象(除了将其作为参数传递),我没想到?

1 个答案:

答案 0 :(得分:1)

由于您的“上传并运行”操作将开始上传,因此您可以为运行操作安排另一个作业,该作业只需在工作区作业上调用join() - 在做任何其他事情之前参考你。

<强>更新 我认为你在那里遇到了框架的限制。这些命令旨在作为用户界面的抽象,而不是完成任务的抽象。我只是重复使用您拥有的Java代码,并直接从联合功能的按钮调用这两个操作的代码。