Я создал мастер с одной страницей и имеет два виджета: список и кнопку , но при вызове мастера с помощью dialog.open()
открывается мастер, но виджеты страницы не отображаются. Я не знаю, что не так!SWT Виджеты не отображаются в Мастере при открытии диалога
Вот код страницы
public class SelectCriterionPage extends WizardPage {
private Composite container;
ArrayList<String> listItems=new ArrayList<String>();
List variables,selected;
protected SelectCriterionPage() {
super("CriterionSelection","SelectCriterionPage",null);
setTitle("Selection of criterion variables");
}
@Override
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
variables=new List(container, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
//fill the list with variables
for(String item:listItems)
variables.add(item);
variables.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
// TODO Auto-generated method stub
}
});
Button btn=new Button(container, SWT.PUSH);
btn.setText("<");
GridData gr=new GridData(GridData.FILL,SWT.CENTER);
btn.setLayoutData(gr);
setControl(container);
}
}
я назвал мой мастер
WizardDialog dialog = new WizardDialog(null, new SelectSlicingCriterionWizard());
dialog.open();
вот мой мастер:
public class SelectSlicingCriterionWizard extends Wizard{
IWorkbenchPage workbench;
IStructuredSelection selection;
ArrayList<String> listItems;
public SelectSlicingCriterionWizard() {
super();
setNeedsProgressMonitor(true);
}
@Override
public boolean performFinish() {
System.out.println("Finish clicked");
return true;
}
@Override
public boolean performCancel(){
return true;
}
@Override
public void addPages() {
SelectCriterionPage criterionpage=new SelectCriterionPage();
addPage(criterionpage);
}
@Override
public String getWindowTitle() {
return "Select Criterion Variables";
}
public void init(IWorkbench workbench, IStructuredSelection selection)
{
this.workbench=workbench.getActiveWorkbenchWindow().getActivePage();
this.selection=selection;
}
}
работает как шарм, благодаря – user3299062