Ich habe Eclipse JFace Wizard mit fünf Seiten. In der ersten, habe ich Check-Buttons, um auszuwählen, welche Seiten angezeigt werden sollen - wenn Sie alle markieren, werden Sie den gesamten Assistenten durchlaufen, aber Sie können auch nur bestimmte Seiten auswählen, und dann werden nur diese Seiten angezeigt.Wie führe ich die benutzerdefinierte Navigation über die Seiten des JFace Eclipse-Assistenten durch?
Bisher habe ich Iterator mit Enum-Objekten für jede Seite verwendet. Ich rief das nächste Objekt des Iterators in getNextPage
Funktion und seine if..else Fälle, um bestimmte Seiten in der richtigen Reihenfolge zurückzugeben. Das Problem ist, getNextPage
wird nicht nur aufgerufen, wenn Nächste Taste gedrückt wird, sondern auch wenn pageComplete Ereignis feuern, usw., so Iterator nicht aktualisiert seinen Cursor, wenn ich will, und es endet zu schnell. Dies ist Snippet meiner Annahme:
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;
Insbesondere Dinge, die ich wissen will, sind:
Erstens ist es eine andere Art und Weise Weiter Schaltfläche klicken, um zu erfassen? Ich weiß, es gibt NextPressed
Methode in WizardDialog Klasse, aber ich weiß nicht, wie ich die Instanz von meiner Wizard-Klasse oder WizardPage aufrufen. Zweitens gibt es eine andere Möglichkeit, Navigation über Seiten anzupassen, um zu bestimmten Seiten zu gehen?