В настоящее время я пытаюсь реализовать «мастер импорта» для приложения с помощью JFace Wizard.Как динамически добавлять JFace WizardPage
В принципе, я должен добавить следующую страницу «как раз вовремя» на основе ввода от пользователя, так как каждый «шаг» в мастере зависит от предыдущих.
Так, в конструкторе WizardImport Я хотел бы добавить первую страницу, используя:
addPage(new WizardImportSourcePage(data));
В этой странице (WizardImportSourcePage) Я тогда хотел бы добавить следующую страницу, в зависимости от выбранного источника, например, :
btnCsv.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
data.getWizard().addPage(new WizardImportSourcePage(data));
setPageComplete(true);
}
});
Как вы можете видеть все это происходит в соответствующем слушателе. К сожалению, это не работает. Мастер не нажал кнопку «Далее», но отображает только кнопку «Готово», поскольку она ничего не знает о следующей странице, пока кнопка не будет нажата. Я уже пытался вызвать updateButtons()
, но ничего не изменил.
Итак, любые предложения, как заставить его работать? Каким будет правильный способ создания страниц мастера динамически? Большинство учебных пособий, по-видимому, предполагают, что страницы создаются в начале, и только упорядочение изменяется с помощью getNextPage()
.