Eclipse WizardPage для экспорта файла - PullRequest
0 голосов
/ 10 декабря 2011

Я хочу использовать точку расширения exportWizard для плагина eclipse. У меня возникают трудности с выяснением того, как должна выглядеть простая страница мастера файлового диалога.

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 Ответ

3 голосов
/ 12 декабря 2011

Ваша страница мастера не содержит никаких элементов управления. Вы должны создать один композит, а затем добавить к нему все свои элементы управления (и НЕ 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...