Eclipse WizardPage用于导出文件

时间:2011-12-10 19:36:56

标签: export swt wizard

我想使用exportWizard扩展点作为eclipse插件。我在弄清楚一个简单的filedialog向导页面应该是什么样子时遇到了一些困难。

public class ExportWizardPage extends WizardPage {

private FileDialog fileDialog=null;

protected ExportWizardPage(String pageName) {
    super(pageName);
}

@Override
public void createControl(Composite parent) {

    fileDialog = new FileDialog(parent.getShell(), SWT.SAVE);
    fileDialog.setFilterExtensions(new String[] { "*.bm" });
}
}

我正在尝试它,如上所述,并使用FileDialog选择目标文件。基本上它工作,对话框打开,我得到文件的名称,但一旦对话关闭,我得到一个例外。

org.eclipse.core.runtime.AssertionFailedException: null argument:
    at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85)
    at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73)
    at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:178)

我认为我错误地使用了这个Wizard / WizardPage机制,但是我真的找不到一个简单的例子来向我展示一些应该是什么样子。

1 个答案:

答案 0 :(得分:3)

您的向导页面不包含任何控件。您应该创建一个复合,然后将所有控件添加到它(而不是直接parent)。也绝对需要调用setControl(..)。看起来应该是这样的:

@Override
public void createControl(Composite parent) {
  Composite content = new Composite(parent, SWT.NONE);

  // add all the controls to your wizard page here with 'content' as parent

  FileDialog fileDialog = new FileDialog(parent.getShell(), SWT.SAVE);
  fileDialog.setFilterExtensions(new String[] { "*.bm" });

  setControl(content);
}