拡張 ClasspathContainer をライブラリ ClasspathEntry として表示する方法

自作の ClasspathContainer を使用したい場合、拡張ポイント org.eclipse.jdt.core.classpathContainerInitializer で自作 ClasspathContainer を設定するための ClasspathContainerInitializer 実装を登録し、JDT API を使って Java プロジェクトに自作 ClasspathContainer を参照する ClasspathEntry を追加してやればよい。
ただ、この方法では、ユーザが Java プロジェクトのプロパティダイアログを使って自作した Classpath Container を Library として ClasspathEntry に追加することはできない。
この場合、拡張ポイント org.eclipse.jdt.ui.classpathContainerPage で、自作 ClasspathContainer を設定するための IClasspathContainerPage ダイアログを登録すればよい。
ちなみに、classpathContainerPage の設定では name 属性は必須ではないが、指定しないと、Java プロジェクトのプロパティダイアログでの Classpath 設定で、Add Library を選択しても、自作 ClasspathContainer の名前(正確には、classpathContainerPage の name 属性で指定した値。classpathContainerInitializer で指定した値ではないので注意)が見えないため、現実的に指定しないわけにはいかない。

カスタム版 Java プロジェクトの初期化

独自に拡張を施した Java プロジェクトを作成する場合、次の手順を踏むのではなかろうか。

  1. 独自機能設定を施した IProject オブジェクトを生成する
  2. JavaCore.create() で IJavaProject オブジェクトを生成することで、Java プロジェクトに変換
  3. JavaCapabilityConfigurationPage を使って、Java プロジェクトとして構成

このとき、最初に作成する IProject オブジェクトに Java Nature を追加してしまわないように注意。Java Nature が登録済みの IJavaProject オブジェクトに対して JavaCapabilityConfigurationPage.configureJavaProject() を呼び出した場合、デフォルトの Java ビルダーが登録されない。
ちなみに、JavaCapabilityConfigurationPage を使わないで Java プロジェクトとしての設定を行う場合、自分で Java Nature を登録しないと IJavaPoject.open() が失敗するので注意。

propertiesファイルについてのメモ

Eclipse 3.0 からなのかは分かんないけど、properties ファイル (拡張子が properties なファイル) は、デフォルトエンコーディングが ISO-8859-1 になってしまう。うっかり、値に日本語を使ってしまった場合、保存した段階で文字化けしてしまうので、native2ascii で変換する以前の問題になってしまう。ファイルのプロパティで変えることもできるが、その場合、そのプロジェクト固有の設定として .setting ディレクトリができてしまう。それが嫌な場合は、日本語のファイルは、拡張子が properties にならないようにするとか、それなりの工夫をする必要がある。

Eclipse plugin

話はいきなり変わるが。
ついこないだまでは Maven の plugin を調べていたのだが、今は Eclipse の plugin を作るための調査をやっていたり。Maven をバックエンド、Eclipse をフロントエンドとした開発環境の構築、ってのが最終目標なのです。
しばらくは、ちょこちょこと日記にもメモを残して行こうかと言う。

メニューラベルなどの国際化
メニューのラベルみたいなUI要素も plugin.xml で指定する必要があるが、このままだと複数言語への対応が難しい。どうすればよいかというと、plugin.properties を作成して、plugin.xml 同様 Plugin ルートに配置すればよい。plugin.xml から参照する際には、%<変数名>で指定する。

ぽじてぃぶペンギンらいふ

って、タイトルの同人誌があったなぁ。てのとは関係がなく。
ペンギン君(= Linux) をとうとう開発環境として導入してみた。
いつまでも個人のノートで仕事してちゃまずかろう、ってことで、ようやく会社で X31 を買ってもらったのだが。Windows マシンだといろいろ怪しげな社内ツールをいれねばならんのが不満で、「いっそ Linux をいれてしまえや〜」と思い立ち、Fedora Core 2 をインストール。
現在、eclipse やら OpenOffice.org やら FireFox やらをいれて運用しているのだが、予想外になんとかなるもんだ。今まで Windows 上で開発していた Eclipse プラグインも、ソースコードレベルできちんと互換性合ったし。
これで、余計な社内ツールの導入による手間をなくしつつ、ちゃんと開発も行え、かつ、動作確認の環境も一つ追加できると、まさにいたれりつくせり。まさに「ぽじてぃぶペンギンらいふ」である。
ためしに、先日公開した「あ・ら・かると」vol.1をダウンロードして実行したが、フォントが若干おかしい以外は問題なく動作した。
"Peko" Visual Novel System の開発でも、今後は堂々と「Windows/Linux 両対応」を名乗れそうだ。ふふふ。

かっちった

突発的に物欲に駆られて CF-R3E 購入〜
なんと前回購入(CF-W2A)から 1年3ヵ月も経ってますよ〜、すごいですね〜、よく我慢できましたねぇ〜、えらいぞ自分!(違)
ああ、またギリギリの生活がぁ……
しかし、CF-R3 ですが、これはなかなか怪物ですな。990g と CF-R2 と同重量にもかかわらず、バッテリを4セルから6セルに増量し、駆動時間 9h というとんでもない数字を達成。しかも、サイズは更に小さくなり、とうとうかつての Let's note mini シリーズにも匹敵するサイズに。Think Pad X シリーズですらデカく感じる自分には、ようやく最適なサイズのモバイルノートを入手できたわけです。素晴らしい。
購入は店頭ではなく My Let's 倶楽部 で。ホントは、100名限定の「軽量モデル」が欲しかったんだが、アンケート申込には間に合ったものの、本申込に手間取ってるうちに誰かに先を越され Get ならず ;_; やむなく通常モデルを購入したが、まぁ、実際仕事で使うことを考えると 2.5" HDD の通常版の方がパフォーマンス的に合ってるので問題はない……と思えば悔しくないやいっ(負け犬のトオボエ)。
カスタマイズしたのは次のポイント。

  • 天板 (タンジェリンオレンジ)
  • キーボード (すっきりローマ字キーボード)
  • HDD/メモリ (60GB/512MB内蔵)
  • ネームプレート (つくば文庫/PPOI の刻印いりヘアライン処理)

ちなみに、増設メモリは W2 に挿してたのを移植して 1GB に増強している。
タンジェリンオレンジの天板はかなり勇気が必要だったが、現物を見たら意外にいい色で、かなり満足。まぁ一応、事前に秋葉の DDI Pocket コミュニケーションセンターでサンプルを見て確認はしていたんだけど。
現在は、いろいろあって会社の仕事には直接は使っていないが、完全ワイヤレスな環境として、さまざまな調査にそのパワーをいかんなく発揮している。
これで、Merom が出るまで頑張る予定。W2 は X31 と併用で、1年もたせたが、今後こそこれ単体で 1 年以上もたせたいところだ。