ボックスにComboViewer
名前付きを作成しましcomboViewer
た。TitleAreaDialog
ビューアには、 で定義されているさまざまなカテゴリが表示されTreeViewer
ます。
しかし、次の行で NullPointerException がスローされます。
ISelection categorySelection = comboViewer.getSelection();
なぜそうなるのですか?
ボックスにComboViewer
名前付きを作成しましcomboViewer
た。TitleAreaDialog
ビューアには、 で定義されているさまざまなカテゴリが表示されTreeViewer
ます。
しかし、次の行で NullPointerException がスローされます。
ISelection categorySelection = comboViewer.getSelection();
なぜそうなるのですか?
この「パターン」を使用してこれを解決できます。つまり、ダイアログを設定するときに:
final ISelection selection = new ISelection[1];
Dialog diag = new Dialog(shell) {
// createDialogArea()
// remember your comboViewer as field
@Override
protected void okPressed() {
selection[0] = comboViewer.getSelection();
super.okPressed();
}
};
(あなたのケースでは、ダイアログの代わりに TitleAreaDialog を使用してください。)
つまり、ダイアログの okPressed メソッドをオーバーライドします。ユーザーが選択を行ってから [OK] を押すと、selection[0] に選択が含まれます。