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

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

Amazon.co.jpのご注文の発送のメール

Amazonから来る発送メールの中に、以前は

サービス」(http://www.amazon.co.jp/your-account)でお調べいた

みたいな文があったのだけど、これって、Thunderbird でみると、)までがリンクとして判断されてしまうので、メールのリンクをクリックして表示しようとすると、いちいち URL を修正しないと表示できませんでした。っで、Amazon の知り合いに何とかして~、とお願いしておいたところ、今日、デジカメを購入して来たメールでは)の前に半角スペースが入って、修正されてました。これで、クリックで表示できるようになりましたよ。よかった、よかった。

ポートレットのタイトル

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