如何正确创建WizardPage(Eclipse平台)

时间:2014-01-20 16:58:56

标签: java eclipse eclipse-plugin eclipse-rcp

在创建页面后的库代码中,将发生控件属性的断言检查:

public void createPageControls(Composite pageContainer) {
        // the default behavior is to create all the pages controls
        for (int i = 0; i < pages.size(); i++) {
            IWizardPage page = (IWizardPage) pages.get(i);
            page.createControl(pageContainer);
            // page is responsible for ensuring the created control is
            // accessable
            // via getControl.
            Assert.isNotNull(page.getControl());
        }
    }

(最后一行)

因此,在实施WizardPage#createControl时,应该为control添加一些内容。

在Vogella的样本中,他创建了中间Composite容器并使用它:http://www.vogella.com/tutorials/EclipseWizards/article.html#wizards_example

但我可以使用createContol的{​​{1}}参数吗?

更新

如果重新定义parent课程并一直使用它会怎样?

WizardPage

这样的决定有哪些缺点?

1 个答案:

答案 0 :(得分:3)

WizardPage.createControl中,您必须创建某种Control - 通常是Composite,您必须致电WizardPage.setControl(control)告诉WizardPage哪个是顶级控件。所以通常是这样的:

@Override
public void createControl(final Composite parent)
{
  final Composite composite = new Composite(parent, SWT.NULL);

  ...

  setControl(composite);
}