FileDialog の FilterPath の設定 その 1

JAR ファイルを入力させる部分で [Browse...] ボタンを配置して、ファイルを選択できるようにしようと思います。で、この用途には org.eclipse.swt.widgets.FileDialog クラスが使えることはすぐに分かりました。

選択できるのは JAR ファイルだけでいいので、フィルタも設定します。これは FileDialog#setFilterExtensions メソッドですぐに実現できました。

困ったのが、ダイアログを表示したときのデフォルトのディレクトリです。やっぱり、プロジェクトのワーキングディレクトリにしたいですよね。

こういうのはやっぱり IJavaProject オブジェクトから取得できるだろうと思ったのですが...

getRawClasspath メソッドや getOutputLocation メソッドで取得できるのは、たとえば sample プロジェクトだとすると /sample とか /sample/bin とかになってしまいます。これじゃ、使えないしなぁ。

もしかするとと思って、FileDialog#setFilterPath メソッドの引数に "/sample" とか指定してみましたが、やっぱりだめです。

もう 1 つ、IJavaProject#getPath というメソッドもあるのですが、こちらも /sample が戻り値 ^^;;

LG3D Home をデフォルトのディレクトリにするという手もありますが、さて、どうするか?