如何区分 Eclipse RCP 中的向导?

How to distinguish wizards in Eclipse RCP?

我们在 3.x 上有一个 Eclipse IDE 应用程序,它使用各种新向导来允许用户创建不同的文件。尽管这些文件在内容上略有不同,但向导的结构非常相似。

因此,一个可靠的面向对象的方法是从同一个 class 实例化不同的向导,并用不同的数据初始化它们。

问题:

要确定哪个向导需要哪些数据,我们需要一种方法来区分不同的已经实例化的向导(例如,在调用向导的 init 方法期间)。

有什么办法吗?它会例如如果有人知道从实例化向导中获取扩展点中定义的向导 ID 的方法,请提供帮助。

如果您的向导实现了 IExecutableExtension,它将被传递代表创建它的扩展的配置元素。

您还可以使用 扩展工厂 ,因为您指定一个实现 IExecutableExtensionFactory.

的类型

该界面允许您控制如何创建提供给扩展点(在您的情况下为向导)的实例。

扩展示例:

<extension point="org.eclipse.ui.wizards">
<newWizard  
  name="..."  
  class="com.example.WizardFactory"> 
</newWizard>

请注意,在创建扩展的可执行文件 class.

之前,扩展工厂还可以实现 IExecutableExtension 以获取对扩展属性的访问权限