【发布时间】:2018-06-01 17:20:44
【问题描述】:
我有五个页面的 Eclipse JFace 向导。首先,我有检查按钮来选择要显示的页面 - 如果你选中所有,你将通过整个向导,但你也可以只选择特定页面,然后只显示那些页面。
到目前为止,我将迭代器与表示每个页面的枚举对象一起使用。我在 getNextPage 函数及其 if..else 案例中调用了迭代器的下一个对象,以正确顺序返回某些页面。问题是,getNextPage 不仅在按下 Next 按钮时被调用,而且在 pageComplete 事件触发等时被调用,所以迭代器不会在我想要的时候更新它的光标,它最终会很快.这是我假设的 sn-p:
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 调用它的实例。
其次,是否有其他方法可以自定义页面导航,转到指定页面?
【问题讨论】:
标签: java eclipse iterator jface wizard