2007-02-01から1ヶ月間の記事一覧
とあるプラグインのソースを見ていて、ある要素をCtrl+左クリックしたら、 なぜかプロパティファイルにジャンプしたので、ちょっとちびった。 普通はJavaファイルとかに飛ぶはずなのに、なぜプロパティファイルに 飛ぶんだろーと思って調べていくと、プロパ…
IMarkerが、ユーザの操作とかIResource#deleteMarkersとかで 削除されたときを知る方法。 通知してもらえるようにするには、IResourceChangeListenerを しかければよい。 ResourcesPlugin.getWorkspace().addResourceChangeListener(new HogeListener());// …
前にやったときでは、Eclipseのpluginフォルダから取り出して それを解凍してうんたらかんたら・・・ってやってたんだけど、 いつのまにやら、コンパイラ単体でも配布されてた。 落とすところは、Eclipseのダウンロードページの"JDT Core Batch Compiler" と…
前の問題は、要は月の指定がわかりにくかったってことで、 GregorianCalendar gc = new GregorianCalendar(2007, Calendar.FEBRUARY, 3, 10, 11, 12); Date date = gc.getTime();こうすればよかったのか。 一箇所だけフィールド変数を使ってるってのが あん…
internal系のクラスを使わないととれねーと思ってたら、 ふつーに取得できた・・・。 ISharedImages sharedImages = JavaUI.getSharedImages(); Image image = sharedImages.getImage(ISharedImages.XXX_YYY_ZZZZ);ISharedImagesは、org.eclipse.ui.ISharedI…
プロジェクトの情報をレポーティングするツールらしい。 各種ツールの実行結果を定期的に取り込むことで、プロジェクトの情報の推移を 確認できるグラフを生成してくれる。 でも、各ツールを実行する機能はないので、そこは自分でやんないとダメ。 読み込め…
今までは、IJavaProjectからクラスファイルの出力フォルダを取得できた。 IJavaProject project = ・・・ IPath outputPath = project.getOutputLocation(); でも、この日記の通り、ソースフォルダ毎に出力フォルダが指定できるようになったので、 これだと…
で、今までかなりいけてないコードを書いてた。 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-n$ nは「そのストリングのコード行内での 1 をベースにした指数です」 こーゆー意味みたい。 String str = "a" + "b" + "c"; //$NON-NLS-1$ //$NON-NLS-3$こうすると、"b"だけがチェック対象になる。 なるへ…
Eclipseのプラグインのソースを見ていると、 たまーにこのような記述がある。 //$NON-NLS-1$ これってなんだろーと思いつつ、いっつもスルーしてけど、 ぼーっとヘルプを見ていたら答えがありました。 Eclipseは、コンパイラのオプションで外部化していない…
ホントはnullチェックが必要な気がするけど、こんな感じ。 IWorkbenchPage page = YKHRPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();// viewの表示 page.showView("ykhr.testView");// viewの取得 YKHRView view = (YKHR…
自作プラグインのテストをplugin.xmlから実行すると、 ワークスペースにあるすべてのプラグインのプロジェクトすべてが 読み込まれているような気がする。 該当のplugin.xmlのプロジェクトのみロードしてくれるように してほしいんだけど、できないのかなぁ…
とある日時、例えば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…