[Wicket-ja-user 272] Re: 一部イベントを非Ajaxにする方法について

Back to archive index

Tsutomu Yano benbr****@mac*****
2008年 12月 12日 (金) 01:22:53 JST


 テストせずにコードを読んだだけで書きます。なので外れかもしれません。。。

 LinkTreeの各Linkは、BaseTreeのnewLinkメソッドで生成されているようです。
 で、LinkTreeはLinkIconPanel経由で、newLinkメソッドを2回呼びます。

-----

MarkupContainer link = tree.newLink("iconLink", callback);
add(link);
link.add(newImageComponent("icon", tree, model));

link = tree.newLink("contentLink", callback);
add(link);
link.add(newContentComponent("content", tree, model));
-----

 newLinkに渡しているIDがiconLinkおよびcontentLinkという固定値なので、これを利用して、
BaseLinkのnewLinkメソッドをオーバーライドしてやると良いのではないでしょうか?


イメージとしては、こんな感じでnewLinkをオーバーライドするといいように思います。

@Override
public MarkupContainer newLink(String id, final ILinkCallback callback) {
    if(id.equals("iconLink") || id.equals("contentLink") {
            return new Link<Void>(id) {
                @Override
                public void onClick() {
                    callback.onClick(null);
                }
            };
    } else {
        super.newLink(id, callback);
    }
}


 うまくいくかどうかわかりませんが、ヒントにでもなればと思って書いておきます。


On 2008/12/11, at 17:18, Atsushi Kanaya wrote:

> 金谷(todogzm)です。
>
> 現在LinkTreeコンポーネントを使っているのですが、
> onJunctionLinkClicked()の振る舞いはAjax、onNodeLinkClicked()の振る舞いは非Ajax、
> というような動作は可能でしょうか?お知恵を拝借したく、投稿させていただきます。
>
> 例を挙げますと、Windowsのエクスプローラのようなものを設計していました。
> 画面左側にはLinkTreeで作成したツリー、右側には何らかのページが表示されるイメージです。
> ツリーの+や-アイコンをクリックしたときの展開・折りたたみはAjaxでページ遷移なしで行いたいのですが、
> ツリーのフォルダアイコンをクリックしたときは、ページ遷移が伴うようにし、ブラウザの戻る進むボタンを
> 有効にしたい、というものです。
>
> BaseTree.LinkTypeを指定すればツリー全体の振る舞いについて
> Ajaxか非Ajaxかの振る舞いを変更することが出来ますが、
> 部分的に切り替えたい、というものです。
>
> 何か良い方法がありましたらご教授いただきたく、よろしくお願いします。
> 以上です。
>
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user

---------------------------------------------------
矢野 勉(やの つとむ)
電子メール:benbrand_at_mac.com
---------------------------------------------------



Wicket-ja-user メーリングリストの案内
Back to archive index