如何区分Eclipse RCP中的向导?

问题描述:

我们在3.x上有一个Eclipse IDE应用程序,它使用各种newWizards来允许用户创建不同的文件。尽管这些文件在内容上略有不同,但向导的结构非常相似。因此,一个合理的面向对象的方法就是从同一个类中实例化不同的向导并用不同的数据初始化它们。如何区分Eclipse RCP中的向导?

问题:

要什么向导的数据,我们需要一种方法来区分不同的已实例向导的需求(例如调用向导的init()方法中)决定。

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

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

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

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

扩展示例:

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

注意,延伸工厂也可以实现IExecutableExtension来访问扩展创建扩展的可执行类属性之前。

+0

谢谢。这正是我所期待的 – lwi