1

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

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

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

所以我想用一个附加的参数化命令,IJobChangeListener它将在WorkspaceJob计划时添加。

不幸的是,在我看来,只能将字符串作为参数传递给可以轻松转换为字符串的命令或对象。然而,像这样的监听器不能作为字符串传递。

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

1 回答 1

1

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

更新: 我认为您在那里遇到了框架的限制。这些命令旨在作为用户界面的抽象,而不是作为完成任务的抽象。我会简单地重用您拥有的 Java 代码,并直接从按钮调用这两个操作的代码以实现联合功能。

于 2013-03-14T12:44:32.260 回答