У меня есть Wizard с 3 WizardPages, каждая страница с виджетами содержит ввод данных от пользователя, мне нужно добавить последнюю страницу, содержащую всю информацию, введенную пользователем.
Я не знал, как это сделать, потому что 4 страницы создаются одновременно.
Public Wizard(){
addPage(new Page1()) ;
addPage(new Page2()) ;
addPage(new Page3()) ;
addPage(new PageSummary()) ;
}
Как я могу изменить элементы управления PageSummary в зависимости от того, что введено на предыдущих страницах?
Изменить: я нашел пост, который делает именно то, что я хочу, используя метод onEnterPage()
выглядит умно, вот как я пробовал это:
public class NewEquipementSummaryPage extends WizardPage {
public void createControl(Composite parent) {
// composite to hold widgets
Composite composite = new Composite(parent, SWT.NONE) ;
// composite layout
GridLayout gl = new GridLayout(2, false) ;
composite.setLayout(gl) ;
// making widgets
createWidgets(composite) ;
setControl(composite) ;
}
public void onEnterPage() {
TypeEquipementPage typePage = (TypeEquipementPage) getWizard().getPage(TypeEquipementPage.PAGE_NAME) ;
CompanySellerPage companyPage = (CompanySellerPage) getWizard().getPage(CompanySellerPage.PAGE_NAME) ;
EquipementUserPage userPage = (EquipementUserPage) getWizard().getPage(EquipementUserPage.PAGE_NAME) ;
if(typePage.types[0].getSelection() == true)
typeEquipementLabel.setText("Poste de travail") ;
else
typeEquipementLabel.setText("Peripherique") ;
marqueEquipementLabel.setText(typePage.marquesCombo.getText()) ;
descriptionEquipementLabel.setText(typePage.descriptionField.getText()) ;
if(companyPage.companyExistButton[0].getSelection() == true) {
companyNameLabel.setText(companyPage.companiesCombo.getText()) ;
}
else{
companyNameLabel.setText(companyPage.companyNameField.getText()) ;
companyAdressLabel.setText(companyPage.companyAdressField.getText()) ;
companyNumberLabel.setText(companyPage.companyNumberField.getText()) ;
}
if( !(userPage.sharedEquipementButton.getSelection()) )
useOfEquipementLabel.setText("Utilisateur") ;
else
useOfEquipementLabel.setText("Bureau") ;
pack() ;
}
С методом pack() в конце у меня ошибка при компиляции (не могу найти символ)
а без него на странице ничего не появляется .. что я пропустил ?
onEnterPage
, используемый в этой ссылке, — это просто настраиваемый метод для обработки входа на страницу в учебнике «Создание мастеров JFace». Он вызывается из их мастера, когда он вызывает их переопределенныйWizard#getNextPage
. Ничто не вызовет его автоматически - person mecsco   schedule 20.08.2012