2014-01-26 4 views
0

В настоящее время я пытаюсь реализовать «мастер импорта» для приложения с помощью 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().

ответ

0

В своем коде, простирающейся Wizard вы можете переопределить

public IWizardPage getNextPage(IWizardPage page) 

, который позволяет определить, какие страницы, чтобы вернуться в следующем с учетом текущей странице мастера (есть также getPreviousPage.

Смежные вопросы