Ticket #3685: 3685.patch
| File 3685.patch, 4.5 kB (added by doughays, 16 months ago) |
|---|
-
form/Slider.js
4 4 dojo.require("dijit._Container"); 5 5 dojo.require("dojo.dnd.move"); 6 6 dojo.require("dijit.form.Button"); 7 dojo.require("dojo.number"); 7 8 8 9 dojo.declare( 9 10 "dijit.form.HorizontalSlider", … … 305 306 return pos; 306 307 }, 307 308 309 constructor: function(){ 310 this.labels = []; // initialize new array per instance 311 }, 312 308 313 _genHTML: function(pos, ndx){ 309 314 return this._positionPrefix + this._calcPosition(pos) + this._positionSuffix + this.labelStyle + this._labelPrefix + this.labels[ndx] + this._suffix; 310 315 }, … … 313 318 this.inherited('postMixInProperties', arguments); 314 319 if(!this.labels.length){ 315 320 // for markup creation, labels are specified as child elements 316 this.labels = dojo.query("> li", this.srcNodeRef).map(function(node){ 317 return String(node.innerHTML); 318 }); 321 dojo.query("*", this.srcNodeRef).orphan().forEach(function(node){ 322 if(node.tagName == "SCRIPT"){ 323 // script to generate labels 324 this.labels = this.labels.concat(dojo.parser._functionFromScript(node)()); 325 }else{ 326 // simple text 327 this.labels.push(String(node.innerHTML)); 328 } 329 }, this); 319 330 } 320 this.srcNodeRef.innerHTML="";321 331 }, 322 332 323 333 postCreate: function(){ … … 339 349 return 100-pos; 340 350 } 341 351 }); 352 353 dijit.form.NumericRuleLabels = function(/*Number*/start, /*Integer*/count, /*Number*/increment, /*Object*/constraints){ 354 var labels = []; 355 for (var i=0; i < count; i++){ 356 labels.push(dojo.number.format(start, constraints)); 357 start += increment; 358 } 359 return labels; 360 } -
tests/form/test_Slider.html
46 46 id="slider1"> 47 47 <ol dojoType="dijit.form.HorizontalRuleLabels" container="topDecoration" style="height:1.2em;font-size:75%;color:gray;"> 48 48 <li></li> 49 <li>20%</li> 50 <li>40%</li> 51 <li>60%</li> 52 <li>80%</li> 49 <script type="dijit/method">return dijit.form.NumericRuleLabels(.20, 4, .20, {pattern:"#%"})</script> 53 50 <li></li> 54 51 </ol> 55 <div dojoType="dijit.form.HorizontalRule" container="topDecoration" count= 11style="height:5px;"></div>52 <div dojoType="dijit.form.HorizontalRule" container="topDecoration" count=6 style="height:5px;"></div> 56 53 <div dojoType="dijit.form.HorizontalRule" container="bottomDecoration" count=5 style="height:5px;"></div> 57 54 <ol dojoType="dijit.form.HorizontalRuleLabels" container="bottomDecoration" style="height:1em;font-size:75%;color:gray;"> 58 55 <li>lowest</li> … … 61 58 </ol> 62 59 </div> 63 60 64 65 61 Slider1 Value:<input readonly id=slider1input size=4> 66 62 <br> 67 63 <button id="disableButton" dojoType="dijit.form.Button" onClick="dijit.byId('slider1').setDisabled( true);dijit.byId('disableButton').setDisabled(true);dijit.byId('enableButton').setDisabled(false);">Disable previous slider</button> … … 84 80 <div dojoType="dijit.form.VerticalRule" container="rightDecoration" count=11 style="width:5px;" ruleStyle="border-color:gray;"></div> 85 81 <ol dojoType="dijit.form.VerticalRuleLabels" container="rightDecoration" style="width:2em;color:gray;"> 86 82 <li></li> 87 <li>20</li> 88 <li>40</li> 89 <li>60</li> 90 <li>80</li> 83 <script type="dijit/method">return dijit.form.NumericRuleLabels(20, 4, 20, {pattern:"#"})</script> 91 84 <li></li> 92 85 </ol> 93 86 </div> … … 137 130 style="width:50%; height: 20px;" 138 131 id="sliderH2"> 139 132 <ol dojoType="dijit.form.HorizontalRuleLabels" container="topDecoration" style="height:1.2em;font-size:75%;color:gray;"> 140 <li></li> 141 <li>20%</li> 142 <li>40%</li> 143 <li>60%</li> 144 <li>80%</li> 145 <li></li> 133 <script type="dijit/method">return dijit.form.NumericRuleLabels(0, 7, 1/6, {pattern:"#.00%"})</script> 146 134 </ol> 147 <div dojoType="dijit.form.HorizontalRule" container="topDecoration" count= 11style="height:5px;"></div>135 <div dojoType="dijit.form.HorizontalRule" container="topDecoration" count=7 style="height:5px;"></div> 148 136 <div dojoType="dijit.form.HorizontalRule" container="bottomDecoration" count=5 style="height:5px;"></div> 149 137 <ol dojoType="dijit.form.HorizontalRuleLabels" container="bottomDecoration" style="height:1em;font-size:75%;color:gray;"> 150 138 <li>lowest</li> … … 153 141 </ol> 154 142 </div> 155 143 156 157 158 144 </body> 159 145 </html>