JAR ファイルを作る その 4
ついでなので、他にどんなダイアログがあるのか調べていきます。
org.eclipse.ui.dialogs には次のようなクラスが定義されています (abstract、depricated は除外してあります)。
- CheckedTreeSelectionDialog
- ContainerSelectionDialog
- ElementListSelectionDialog
- ElementTreeSelectionDialog
- ListDialog
- ListSelectionDialog
- MarkerResolutionSelectionDialog
- NewFolderDialog
- ProjectLocationMoveDialog
- ProjectLocationSelectionDialog
- ResourceListSelectionDialog
- ResourceSelectionDialog
- SaveAsDialog
- TwoPaneElementSelector
- TypeFilteringDialog
これだけあると調べるのもたいへん。1 つずつやっていきましょう。
で CheckedTreeSelectionDialog クラスからやろうと思って run メソッドを次のようにしました。
public void run(IAction action) { IWorkbench workbench = WrpePlugin.getDefault().getWorkbench(); IWorkbenchWindow workBenchWindow = workbench.getActiveWorkbenchWindow(); Shell shell = workBenchWindow.getShell(); ILabelProvider lProvider= new LabelProvider(); ITreeContentProvider tProvider = new PreferenceContentProvider(); CheckedTreeSelectionDialog dialog= new CheckedTreeSelectionDialog(shell, lProvider, tProvider); System.out.println(dialog.open()); }
ところがのっけから NullPointerException。どうやら、CheckedTreeSlectionDialog クラスは setInput メソッドでツリーを渡さなければいけないようです。ところが、この引数の型が Object クラス。これじゃ、この先しらべられないじゃないか。
ということで、CheckedTreeSelectionDailog はとばします。こういう使うのに制約の多いクラスはイヤですね。まぁ、いいや。次。
ContainerSelectionDialog クラスは昨日やったのでとばして、ElementListSelectionDialog クラスです。run メソッドは次のようにしました。
public void run(IAction action) { IWorkbench workbench = WrpePlugin.getDefault().getWorkbench(); IWorkbenchWindow workBenchWindow = workbench.getActiveWorkbenchWindow(); Shell shell = workBenchWindow.getShell(); ILabelProvider lProvider= new LabelProvider(); ElementListSelectionDialog dialog= new ElementListSelectionDialog(shell, lProvider); System.out.println(dialog.open()); }
実行すると次のようなダイアログが表示されます。これは何かのベースにすべきダイアログなのでしょう。
次の ElementTreeSelectionDialog クラスは多分ダメだろうなと思ったのですが、やはりダメでした ^^;; NullPointerException が発生します。ツリー系はみな setInput メソッドでツリーを設定しなくてはダメのようですね。
同じように調べていったのですが、意外に NullPointerException が発生するのが多いのでは、やり方を変えようと思います。本当は Javadoc に使い方書いておいてくれればいいのですが...