12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /*
- Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
- */
- if(!dojo._hasResource["dijit.form.HorizontalRuleLabels"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
- dojo._hasResource["dijit.form.HorizontalRuleLabels"] = true;
- dojo.provide("dijit.form.HorizontalRuleLabels");
- dojo.require("dijit.form.HorizontalRule");
- dojo.declare("dijit.form.HorizontalRuleLabels", dijit.form.HorizontalRule,
- {
- // summary:
- // Labels for `dijit.form.HorizontalSlider`
- templateString: '<div class="dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH"></div>',
- // labelStyle: String
- // CSS style to apply to individual text labels
- labelStyle: "",
- // labels: String[]?
- // Array of text labels to render - evenly spaced from left-to-right or bottom-to-top.
- // Alternately, minimum and maximum can be specified, to get numeric labels.
- labels: [],
- // numericMargin: Integer
- // Number of generated numeric labels that should be rendered as '' on the ends when labels[] are not specified
- numericMargin: 0,
- // numericMinimum: Integer
- // Leftmost label value for generated numeric labels when labels[] are not specified
- minimum: 0,
- // numericMaximum: Integer
- // Rightmost label value for generated numeric labels when labels[] are not specified
- maximum: 1,
- // constraints: Object
- // pattern, places, lang, et al (see dojo.number) for generated numeric labels when labels[] are not specified
- constraints: {pattern:"#%"},
- _positionPrefix: '<div class="dijitRuleLabelContainer dijitRuleLabelContainerH" style="left:',
- _labelPrefix: '"><div class="dijitRuleLabel dijitRuleLabelH">',
- _suffix: '</div></div>',
- _calcPosition: function(pos){
- // summary:
- // Returns the value to be used in HTML for the label as part of the left: attribute
- // tags:
- // protected extension
- return pos;
- },
- _genHTML: function(pos, ndx){
- return this._positionPrefix + this._calcPosition(pos) + this._positionSuffix + this.labelStyle + this._labelPrefix + this.labels[ndx] + this._suffix;
- },
- getLabels: function(){
- // summary:
- // Overridable function to return array of labels to use for this slider.
- // Can specify a getLabels() method instead of a labels[] array, or min/max attributes.
- // tags:
- // protected extension
- // if the labels array was not specified directly, then see if <li> children were
- var labels = this.labels;
- if(!labels.length){
- // for markup creation, labels are specified as child elements
- labels = dojo.query("> li", this.srcNodeRef).map(function(node){
- return String(node.innerHTML);
- });
- }
- this.srcNodeRef.innerHTML = '';
- // if the labels were not specified directly and not as <li> children, then calculate numeric labels
- if(!labels.length && this.count > 1){
- var start = this.minimum;
- var inc = (this.maximum - start) / (this.count-1);
- for(var i=0; i < this.count; i++){
- labels.push((i < this.numericMargin || i >= (this.count-this.numericMargin)) ? '' : dojo.number.format(start, this.constraints));
- start += inc;
- }
- }
- return labels;
- },
- postMixInProperties: function(){
- this.inherited(arguments);
- this.labels = this.getLabels();
- this.count = this.labels.length;
- }
- });
- }
|