Author: konstantin.mishin
Date: 2010-07-30 13:16:50 -0400 (Fri, 30 Jul 2010)
New Revision: 18302
Modified:
root/ui-sandbox/inputs/trunk/inputnumberslider/src/main/resources/META-INF/resources/inputNumberSlider.js
Log:
RF-8983
Modified:
root/ui-sandbox/inputs/trunk/inputnumberslider/src/main/resources/META-INF/resources/inputNumberSlider.js
===================================================================
---
root/ui-sandbox/inputs/trunk/inputnumberslider/src/main/resources/META-INF/resources/inputNumberSlider.js 2010-07-30
15:36:47 UTC (rev 18301)
+++
root/ui-sandbox/inputs/trunk/inputnumberslider/src/main/resources/META-INF/resources/inputNumberSlider.js 2010-07-30
17:16:50 UTC (rev 18302)
@@ -29,6 +29,7 @@
minValue: 0,
maxValue: 100,
step: 5,
+ value: 0,
init: function (id) {
this.range = this.maxValue - this.minValue;
@@ -39,6 +40,7 @@
this.handle = this.track.children(".rf-ins-h");
this.tooltip = this.element.children(".rf-ins-tt");
+ this.value = Number(this.input.val());
this.track[0].tabIndex = 0;
this.handle.css("margin-left", this.input.val() * (this.track.width()
- this.handle.width()) / this.range);
@@ -52,25 +54,32 @@
},
setValue: function (value) {
- value = Number(value);
- if (value > this.maxValue) {
- value = this.maxValue;
- } else if (value < this.minValue) {
- value = this.minValue;
- } else {
- value = Math.round(value / this.step) * this.step; //TODO Add normal support of
float values. E.g. '0.3' should be instead of '0.30000000000000004'.
- }
- if (value != this.input.val()) {
- this.input.val(value);
- var left = value * (this.track.width() - this.handle.width()) / this.range;
- this.handle.css("margin-left", left);
- this.tooltip.text(value);
- this.tooltip.setPosition(this.handle,{from: 'LT', offset: [0, -3]});
//TODO Seems offset doesn't work now.
- }
+ if (!isNaN(value)) {
+ if (value > this.maxValue) {
+ value = this.maxValue;
+ } else if (value < this.minValue) {
+ value = this.minValue;
+ } else {
+ value = Math.round(value / this.step) * this.step; //TODO Add normal support
of float values. E.g. '0.3' should be instead of '0.30000000000000004'.
+ }
+ if (value != this.value) {
+ this.input.val(value);
+ var left = value * (this.track.width() - this.handle.width()) / this.range;
+ this.handle.css("margin-left", left + "px");
+ this.tooltip.text(value);
+ this.tooltip.setPosition(this.handle,{from: 'LT', offset: [0, -3]});
//TODO Seems offset doesn't work now.
+ this.value = value;
+ }
+ }
},
__inputHandler: function () {
- this.setValue(this.input.val());
+ var value = Number(this.input.val());
+ if (isNaN(value)) {
+ this.input.val(this.value);
+ } else {
+ this.setValue(value);
+ }
},
__keydownHandler: function (event) {
@@ -99,11 +108,11 @@
jQueryDocument.one("mouseup", jQuery.proxy(this.__mouseupHandler,
this));
this.handle.addClass("rf-ins-h-s");
this.tooltip.show();
- event.preventDefault();
},
__mousemoveHandler: function (event) {
- var value = this.range * (event.pageX - this.track.position().left) /
(this.track.width() - this.handle.width()) + this.minValue;
+ var value = this.range * (event.pageX - this.track.position().left) /
(this.track.width()
+ - this.handle.width()) + this.minValue;
this.setValue(value);
event.preventDefault();
},
Show replies by date