我正在开发一个使用自定义工作集的Eclipse插件。现在,用户可以通过File > New > Other... > Custom Working Set启动多页向导来创建这些工作集。
默认情况下,还可以通过Project Explorer > Select Working Set... > New通过工作集选择对话框创建工作集.这些工作集“向导”(如Java Working-Set,Resource Working-Set,.)所有这些都由一页组成。从技术上讲,有一个next按钮,但是它在工作集类型选择之后就被禁用了.
是否有任何方法来重写该行为以启用多页向导?我认为我必须使用WorkingSetNewWizard类或IWorkingSetNewWizard接口,但我不确定如何工作。
发布于 2020-03-10 10:46:46
所以我设法让这个东西正常工作了!
正如greg-449所指出的,添加自定义工作集可以通过在扩展点org.eclipse.ui.workingSets定义它并实现一个扩展"WizardPage“的页面类来实现org.eclipse.ui.dialogs.IWorkingSetPage。
处理工作集创建的类是WorkingSetNewWizard。默认情况下,它创建一个向导,该向导由两个页面组成--工作集类型选择和定义的工作集页面,对应于用户的选择(这就是为什么该用户界面中有一个Next按钮)。
要添加另一个页面,您必须在这个页面类中重写WizardPage.getNextPage (再次感谢greg-449)。传递所需的页面不起作用,因为您必须将创建向导添加到新的IWizardPage中。
@Override
public IWizardPage getNextPage() {
IWizardPage page = new WizardPage2();
page.setWizard(getWizard());
return page;
}这样做,第二个页面就不必实现IWorkingSetPage,因为按下finish按钮将触发第一个页面的finish()函数。
发布于 2020-03-06 12:41:32
用于定义新工作集类型的workingSet扩展点的org.eclipse.ui.workingSets元素具有一个pageClass属性,用于指定实现新工作集向导第二页的类。
页面类必须实现org.eclipse.ui.dialogs.IWorkingSetPage。
Eclipse帮助中的示例:
<extension point="org.eclipse.ui.workingSets">
<workingSet
id="org.eclipse.ui.resourceWorkingSetPage"
name="Resource"
description="Contains basic resources (files, folders, and projects)"
icon="icons/resworkset.png"
pageClass="org.eclipse.ui.internal.dialogs.ResourceWorkingSetPage"
updaterClass="org.eclipse.ui.internal.workingsets.ResourceWorkingSetUpdater"
elementAdapterClass="org.eclipse.ui.internal.workingsets.ResourceWorkingSetElementAdapter">
</workingSet>
</extension>注意:WorkingSetNewWizard是一个内部类,所以您不能在代码中引用它。
https://stackoverflow.com/questions/60563721
复制相似问题