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 ---------------------------------------------------