スケジューラ

予定管理のためのスケジューラーのポートレットを作っているけど、ようやく、日、週、月の一覧表示ができるようになった。月は、テーブルでカレンダを表示できればよいので、難しくはないのだけど、週、日になるにつれ、何だかパズルを解いているみたいな感じ・・・。日とかは、重複している予定はずらして書いたりと、結構、混乱した。その辺の話に加えて、予定には、単発のものと繰り返しのものとかあって、より一層混乱した・・・。そんな感じでひとまず、ベースはできたかと。あとは、グループのメンバー予定の表示とかも必要かな。という感じで、結構、表示回りに苦戦した感じで進めてる。

ドキュメントのtex化

PALポータルの anakia なドキュメントたちを置換コマンドをいろいろとたたいて、tex に変換した。そんな感じで機械的な変換だから、画像のサイズがおかしかったり、改行がおかしかったりと、これから修正しなきゃならない点が多し・・・。pdf を作成するための tex 関連コマンドをいろいろと叩くのは面倒だから、ant で処理をラップした(今のところ、CentOS5以外でビルドできるかしらない)。eps についても、保持するとサイズがでかかったので、ビルド時に png から eps に変換して生成するようにしておいた。というわけで、ant build すれば、target の下に pdf が生成される感じ。texも記憶からかなり消えかかっている感じなので、思い出しつつやっている感じだな・・・。

texでドキュメント

PALポータルの pdf ドキュメントを maven1 で作っていたのだけど、手軽なのだけど、制御しにくく、質を上げるのが難しいので、tex での移行を検討していて、ようやく移行作業も取りかかることにする。私自身も tex を長らく使っていないから、ひとまず、新規に作成するグループウェア系のドキュメントで調整・確認していこうかと。tex も久々に触ったのだけど、久々過ぎて記憶になさすぎ(^^; とりあえず、CentOS 5 では、何とか pdf まで吐くことができた。いまいち、最近は、何がスタンダードなコマンドかもよくわからん・・・(pdvips や pxdvi なんて、昔使った記憶ないな)。まぁ、この調子で進めよう。

ポートレットでのユーザー情報

グループウェア系のポートレットに力を入れて作っているけど、そこで問題になるのがポータルのユーザー情報をどう取るか、かな。JSR 168 だけでやろうとすると、ポータルに登録されているユーザー一覧情報とかを取る術がないから非常に困る(USER_INFO でログインしているユーザーの情報は取れるけど)。かといって、ユーザーID(たとえば、request.getRemoteUser()でとった値とか)ベースに毎回、ユーザーの名前とか、問い合わせていたんじゃ、使えないし・・・。というわけで、パフォーマンス的にも問題がない方法はどうするかと考えると、グループウェア系のポートレットで共有できるテーブルを持って、そこにユーザー情報を置く、ということかな(JSR 168 の枠でやるなら)。ユーザー情報がポータルとそことでダブるけど、こっちで作る方を主にしてもらって、こっちの方からポータル自体のユーザーまでいじれるようなプラグインでも作って、ポータル非依存に対応する感じが現実的かと考えている。というわけで、PAL にそれをするポートレットを作ろうっと。

ポートレットのタイトル

ポートレットのタイトルバー(ページのタイトルでない)を変更するときは、ポートレットAPIのRenderResponseのsetTitleをすれば、変えることができるのだけど、普通に作ると、タイトルを変えた後にポートレットを最小化すると、そのタイトルがデフォルトに戻ってしまう。理由は簡単で setTitle をしなきゃ、デフォルトのタイトルが表示されるし、最小化されているときは、GenericPortlet の doDispatch で処理が飛ばされ、setTitle するタイミングがない。これに対処するなら、GenericPortlet の doDispatch を上書きして、最小化のときに setTitle をするコードを書けばいい。でも、これって、個人的には気持ち悪いと思う。フレームワーク使ったポートレットだと、GenericPortlet 何かいじる機会ないし、最小化したときには一つ前のタイトルをキープするのが自然じゃないのかね(JSR 168 ではこれを言及してないな)。というわけで、PALポータルでは一つ前のタイトルをキープすることにしよ。