Wicket Bits を試してみた


ちょっと前にメーリングリストでアナウンスのあったWicket Bitsを試してみました。
正確にはWicket Bits内の Automagic を試したのですが、どういう物かというと Wicketでお馴染みの wicket:idをHTMLに記述すると、Javaは特にいじらなくても自動的にコンポーネントを生成してくれる仕組みです。

使い方は簡単。まずWebapplicationクラスに下記を追加します。
    public void init() {
        this.addComponentOnBeforeRenderListener(new AutoCreateRenderListener());
    }
HTMLがこんな感じのとき、
<body>
<div wicket:id="label">Hoge</div>
</body>
Javaはこんな感じでOK。Labelを生成してaddしなくてもOKなんです。
private String label = "Hello !";
public HomePage() {
    setModel(new CompoundPropertyModel(this));
これだけで"Hello !"が表示されちゃいます。
仕組み的にはコンポーネントをRenderする前にタグと属性の型により、生成するコンポーネントを制御しています。
Wicket勉強会で話題になったらしいComponent Resolverを使っているわけではないようです。
タグとコンポーネントが結びついちゃってるってのは、ちょっと融通が聞きにくい部分なんですが、(例えばtableではなく、ulとかでListViewを使いたいとき)なかなか面白い試みですね。

まだまだできる事とできない事を調べ切れていないですが、ある意味割り切った形というのもアリですね。

Comment

  1. たくみのおやぢ
    2008-10-08 Wed 23:33

    しばらく見ない間にブログがパワーアップしてますね。
    ベースがWicketというのもすごい!
    Wicket Bitsおもしろそうですね。たしかTeedaのトップダウンアプローチも同じような感じで実現できたような気がします。
    また個人的に教えてくださいね。

  2. tma
    2008-10-10 Fri 06:59

    Wicket Bitsは制約がいろいろありそうですが、割り切って使えれば生産性が上がると思うんですよね。
    割り切るってところが難しいんですが、、、