[Wicket-ja-user 312] Re: コンポーネントにadd()したコンポーネントの一覧を取得する方法についての質問

Back to archive index

Hoso s henya****@hotma*****
2009年 3月 2日 (月) 21:45:19 JST


 

 こんばんは、細川です。

 

>  MarkupContainerクラスにvisitChildrenというメソッドがあります。これにComponent.IVisitorインスタンスを
> 渡すと、visitChildrenを呼び出した対象コンポーネントの、すべての子要素(孫も含めて)を再帰的に走査して、
> ひとつひとつの子コンポーネントごとにComponent.IVisitorのcomponentメソッドを呼び出してくれます。


 なるほど、visit...でしたか。IDEが表示するコード補完機能を皿の目のようにしていたりしたんですが、僕の目はどうやら節穴だったようです。

 

> こんな感じですね。一覧を作るのがあとで処理をすることが目的であれば、一覧を作るまでもなく、component
>メソッド内に処理を書けばよいわけです。再起処理を自分で書く必要もないです。
> 一覧リストが欲しいのであれば、Listを作っておいて、componentメソッドの中でListにaddするとよいでしょう。
 

 処理としては再帰的に検索して、一覧に対し処理をおこなうつもりでしたので、Component.IVisitorのcomponentが自分の意図する用途としては最適でした。検索する手間も省けますし。こう見るとWicketはコンポーネントから情報をもらって処理を行うより、コンポーネント自身に処理を任せたほうが良いって感じなんでしょうね。

 

 ありがとうございます。

 

P.S メーリングリストへの投稿の仕方が間違っており、ぜんぜん関係ない話題への返信となってしまいました。すみません。



 
> From: benbr****@mac*****
> To: wicke****@lists*****
> Date: Sun, 1 Mar 2009 17:39:38 +0900
> Subject: [Wicket-ja-user 311] Re: コンポーネントにadd()したコンポーネントの一覧を取得する方法についての質問
> 
> 矢野です。
> 
>  MarkupContainerクラスにvisitChildrenというメソッドがあります。これにComponent.IVisitorインスタンスを
> 渡すと、visitChildrenを呼び出した対象コンポーネントの、すべての子要素(孫も含めて)を再帰的に走査して、
> ひとつひとつの子コンポーネントごとにComponent.IVisitorのcomponentメソッドを呼び出してくれます。
> 
> 
> target.visitChildren(new Component.IVisitor<Component>() {
> Object component(Component c) {
> //targetの子要素や孫要素すべてについて、再帰的にこの
> //メソッドが呼び出される。パラメータcに現在処理中のコンポーネントが
> //わたされる。
> }
> }
> 
> 
>  こんな感じですね。一覧を作るのがあとで処理をすることが目的であれば、一覧を作るまでもなく、component
> メソッド内に処理を書けばよいわけです。再起処理を自分で書く必要もないです。
>  一覧リストが欲しいのであれば、Listを作っておいて、componentメソッドの中でListにaddするとよいでしょう。
> 
>  componentメソッドがComponent.IVisitor.CONTINUE_TRAVERSAL(nullと同義です)以外を返すか、すべてのコン
> ポーネントを走査すると処理が終わります。
> 
> 
>  直接の子コンポーネントだけを取りたいときには、iteratorメソッドを使うと良いです。ただしこちらは再帰的
> には検索してくれません。
> 
> 
> On 2009/03/01, at 15:57, Hoso s wrote:
> 
> >
> > こんにちは、細川と申します。
> > 
> >  Wicketでアプリケーションを作っていて、とあるコンポーネントに追加されたコンポーネントの一覧を取得したいのですが、どのような方法がありますでしょうか?
> > 
> >  実際にはWebPageにadd()されたコンポーネントの(WebPage直下から追加されたコンポーネントを再帰的に検索した)一覧を取得したいと思っています。なので、任意のMarkupContainerがあれば再帰的にadd()したコンポーネントを取得できると考えたのですが。
> > 
> >  MarkupContainerにはget(String)で指定したコンポーネントを取得できるようですが、追加されたコンポーネントの一覧を取得するためのメソッドが無いようなので質問させていただきました。なにか他のクラスを経由して一覧を取得する方法などがあるのでしょうか?
> > 
> >  よろしくお願いします。
> >
> > 【映画】007、メリケン・・話題の映画一挙紹介!この冬どれを観る? 話題の映画一挙紹介!この冬どれを観る?_______________________________________________
> > Wicket-ja-user mailing list
> > Wicke****@lists*****
> > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
> 
> ---------------------------------------------------
> 矢野 勉(やの つとむ)
> 電子メール:benbrand_at_mac.com
> ---------------------------------------------------
> 
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user

_________________________________________________________________
【無料】メッセで使える動画絵文字『ひとこと動画』を使おう【配信中】
http://ch.nicovideo.jp/channel/ch168
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Download 



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