OpenDolphin-1.3をMacOSX Tiger上で構築する記録です。1台のMac上にサーバも構築してみようと考えています。このブログでは、元町皮ふ科様のサイトを参考に、それを忠実に(?)再現しようとした試みです。 バイブルサイトのURIは、こちらです。

2008年7月25日金曜日

メニュー

メニューが表示されない件についてちょっと調べてみました。

open/dolphin.client以下でそれらしいclassを探したところ、AbstractMenuFactory.javaを発見しました。中身は至ってシンプル、OSを調べてMacであればMacMenuFactoryのインスタンスを作成し、それ以外であればWindowsMenuFactoryのインスタンスを作成する典型的なFactory patternになっているようですね。

で、今回はMacの問題なので、MacMenuFactoryを見てみます。ん〜。普通のメニューのコードっぽいけど、、、。でも、なんかメニューを選択した後のアクションはアノテーションで指定しているっぽいな。メニュー項目は、英語決めうちの様に見えるのに、なんで見えないのかな?
で、ちょっと気になったコードが以下です。
ApplicationContext ctx = ClientContext.getApplicationContext();
ResourceMap resMap = ctx.getResourceMap(MacMenuFactory.class);

なんだかリソースっぽいものを読み込むコードの様ですが、具体的なファイルの指定がありません。どうやらApplicationContextを使ったリソースへのアクセスには、resources.MacMenuFactory.propertiesから得る事になっているようです。ってことでclient/resourcesを覗いてみるとMacMenuFactory.txtなるファイルがあるではないですか。
これをpropertyファイルにかえなければならないようです。

で、そのままファイル名をかえてみたのですが、文字が出てくるには出てきたのですが、文字化けです。ここで、はたと気がつきました。Javaはもともとunicodeがデフォルトだったはずでは?そこで、native2asciiでunicodeにエンコーディングし直したところ、無事に日本語が表示されました。

では、なぜ今までプロパティファイルをnative2asciiをもちいてunicodeに変換しなくっても日本語が正しく表示されていたのか不思議ですが、問題ない部分は問題が出るまでスルーしていきましょう。

client/resourcesフォルダ以下には*.txtファイルが他にもあります。もしかしたらこれらもpropertiesファイルに変更しなければ、どこかで問題が出てくるかもしれません。

0 件のコメント:

自己紹介

ちょっとしたTipsのメモです。