Author: abelevich
Date: 2010-10-12 11:37:45 -0400 (Tue, 12 Oct 2010)
New Revision: 19542
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js
Log:
keyboard keys proccess
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js 2010-10-12
15:35:33 UTC (rev 19541)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceBase.js 2010-10-12
15:37:45 UTC (rev 19542)
@@ -1,4 +1,22 @@
// TODO: remove when these functions will be moved to the RichFaces.Event <!--
+
+(function (rf) {
+ rf.KEYS = {
+ BACKSPACE: 8,
+ TAB: 9,
+ RETURN: 13,
+ ESC: 27,
+ PAGEUP: 33,
+ PAGEDOWN: 34,
+ LEFT: 37,
+ UP: 38,
+ RIGHT: 39,
+ DOWN: 40,
+ DEL: 46
+ };
+})(RichFaces);
+
+
$.extend(RichFaces.Event, {
bindScrollEventHandlers: function(element, handler, component) {
var elements = [];
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js 2010-10-12
15:35:33 UTC (rev 19541)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceInput.js 2010-10-12
15:37:45 UTC (rev 19542)
@@ -47,7 +47,15 @@
},
__keydownHandler: function(e) {
- switch(e.keyCode) {
+ var code;
+
+ if(e.keyCode) {
+ code = e.keyCode;
+ } else if(e.which) {
+ code = e.which;
+ }
+
+ switch(code) {
case 27:
this.cancel();
break;
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2010-10-12
15:35:33 UTC (rev 19541)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2010-10-12
15:37:45 UTC (rev 19542)
@@ -79,6 +79,30 @@
}
}
},
+
+ __keydownHandler: function(e) {
+ $super.__keydownHandler(e);
+
+ var code;
+
+ if(e.keyCode) {
+ code = e.keyCode;
+ } else if(e.which) {
+ code = e.which;
+ }
+
+ switch(code) {
+ case rf.KEYS.DOWN:
+ e.preventDefault();
+ this.select.__onKeyDown(e);
+ break;
+
+ case rf.KEYS.UP:
+ e.preventDefault();
+ this.select.__onKeyUp(e);
+ break;
+ }
+ },
__blurHandler: function(e) {
var target = $(e.originalEvent.explicitOriginalTarget);
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js
===================================================================
---
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js 2010-10-12
15:35:33 UTC (rev 19541)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js 2010-10-12
15:37:45 UTC (rev 19542)
@@ -1,3 +1,20 @@
+//TODO: utils?
+(function (rf) {
+ rf.KEYS = {
+ BACKSPACE: 8,
+ TAB: 9,
+ RETURN: 13,
+ ESC: 27,
+ PAGEUP: 33,
+ PAGEDOWN: 34,
+ LEFT: 37,
+ UP: 38,
+ RIGHT: 39,
+ DOWN: 40,
+ DEL: 46
+ };
+})(RichFaces);
+
(function ($, rf) {
rf.ui = rf.ui || {};
@@ -4,7 +21,7 @@
var INTERFACE = {
SelectListener : {
- processItem: function(event, element){}
+ processItem: function(e, element){}
}
};
@@ -19,6 +36,11 @@
this.select.bind("blur", $.proxy(this.__blurHandler, this));
this.itemsCord.bind("mouseover", $.proxy(this.__mouseHandler, this));
this.itemsCord.bind("click", $.proxy(this.__mouseHandler, this));
+
+ this.index = -1;
+ //TODO: from option map?
+ this.visible = false;
+ this.updateItemsList();
};
rf.BaseComponent.extend(rf.ui.Select);
@@ -42,18 +64,55 @@
show: function() {
this.select.css("display", "");
+ this.visible = true;
},
hide: function() {
this.select.css("display", "none");
+ this.visible = false;
},
- processItem: function(event, element) {
+ processItem: function(e, element) {
if(isSelectListener(this.selectListener)) {
- this.selectListener.processItem(event, element);
+ this.selectListener.processItem(e, element);
}
},
+ isVisible: function() {
+ return this.visible;
+ },
+
+ __selectItem: function(e, index) {
+ var item;
+
+ if (this.index != -1) {
+ item = this.items.eq(this.index);
+ item.removeClass(this.selectItemCss);
+ }
+
+ this.index += index;
+ if ( this.index < 0 ) {
+ this.index = this.items.length - 1;
+ } else if (this.index >= this.items.length) {
+ this.index = 0;
+ }
+
+ item = this.items.eq(this.index);
+ item.addClass(this.selectItemCss);
+ },
+
+ __onEnter: function(e) {
+
+ },
+
+ __onKeyUp: function(e) {
+ this.__selectItem(e, -1);
+ },
+
+ __onKeyDown: function(e) {
+ this.__selectItem(e, 1);
+ },
+
__getCurrentElement: function() {
return processed;
},
@@ -63,10 +122,10 @@
return false;
},
- __mouseHandler: function(event) {
- var element = $(event.target).closest("."+this.itemCss,
event.currentTarget);
- if (event&& element) {
- if(event.type == 'mouseover') {
+ __mouseHandler: function(e) {
+ var element = $(e.target).closest("."+this.itemCss,
e.currentTarget);
+ if (e && element) {
+ if(e.type == 'mouseover') {
if(processed) {
processed.removeClass(this.selectItemCss);
}
@@ -74,13 +133,21 @@
processed = element;
}
- if(event.type == 'click') {
- this.processItem(event, element);
+ if(e.type == 'click') {
+ this.processItem(e, element);
}
}
return false;
- },
+ },
+ updateItemsList: function () {
+ this.items = this.itemsCord.find("."+this.itemCss);
+ },
+
+ __getItems: function () {
+ return this.items;
+ },
+
__getId: function() {
return this.id;
}