Используя StackLayout, я хочу показать только одну таблицу при выборе флага - PullRequest
0 голосов
/ 13 июля 2020

У меня две таблицы, на флаге мне нужно показывать по одной таблице за раз. Мой метод 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;
 }
...