У меня две таблицы, на флаге мне нужно показывать по одной таблице за раз. Мой метод createControl () вызывается во время загрузки, и значение флага истинно, поэтому одна таблица загружается в первый раз, при выборе ложного флага моя вторая таблица дает нулевой указатель. потому что второе расписание не называется правильно. Я видел в Google, что stacklayout будет работать для этого типа загрузки, который будет загружать две таблицы во время загрузки. но я не могу вызвать их с помощью stacklayout.
public void createControl(final Composite parent) {
final Font font = parent.getFont();
final Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
composite.setFont(font);
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, false));
final Composite controlsComposite = WidgetFactory.getClassicToolkit().createComposite(composite);
final GridLayout gridLayout = new GridLayout(NUM_COLUMN, false);
controlsComposite.setLayout(gridLayout);
final GridData gridData = new GridData(SWT.FILL, SWT.DEFAULT, true, true);
gridData.horizontalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
controlsComposite.setLayoutData(gridData);
if (getWizard() instanceof TestWizard) {
final IWizardPage[] wizardPages = getWizard().getPages();
for (final IWizardPage page : wizardPages) {
if (page instanceof PSRDesignerImportWizardPage) {
TestWizard importwizardPage = (TestWizard) page;
if (importwizardPage.isInitiative()) {
setTitle("Table1");
setMessage("Hello");
gridLayout.numColumns = 1;
controlsComposite.setLayout(gridLayout);
createTable1Control(controlsComposite);
gnerImport = true;
} else {
setTitle("Table2");
setMessage("Bye");
controlsComposite.setLayout(gridLayout);
createTable2Control(controlsComposite);
rDomainImport = true;
}
}
}
} else {
creatFileSelectionGroup(controlsComposite);
}
createImportOptions(controlsComposite);
setControl(composite);
}
код 2:
@Override
public IWizardPage getNextPage() {
List<tualInitiative> ualInitiativeList = getConceptualInitiativeList(psrUserInfo);
if (ualInitiativeList.isEmpty()) {
return null;
}
IWizardPage nextPage = super.getNextPage();
if (nextPage instanceof FormatImportWizardPage) {
FormatImportWizardPage xfPage = (FormatImportWizardPage) nextPage;
if (initiative) {
xfPage.settable1Data(ualInitiativeList);
} else {
xfPage.settable2Data(ualInitiativeList);
}
}
return nextPage;
}