如何在Eclipse RCP中区分向导



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

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

问题:

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

有办法吗?例如,如果有人知道从实例化的向导中获取扩展点中定义的向导id的方法,这将有所帮助。

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

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

该接口允许您控制如何创建提供给扩展点的实例(在您的例子中是向导)。

扩展的例子:

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

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

最新更新