mx:Tree with checkbox

mx:Tree with checkbox

Tree上にチェックボックスを表示させるには・・・・
[AS]
tree.itemRenderer = new IClassFactory(TreeCheckBoxRenderer);
[/AS]
のように、新たに作成するItemRendererを設定する。
次に、TreeCheckBoxRendererを実装。

[AS]
class TreeCheckBoxRenderer extends TreeItemRenderer
[/AS]
のように、TreeItemRenderer を継承することがポイント!!

次に、ItemRendererのcreateChildren()メソッドでは
[AS]
override protected function createChildren():void{
super.createChildren();
checkBox = new CheckBox();
checkBox.setStyle(“verticalAlign”,”middle”);
this.addChild(checkBox);
}
[/AS]
とする。要するにCheckBoxが追加できればいいのと、ここでは、setStyleでverticalAlignがmiddleのときしか考慮していない。

このままでは、表示する際にチェックボックスの位置がおかしい。
したがって、updateDisplayList()で位置を調整する。

CheckBoxの位置がおかしい

CheckBoxの位置がおかしい

[AS]
super.updateDisplayList(unscaledWidth,unscaledHeight);

if(super.data){
if(icon != null){
checkBox.x = icon.x;
icon.x = checkBox.x + checkBox.width + 20;
label.x = icon.x + icon.width + 5;
}
else{
checkBox.x = super.label.x;
label.x = checkBox.x + checkBox.width + 20;
}
checkBox.y = ( unscaledHeight – checkBox.height ) /2;
}
[/AS]

このあたりは、TreeItemRendererのメソッドを見れば参考になると思います。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2009年4月
« 3月   5月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ