これははるかに簡単な質問です。
private static AplotBaseDialog dlg;
public Object execute(final ExecutionEvent event) throws ExecutionException {
if (dlg == null){
try {
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
dlg = new AplotBaseDialog(shell, session);
}
catch {
}
dlg.open();
return null;
}
上記のコードをチェックして、dlgがnullかどうかを確認します。nullの場合は、新しいダイアログを作成します。次に、ダイアログを開きます。
これは、dlgがnullの場合に機能します。しかし、dlgがnullでない場合、dlg.open()行でエラーが発生します。エラーは、ダイアログクラスのこのコードを指しています
@Override
protected Control createContents(Composite parent) {
Control contents = super.createContents(parent); <==== Right Here
setTitle("Title");
setMessage("Message");
if (image != null) {
setTitleImage(image);
}
return contents;
}
だから私の質問は、dlg!= nullのときにダイアログを開くにはどうすればよいですか?
編集 エラーメッセージの一部を追加する
AplotBaseDialogの110行目
Control contents = super.createContents(parent);
AplotDialogHandlerの48行目
dlg.open();