root/as3/CellCheckBox/src/CellCheckBox.as

リビジョン 169, 3.1 kB (コミッタ: sasa, コミット時期: 4 年 前)

--

  • svn:mime-type 属性の設定値: text/plain
Line 
1 package
2 {
3     import flash.events.Event;
4     import mx.controls.CheckBox;
5     import mx.controls.dataGridClasses.DataGridListData;
6     import mx.core.IFlexDisplayObject;
7     import mx.core.mx_internal;
8     /**
9      * CellCheckBox
10      * @author sasa
11      * itemRenderer 用 カスタム CheckBox (※要 Flex 2 SDK )
12      */
13     public class CellCheckBox extends CheckBox
14     {
15         /**
16          * mValue
17          * @private
18          * クラス内部で保持する selected 値
19          */
20         private var mValue:Boolean;
21         /**
22          * CellCheckBox
23          * コンストラクタ
24          */
25         public function CellCheckBox()
26         {
27             super();
28             addEventListener(Event.CHANGE, changeHandler, false, 0, true);
29         }
30         /**
31          * value
32          * @private
33          * selected 値の再生成
34          */
35         private function get value():Boolean
36         {
37               return mValue;
38         }
39         /**
40          * @private
41          */
42         private function set value(aValue:Boolean):void
43         {
44             mValue = aValue;
45             invalidateProperties();
46         }
47         /**
48          * data
49          * @param aValue itemRenderer の値
50          * @private
51          * プロパティ CheckBox の selected 値
52          */
53         override public function set data(aValue:Object):void
54         {
55             super.data = aValue;
56             if(null != aValue)
57             {
58                 value = Boolean(aValue[DataGridListData(listData).dataField]);
59             }
60         }
61         /**
62          * commitProperties
63          * @private
64          * Binding しているプロパティの更新
65          */
66         override protected function commitProperties():void
67         {
68             selected = mValue;
69             super.commitProperties();
70         }
71         /**
72          * updateDisplayList
73          * @param aUnscaledWidth 親コンテナにより決定されるコンポーネントの幅
74          * @param aUnscaledHeight 親コンテナにより決定されるコンポーネントの高さ
75          * @private
76          * CheckBox の再描画と再配置
77          */
78         override protected function updateDisplayList(aUnscaledWidth:Number, aUnscaledHeight:Number):void
79         {
80             super.updateDisplayList(aUnscaledWidth, aUnscaledHeight);
81             var lObject:IFlexDisplayObject = mx_internal::currentIcon;
82             if(lObject)
83             {
84                 var lIconWidth :uint = lObject.width;
85                 var lIndent    :uint = (width - lIconWidth) / 2;
86                 lObject.x = lIndent;
87             }
88         }
89         /**
90          * changeHandler
91          * @param event Event オブジェクト
92          * @private
93          * CheckBox の change イベント
94          */
95         private function changeHandler(event:Event):void
96         {
97             if (listData)
98             {
99                 value = selected;
100                 data[DataGridListData(listData).dataField] = value;
101             }
102         }
103     }
104 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。