如何区分 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
以获取对扩展属性的访问权限
我们在 3.x 上有一个 Eclipse IDE 应用程序,它使用各种新向导来允许用户创建不同的文件。尽管这些文件在内容上略有不同,但向导的结构非常相似。
因此,一个可靠的面向对象的方法是从同一个 class 实例化不同的向导,并用不同的数据初始化它们。
问题:
要确定哪个向导需要哪些数据,我们需要一种方法来区分不同的已经实例化的向导(例如,在调用向导的 init 方法期间)。
有什么办法吗?它会例如如果有人知道从实例化向导中获取扩展点中定义的向导 ID 的方法,请提供帮助。
如果您的向导实现了 IExecutableExtension
,它将被传递代表创建它的扩展的配置元素。
您还可以使用 扩展工厂 ,因为您指定一个实现 IExecutableExtensionFactory
.
该界面允许您控制如何创建提供给扩展点(在您的情况下为向导)的实例。
扩展示例:
<extension point="org.eclipse.ui.wizards">
<newWizard
name="..."
class="com.example.WizardFactory">
</newWizard>
请注意,在创建扩展的可执行文件 class.
之前,扩展工厂还可以实现IExecutableExtension
以获取对扩展属性的访问权限