Author: konstantin.mishin
Date: 2010-12-31 10:41:35 -0500 (Fri, 31 Dec 2010)
New Revision: 20859
Added:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/jquery.mousewheel.js
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSlider.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.js
trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml
trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml
Log:
RF-9638
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSlider.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSlider.js 2010-12-31
15:17:08 UTC (rev 20858)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSlider.js 2010-12-31
15:41:35 UTC (rev 20859)
@@ -68,6 +68,7 @@
var proxy = jQuery.proxy(this.__inputHandler, this);
this.input.change(proxy);
this.input.submit(proxy);
+ this.element.mousewheel(jQuery.proxy(this.__mousewheelHandler, this));
this.track.keydown(jQuery.proxy(this.__keydownHandler, this));
this.decreaseButton.mousedown(jQuery.proxy(this.__decreaseHandler, this));
this.increaseButton.mousedown(jQuery.proxy(this.__increaseHandler, this));
@@ -119,6 +120,16 @@
}
},
+ __mousewheelHandler: function (event, delta, deltaX, deltaY) {
+ delta = deltaX || deltaY;
+ if (delta > 0) {
+ this.increase(event);
+ } else if (delta < 0) {
+ this.decrease(event);
+ }
+ return false;
+ },
+
__keydownHandler: function (event) {
if (event.keyCode == 37) { //LEFT
this.__setValue(Number(this.input.val()) - this.step, event);
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.js 2010-12-31
15:17:08 UTC (rev 20858)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inputNumberSpinner.js 2010-12-31
15:41:35 UTC (rev 20859)
@@ -53,6 +53,7 @@
this.input.change(proxy);
this.input.submit(proxy);
this.input.submit(proxy);
+ this.input.mousewheel(jQuery.proxy(this.__mousewheelHandler, this));
this.input.keydown(jQuery.proxy(this.__keydownHandler, this));
this.decreaseButton.mousedown(jQuery.proxy(this.__decreaseHandler, this));
this.increaseButton.mousedown(jQuery.proxy(this.__increaseHandler, this));
@@ -123,6 +124,16 @@
}
},
+ __mousewheelHandler: function (event, delta, deltaX, deltaY) {
+ delta = deltaX || deltaY;
+ if (delta > 0) {
+ this.increase(event);
+ } else if (delta < 0) {
+ this.decrease(event);
+ }
+ return false;
+ },
+
__keydownHandler: function (event) {
if (event.keyCode == 40) { //DOWN
this.decrease(event);
Added:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/jquery.mousewheel.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/jquery.mousewheel.js
(rev 0)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/jquery.mousewheel.js 2010-12-31
15:41:35 UTC (rev 20859)
@@ -0,0 +1,78 @@
+/*! Copyright (c) 2010 Brandon Aaron (
http://brandonaaron.net)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Thanks to:
http://adomas.org/javascript-mouse-wheel/ for some pointers.
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
+ *
+ * Version: 3.0.4
+ *
+ * Requires: 1.2.2+
+ */
+
+(function($) {
+
+var types = ['DOMMouseScroll', 'mousewheel'];
+
+$.event.special.mousewheel = {
+ setup: function() {
+ if ( this.addEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.addEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = handler;
+ }
+ },
+
+ teardown: function() {
+ if ( this.removeEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.removeEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = null;
+ }
+ }
+};
+
+$.fn.extend({
+ mousewheel: function(fn) {
+ return fn ? this.bind("mousewheel", fn) :
this.trigger("mousewheel");
+ },
+
+ unmousewheel: function(fn) {
+ return this.unbind("mousewheel", fn);
+ }
+});
+
+
+function handler(event) {
+ var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta =
0, returnValue = true, deltaX = 0, deltaY = 0;
+ event = $.event.fix(orgEvent);
+ event.type = "mousewheel";
+
+ // Old school scrollwheel delta
+ if ( event.wheelDelta ) { delta = event.wheelDelta/120; }
+ if ( event.detail ) { delta = -event.detail/3; }
+
+ // New school multidimensional scroll (touchpads) deltas
+ deltaY = delta;
+
+ // Gecko
+ if ( orgEvent.axis !== undefined && orgEvent.axis ===
orgEvent.HORIZONTAL_AXIS ) {
+ deltaY = 0;
+ deltaX = -1*delta;
+ }
+
+ // Webkit
+ if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
+ if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
+
+ // Add event and delta to the front of the arguments
+ args.unshift(event, delta, deltaX, deltaY);
+
+ return $.event.handle.apply(this, args);
+}
+
+})(jQuery);
\ No newline at end of file
Modified: trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml 2010-12-31
15:17:08 UTC (rev 20858)
+++ trunk/ui/input/ui/src/main/templates/inputnumberslider.template.xml 2010-12-31
15:41:35 UTC (rev 20859)
@@ -34,6 +34,7 @@
<cdk:resource-dependency library="org.richfaces"
name="inputNumberSlider.ecss" />
<cdk:resource-dependency library="org.richfaces"
name="base-component.reslib" />
<cdk:resource-dependency name="jquery.position.js" />
+ <cdk:resource-dependency library="org.richfaces"
name="jquery.mousewheel.js" />
<cdk:resource-dependency library="org.richfaces"
name="inputNumberSlider.js" />
</cc:interface>
<cc:implementation>
Modified: trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml 2010-12-31
15:17:08 UTC (rev 20858)
+++ trunk/ui/input/ui/src/main/templates/inputnumberspinner.template.xml 2010-12-31
15:41:35 UTC (rev 20859)
@@ -34,6 +34,7 @@
<cdk:resource-dependency library="org.richfaces"
name="inputNumberSpinner.ecss" />
<cdk:resource-dependency library="org.richfaces"
name="base-component.reslib" />
<cdk:resource-dependency name="jquery.position.js" />
+ <cdk:resource-dependency library="org.richfaces"
name="jquery.mousewheel.js" />
<cdk:resource-dependency library="org.richfaces"
name="inputNumberSpinner.js" />
</cc:interface>
<cc:implementation>