@@ -40,7 +40,7 @@ package org.apache.royale.jewel.beads
40
40
import org.apache.royale.html.TextButton ;
41
41
42
42
/**
43
- * The SliderView class creates the visual elements of the org.apache.royale.html .Slider
43
+ * The SliderView class creates the visual elements of the org.apache.royale.jewel .Slider
44
44
* component. The Slider has a track and a thumb control which are also created with view beads.
45
45
*
46
46
* @viewbead
@@ -57,84 +57,25 @@ package org.apache.royale.jewel.beads
57
57
* @langversion 3.0
58
58
* @playerversion Flash 10.2
59
59
* @playerversion AIR 2.6
60
- * @productversion Royale 0.0
60
+ * @productversion Royale 0.9.3
61
61
*/
62
62
public function SliderView ()
63
63
{
64
64
super ();
65
65
}
66
66
67
- private var rangeModel: IRangeModel;
68
-
69
- /**
70
- * @copy org.apache.royale.core.IBead#strand
71
- *
72
- * @langversion 3.0
73
- * @playerversion Flash 10.2
74
- * @playerversion AIR 2.6
75
- * @productversion Royale 0.0
76
- */
77
- override public function set strand (value :IStrand ):void
78
- {
79
- super . strand = value ;
80
-
81
- var layout : IBeadLayout = _strand . getBeadByType(IBeadLayout) as IBeadLayout;
82
- if (layout == null ) {
83
- var klass: Class = ValuesManager. valuesImpl. getValue (_strand , "iBeadLayout" );
84
- _strand . addBead(new klass() as IBead);
85
- }
86
-
87
- COMPILE :: SWF {
88
- var s: UIBase = UIBase(_strand );
89
-
90
- _track = new Button ();
91
- _track . addBead(new (ValuesManager. valuesImpl. getValue (_strand , "iTrackView" )) as IBead);
92
- _track . className = "SliderTrack" ;
93
- s. addElement (_track );
94
-
95
- _thumb = new TextButton();
96
- _thumb . text = '\u 29BF' ;
97
- _thumb . addBead(new (ValuesManager. valuesImpl. getValue (_strand , "iThumbView" )) as IBead);
98
- _thumb . className = "SliderThumb" ;
99
- s. addElement (_thumb );
100
-
101
- }
102
- /*COMPILE::JS {
103
- _track = new Button();
104
- _track.className = "SliderTrack";
105
- host.addElement(_track);
106
-
107
- _thumb = new TextButton();
108
- _thumb.className = "SliderThumb";
109
- _thumb.text = '\u29BF';
110
- host.addElement(_thumb);
111
- }*/
112
-
113
- rangeModel = _strand . getBeadByType(IBeadModel) as IRangeModel;
114
-
115
- var rm: IEventDispatcher = rangeModel as IEventDispatcher ;
116
-
117
- // listen for changes to the model and adjust the UI accordingly.
118
- rm. addEventListener ("valueChange" ,modelChangeHandler);
119
- rm. addEventListener ("minimumChange" ,modelChangeHandler);
120
- rm. addEventListener ("maximumChange" ,modelChangeHandler);
121
- rm. addEventListener ("stepSizeChange" ,modelChangeHandler);
122
- rm. addEventListener ("snapIntervalChange" ,modelChangeHandler);
123
-
124
- (_strand as IEventDispatcher ). dispatchEvent (new Event ("layoutNeeded" ));
125
- }
126
-
127
67
private var _track : Button ;
128
- private var _thumb : TextButton;
129
-
68
+ private var _thumb : Button ;
69
+
70
+ private var rangeModel: IRangeModel;
130
71
131
72
/**
132
73
* The track component.
133
74
*
134
75
* @langversion 3.0
135
76
* @playerversion Flash 10.2
136
77
* @playerversion AIR 2.6
137
- * @productversion Royale 0.0
78
+ * @productversion Royale 0.8
138
79
*/
139
80
public function get track ():IUIBase
140
81
{
@@ -147,27 +88,76 @@ package org.apache.royale.jewel.beads
147
88
* @langversion 3.0
148
89
* @playerversion Flash 10.2
149
90
* @playerversion AIR 2.6
150
- * @productversion Royale 0.0
91
+ * @productversion Royale 0.8
151
92
*/
152
93
public function get thumb ():IUIBase
153
94
{
154
95
return _thumb ;
155
96
}
156
-
97
+
157
98
/**
158
- * @royaleignorecoercion org.apache.royale.core.UIBase
99
+ * @copy org.apache.royale.core.IBead#strand
100
+ *
101
+ * @langversion 3.0
102
+ * @playerversion Flash 10.2
103
+ * @playerversion AIR 2.6
104
+ * @productversion Royale 0.8
159
105
*/
160
- private function get host ():UIBase
106
+ override public function set strand ( value : IStrand ): void
161
107
{
162
- return _strand as UIBase;
108
+ super . strand = value ;
109
+
110
+ var host: UIBase = UIBase(_strand );
111
+ rangeModel = _strand . getBeadByType(IBeadModel) as IRangeModel;
112
+
113
+ COMPILE :: SWF {
114
+ _track = new Button ();
115
+ _track . addBead(new (ValuesManager. valuesImpl. getValue (_strand , "iTrackView" )) as IBead);
116
+ _track . className = "SliderTrack" ;
117
+ host. addElement (_track );
118
+
119
+ _thumb = new Button ();
120
+ _thumb . addBead(new (ValuesManager. valuesImpl. getValue (_strand , "iThumbView" )) as IBead);
121
+ _thumb . className = "SliderThumb" ;
122
+ host. addElement (_thumb );
123
+
124
+ }
125
+
126
+ COMPILE :: JS
127
+ {
128
+ var htmlSliderElement: HTMLInputElement = host. element as HTMLInputElement;
129
+ htmlSliderElement. value = String (rangeModel. value );
130
+ }
131
+
132
+ // listen for changes to the model and adjust the UI accordingly.
133
+ IEventDispatcher (rangeModel). addEventListener ("stepSizeChange" , modelChangeHandler);
134
+ IEventDispatcher (rangeModel). addEventListener ("minimumChange" , modelChangeHandler);
135
+ IEventDispatcher (rangeModel). addEventListener ("maximumChange" , modelChangeHandler);
136
+ IEventDispatcher (rangeModel). addEventListener ("valueChange" , modelChangeHandler);
137
+
138
+ modelChangeHandler(null );
163
139
}
164
140
165
141
/**
166
142
* @private
143
+ *
144
+ * @langversion 3.0
145
+ * @playerversion Flash 10.2
146
+ * @playerversion AIR 2.6
147
+ * @productversion Royale 0.8
167
148
*/
168
149
private function modelChangeHandler ( event :Event ) : void
169
150
{
170
- (_strand as IEventDispatcher ). dispatchEvent (new Event ("layoutNeeded" ));
151
+ COMPILE :: JS
152
+ {
153
+ var inputElement: HTMLInputElement = (UIBase(_strand ). element as HTMLInputElement);
154
+ inputElement. step = String (rangeModel. stepSize );
155
+ inputElement. min = String (rangeModel. minimum );
156
+ inputElement. max = String (rangeModel. maximum );
157
+ inputElement. value = rangeModel. value . toString ();
158
+ }
159
+
160
+ //(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
171
161
}
172
162
}
173
163
}
0 commit comments