client/js/controls/stepper/stepper.js in rsence-pre-3.0.0.8 vs client/js/controls/stepper/stepper.js in rsence-pre-3.0.0.9
- old
+ new
@@ -1,9 +1,9 @@
/*** = Description
- ** HStepper is a control unit made of two adjacent buttons with up and down arrows
- ** to select the previous or next of a set of contiguous values.
+ ** HStepper is a control unit made of two adjacent buttons with up and down arrows
+ ** to select the previous or next of a set of contiguous values.
** Normally, a HStepper instance works in combination with a HTextControl or a HStringView instance.
**
** = Instance Variables
** +minValue+:: The smallest allowed value
** +maxValue+:: The biggest allowed value
@@ -12,55 +12,55 @@
** +wrapAround+:: Boolean to control wrap-around behaviour
***/
var//RSence.Controls
HStepper = HControl.extend({
-
+
componentName: "stepper",
-
+
defaultEvents: {
mouseDown: true,
click: true,
keyDown: true,
mouseWheel: true
},
-
- controlDefaults: (HControlDefaults.extend({
+
+ controlDefaults: HControlDefaults.extend({
minValue: 0,
maxValue: 100,
stepSize: 1,
repeatInterval: 200,
wrapAround: false
- })),
-
+ }),
+
/** Setter for wrap-around behaviour
**/
setWrapAround: function(_on){
this.options.wrapAround = _on;
},
-
+
// -- Makes sure the value is in its boundaries and either wrap-around
// to min/max or revert to the current value ++
_checkValueBoundaries: function(_value){
-
+
// -- checks for boundaries ++
var _this = this,
_options = _this.options,
_minVal = _options.minValue,
_maxVal = _options.maxValue,
_tooSmall = _value<_minVal,
_tooBig = _value>_maxVal,
_overflow = ( _tooSmall || _tooBig );
-
+
// -- The value is ok, just return it as it is ++
if (!_overflow) {
return _value;
}
-
-
+
+
/// -- Handle the overflow condition: ++
-
+
// -- Wrap around uses min/max as new value as either is reached ++
if (_options.wrapAround) {
if (_tooSmall) {
return _maxVal;
}
@@ -70,48 +70,48 @@
}
// -- Any other condition means we just revert the changes ++
else {
return _this.value;
}
-
+
},
-
+
/** Adds the step size to the value
**/
stepUp: function(){
this.setValue(
this._checkValueBoundaries(
this.value + this.options.stepSize
)
);
},
-
+
/** Subtracts the step size from the value
**/
stepDown: function(){
this.setValue(
this._checkValueBoundaries(
this.value - this.options.stepSize
)
);
},
-
+
// -- Background-offset of the state images up/down,
// overrideable in the html template ++
bgStateUp: '0px -23px',
bgStateDown: '0px -46px',
-
+
// enables the up/down effect in the image based on the _up boolean (true means up, false means down)
_bgStateOn: function( _up ){
ELEM.setStyle(this.markupElemIds.state,'background-position',_up?this.bgStateUp:this.bgStateDown);
},
-
+
// reverts the up/down effect
_bgStateOff: function(){
ELEM.setStyle(this.markupElemIds.state,'background-position','');
},
-
+
// Starts the repeating stepping up or down (when the mouse button or a arrow key is down)
_setRepeatInterval: function( _up ){
var _this = this,
_options = _this.options;
_this._repeatInterval && clearInterval( _this._repeatInterval );
@@ -120,43 +120,43 @@
_this._repeatInterval = setInterval(
_up?function(){_this.stepUp();}:function(){_this.stepDown();},
_options.repeatInterval
);
},
-
+
// Stops the repeating stepping up or down enabled in _setRepeatInterval
_clearRepeatInterval: function(){
this._bgStateOff();
clearInterval( this._repeatInterval );
},
-
+
/** Checks where the mouseDown happened and adjusts the stepper up/down based on that
**/
mouseDown: function( x, y ){
this.setMouseUp(true);
this._setRepeatInterval( ( y - this.pageY() ) <= 11 );
return true;
},
-
+
/** Stops the repeating stepping, when the mouse button goes up
**/
mouseUp: function(){
this._clearRepeatInterval();
return true;
},
-
+
click: function(){
this.mouseUp();
return true;
},
-
+
/** Stops the repeating stepping, when the control becomes inactive
**/
blur: function(){
this._clearRepeatInterval();
},
-
+
/** adjusts stepping up/down based on the arrow key pressed.
* up and right arrow keys steps the value up, down and left steps the value down
**/
keyDown: function( _keyCode ) {
this.setKeyUp(true);
@@ -181,22 +181,22 @@
else if (_keyCode === Event.KEY_PAGEDOWN) {
this._setRepeatInterval( 0 );
}
return true;
},
-
+
/** stops the repeating when a key goes up
**/
keyUp: function(){
this._clearRepeatInterval();
return true;
},
-
+
/** steps the value up/down based on the mouse scroll wheel
**/
mouseWheel: function(_delta) {
(_delta>0)?this.stepUp():this.stepDown();
return true;
}
-
-
+
+
});