如何区分Eclipse RCP中的向导?

时间:2016-09-27 15:13:01

标签: eclipse eclipse-plugin eclipse-rcp wizard

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

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

问题:

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

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

1 个答案:

答案 0 :(得分:2)

如果您的向导实现IExecutableExtension,它将传递配置元素,该元素表示为其创建的扩展。

您还可以使用扩展工厂,因为您指定了实现IExecutableExtensionFactory的类型。

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

扩展示例:

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

请注意,扩展工厂也可能会在创建扩展程序的可执行类之前实现IExecutableExtension以获取对扩展属性的访问权。