2007-02-01から1ヶ月間の記事一覧

NLS

とあるプラグインのソースを見ていて、ある要素をCtrl+左クリックしたら、 なぜかプロパティファイルにジャンプしたので、ちょっとちびった。 普通はJavaファイルとかに飛ぶはずなのに、なぜプロパティファイルに 飛ぶんだろーと思って調べていくと、プロパ…

マーカーの削除の検知

IMarkerが、ユーザの操作とかIResource#deleteMarkersとかで 削除されたときを知る方法。 通知してもらえるようにするには、IResourceChangeListenerを しかければよい。 ResourcesPlugin.getWorkspace().addResourceChangeListener(new HogeListener());// …

続・Eclipseのコンパイラでコンパイル

前にやったときでは、Eclipseのpluginフォルダから取り出して それを解凍してうんたらかんたら・・・ってやってたんだけど、 いつのまにやら、コンパイラ単体でも配布されてた。 落とすところは、Eclipseのダウンロードページの"JDT Core Batch Compiler" と…

Dateのインスタンスを作るのに・・・の続き

前の問題は、要は月の指定がわかりにくかったってことで、 GregorianCalendar gc = new GregorianCalendar(2007, Calendar.FEBRUARY, 3, 10, 11, 12); Date date = gc.getTime();こうすればよかったのか。 一箇所だけフィールド変数を使ってるってのが あん…

JDT系のアイコンって

internal系のクラスを使わないととれねーと思ってたら、 ふつーに取得できた・・・。 ISharedImages sharedImages = JavaUI.getSharedImages(); Image image = sharedImages.getImage(ISharedImages.XXX_YYY_ZZZZ);ISharedImagesは、org.eclipse.ui.ISharedI…

QALabというツール

プロジェクトの情報をレポーティングするツールらしい。 各種ツールの実行結果を定期的に取り込むことで、プロジェクトの情報の推移を 確認できるグラフを生成してくれる。 でも、各ツールを実行する機能はないので、そこは自分でやんないとダメ。 読み込め…

出力フォルダの取得

今までは、IJavaProjectからクラスファイルの出力フォルダを取得できた。 IJavaProject project = ・・・ IPath outputPath = project.getOutputLocation(); でも、この日記の通り、ソースフォルダ毎に出力フォルダが指定できるようになったので、 これだと…

Mapの全要素走査

で、今までかなりいけてないコードを書いてた。 for (Object key : map.keySet()) { Object value = map.get(key); // ・・・ }これだと、Mapのkeyの全要素を見つつ、map.get(key)でMap内を検索して valueを取得しているので、map.get(key)の部分がかなりの…

マーカー

ProblemViewに出るエラーとか、TODOのタスクなんかは、 すべてIMarkerというクラスで表現されている。 IMarkerは、次のようなメソッドで操作できる。 生成 IResource#createMarker 検索 IResource#findMarker IResource#findMarkers 削除 IResource#deleteMa…

//$NON-NLS-1$って?の続き。

前の日記でわからなかったこの部分。 //$NON-NLS-n$ nは「そのストリングのコード行内での 1 をベースにした指数です」 こーゆー意味みたい。 String str = "a" + "b" + "c"; //$NON-NLS-1$ //$NON-NLS-3$こうすると、"b"だけがチェック対象になる。 なるへ…

//$NON-NLS-1$って?

Eclipseのプラグインのソースを見ていると、 たまーにこのような記述がある。 //$NON-NLS-1$ これってなんだろーと思いつつ、いっつもスルーしてけど、 ぼーっとヘルプを見ていたら答えがありました。 Eclipseは、コンパイラのオプションで外部化していない…

viewの表示とか取得とか

ホントはnullチェックが必要な気がするけど、こんな感じ。 IWorkbenchPage page = YKHRPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();// viewの表示 page.showView("ykhr.testView");// viewの取得 YKHRView view = (YKHR…

自作プラグインのテストとプラグインプロジェクト

自作プラグインのテストをplugin.xmlから実行すると、 ワークスペースにあるすべてのプラグインのプロジェクトすべてが 読み込まれているような気がする。 該当のplugin.xmlのプロジェクトのみロードしてくれるように してほしいんだけど、できないのかなぁ…

Dateのインスタンスを作るのに・・・

とある日時、例えば2007/02/03 10:11:12を示すDateのインスタンスを作りたい場合、 自分ならどうするかなぁーとふと考えてみた。 最初に思いつきそうな方法 GregorianCalendar gc = new GregorianCalendar(2007, 1, 3, 10, 11, 12); Date date = gc.getTime(…

ロック

とある処理の中で、ある部分だけは1スレッドのみ実行させたい、 といった時のために、ロックという仕組みが用意されている。 使い方はこのようになる。 private static final ILock lock = Job.getJobManager().newLock();public void method() { try { lock…