TabPanelのアクティブアイテムをComponentQueryで選択する

Ext JS 4 にて同じクラスからインスタンス化した複数のタブアイテムの中からアクティブなものをComponentQueryで取得する方法がわからぬとつぶやいたら、 居酒屋でくつろいでいる @kotsutsumi 師匠が教えてくれたという顛末。
0
中村 久司 @martini3oz

@kotsutsumi tab[active]でタブは取れるのですが、その子が取れないですね。なんでかな。

2012-10-08 22:30:45
小堤一弘 @kotsutsumi

@martini3oz その子じゃなくてtab[active]自体が、hogepanelになってね?

2012-10-08 22:31:25
中村 久司 @martini3oz

@kotsutsumi 孫とかもとれないんですよ。 tabpanel grid とやると帰ってくるけど、 tabpanel tab[active] grid だと帰ってこない。

2012-10-08 22:36:33
小堤一弘 @kotsutsumi

@martini3oz あ、子供じゃねーわ。タブのクリックするところか、それ。

2012-10-08 22:37:20
中村 久司 @martini3oz

@kotsutsumi あ、そういうことか。tab は、それこそ、タブ、そのものw

2012-10-08 22:37:51
小堤一弘 @kotsutsumi

@martini3oz 大分前に同じ事はまったことを思い出したw

2012-10-08 22:38:14
小堤一弘 @kotsutsumi

@martini3oz えっと、hogepanel.tabがさっきのtabpanel tab[active]とイコールになるのよ

2012-10-08 22:40:18
小堤一弘 @kotsutsumi

@martini3oz つまり、tabpanel hogepanel.tab[active]とかでいけないかな?ってこと。

2012-10-08 22:41:20
中村 久司 @martini3oz

@kotsutsumi その式はクエリーに使えないですね。それを使ってhogepanelに判定メソッドつくりましょうかね。

2012-10-08 22:45:34
小堤一弘 @kotsutsumi

@martini3oz 手元で動かせればw まぁ確かにクエリー的に動かないよね、属性判定 [ ... ] だしな。Ext.ComponentQuery.pseudos で 関数追加して、http://t.co/L4tCjDby 'hogepanel:isActive'とかすれば?

2012-10-08 22:48:34
中村 久司 @martini3oz

今日のやりとりの結果はまとめるべきだろうな。

2012-10-08 22:50:15
小堤一弘 @kotsutsumi

Ext.ComponentQuery.pseudos.isActive = function(items) { ... (判定処理) ... }; して、'tabpanel hogepanel:isActive'かな。

2012-10-08 22:50:25
小堤一弘 @kotsutsumi

@martini3oz できたけど?はったほうがいい?

2012-10-08 22:57:59
中村 久司 @martini3oz

@kotsutsumi pseudosでやるやつですか?お願いします。

2012-10-08 22:58:35
小堤一弘 @kotsutsumi

@martini3oz http://t.co/bQUKe7Oz ほい、動くファイルいまスカイプでおくるわ

2012-10-08 23:00:13
小堤一弘 @kotsutsumi

Active tab panel decision by the component query for Ext JS 4 http://t.co/bQUKe7Oz

2012-10-08 23:01:40
中村 久司 @martini3oz

@kotsutsumi し、ししょーありがとうございますぅ (ToT)

2012-10-08 23:02:30
小堤一弘 @kotsutsumi

@martini3oz まぁ panel:isActive部分を、自分のxtypeにするなり、好きにして、好きにして♪煮るなり焼くなり、好きにして♥ (SPAM)

2012-10-08 23:03:47
小堤一弘 @kotsutsumi

あれ、SPAMのCMだったか。

2012-10-08 23:04:09
小堤一弘 @kotsutsumi

まぁということで、結論としては、TabPanelのアクティブなアイテムを判定するためにComponentQueryを使うなら、pseudosでisActiveとか適当に作って、アイテムのtabプロパティのactiveを判定してあげるとさっくりですね。今日の3分クッキングでした

2012-10-08 23:06:57