如何通过JFace Eclipse Wizard页面执行自定义导航?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过JFace Eclipse Wizard页面执行自定义导航?相关的知识,希望对你有一定的参考价值。
我有六页的Eclipse JFace向导。在第一个,我有检查按钮来选择要显示的页面 - 如果你全部检查,你将通过整个向导,但你也可以只选择特定的页面,然后只显示那些页面。
到目前为止,我使用了迭代器和表示每个页面的枚举对象。我在getNextPage
函数中调用了迭代器的下一个对象,并在if..else的情况下以正确的顺序返回某些页面。问题是,getNextPage
不仅在按下Next按钮时被调用,而且在pageComplete事件触发时也被调用,因此迭代器在我想要的时候不会更新它的光标,并且它最终会变快。这是我的假设的片段:
else if(page == FirstPage )
{
// iterator contains SelectedAction - enum objects representing pages
this.pageIterator = page.getWizardPagesList().iterator();
if(pageIterator.hasNext())
{
return selectedActionToPage(pageIterator.next());
}
}
else
{
if(pageIterator.hasNext())
{
SelectedAction action = pageIterator.next();
if(!pageIterator.hasNext())
{
// we check if current page was last one
setFinished(true);
setLastPage(selectedActionToPage(action));
}
// selectedActionToPage converts enum object to WizardPage class
return selectedActionToPage(action);
}
else if((pageIterator != null) && !pageIterator.hasNext())
{
return page;
}
}
return page;
特别是,我想知道的事情是:
首先,有没有其他方法来捕获下一步按钮单击?我知道WizardDialog类中有NextPressed
方法,但我不知道如何从我的Wizard类或WizardPage调用它的实例。第二,是否有其他方法可以自定义导航页面,转到指定页面?
不,您不应该尝试拦截下一步按钮,单击该逻辑对于向导对话框是私有的,您不应该试图干扰它,
你可以覆盖WizardPage
:
public IWizardPage getNextPage()
方法或你可以覆盖Wizard
public IWizardPage getNextPage(IWizardPage page)
您可能还需要覆盖匹配的getPreviousPage
方法。无论何时调用该方法,您都必须使代码工作。您将获得有关当前页面的信息,您的代码应使用该信息来确定下一页。
以上是关于如何通过JFace Eclipse Wizard页面执行自定义导航?的主要内容,如果未能解决你的问题,请参考以下文章
jface编程报错java.lang.NoSuchMethodError: org.eclipse.jface.util.Util.isMac()Z
在jface的tableviewer中,怎么通过双击事件得到点击的是哪个单元格?
如何使用来自 Eclipse JFace 的 IDecorationContext api