Author: abelevich
Date: 2010-10-12 11:40:14 -0400 (Tue, 12 Oct 2010)
New Revision: 19543
Added:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popupList.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/selectList.js
Log:
initial for the RF-9340
Added: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js
(rev 0)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js 2010-10-12
15:40:14 UTC (rev 19543)
@@ -0,0 +1,55 @@
+(function ($, rf) {
+
+ rf.ui = rf.ui || {};
+
+ rf.ui.Popup = function(id, options) {
+ this.id = id;
+ this.popup = $(document.getElementById(id));
+ this.visible = options.visible;
+
+ //TODO: remove this?
+ this.popup.bind("blur", $.proxy(this.__onBlur, this));
+
+ this.popup.bind("mouseover", $.proxy(this.__onMouseOver, this));
+ this.popup.bind("click", $.proxy(this.__onClick, this));
+ };
+
+ rf.BaseComponent.extend(rf.ui.Popup);
+ var $super = rf.ui.Popup.$super;
+
+ $.extend(rf.ui.Popup.prototype, (function () {
+
+ return{
+
+ name : "popup",
+
+ show: function() {
+ this.select.css("display", "");
+ this.visible = true;
+ },
+
+ hide: function() {
+ this.select.css("display", "none");
+ this.visible = false;
+ },
+
+ isVisible: function() {
+ return this.visible;
+ },
+
+ getId: function() {
+ return this.id;
+ },
+
+ __onMouseOver: function(e) {
+ },
+
+ __onClick: function(e) {
+ },
+
+ __onBlurHandler: function(e) {
+ }
+
+ })());
+
+})(jQuery, window.RichFaces);
\ No newline at end of file
Added: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popupList.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popupList.js
(rev 0)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/popupList.js 2010-10-12
15:40:14 UTC (rev 19543)
@@ -0,0 +1,114 @@
+(function ($, rf) {
+
+ rf.ui = rf.ui || {};
+
+ var INTERFACE = {
+ SelectListener : {
+ processItem: function(e, element){}
+ }
+ };
+
+ rf.ui.PopupList = function(id, listener, options) {
+ $super.constructor.call(this, id, options);
+ this.selectListener = listener;
+ this.selectItemCss = options.selectItemCss;
+ this.itemCss = options.itemCss;
+
+ //TODO: from option map?
+ this.index = -1;
+ this.visible = false;
+ this.__updateItemsList();
+ };
+
+ rf.ui.Popup.extend(rf.ui.PopupList);
+ var $super = rf.ui.PopupList.$super;
+
+ $.extend(rf.ui.PopupList.prototype, ( function () {
+
+ var isSelectListener = function(obj) {
+ for (var method in INTERFACE.SelectListener) {
+ if ( (typeof obj[method] != typeof INTERFACE.SelectListener[method]) ) {
+ return false;
+ }
+ }
+ return true;
+ };
+
+ return{
+
+ name : "popupList",
+
+ processItem: function(e, element) {
+ if(isSelectListener(this.selectListener)) {
+ this.selectListener.processItem(e, element);
+ }
+ },
+
+ __updateItemsList: function () {
+ this.items = this.popup.find("."+this.itemCss);
+ },
+
+ __select: function(index) {
+ var item;
+
+ if (this.index != -1) {
+ item = this.items.eq(this.index);
+ this.__unSelectItem(item);
+ }
+
+ 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);
+ this.__selectItem(item);
+ },
+
+ __selectItem: function(item) {
+ item.addClass(this.selectItemCss);
+ },
+
+ __unSelectItem: function(item) {
+ item.removeClass(this.selectItemCss);
+ },
+
+ __onEnter: function(e) {
+ },
+
+ //remove event, rename
+ __onKeyUp: function(e) {
+ this.__select(-1);
+ },
+
+ //remove event, rename
+ __onKeyDown: function(e) {
+ this.__select(1);
+ },
+
+ __onMouseOver: function(e) {
+ var item = this.__getItem(e);
+ var index = this.items.index(item);
+ this.__select(index);
+ },
+
+ __onClick: function(e) {
+ var item = this.__getItem(e);
+ var index = this.items.index(item);
+ this.__select(index);
+ this.processItem(e, item);
+ },
+
+ __getItem: function(e) {
+ return $(e.target).closest("."+this.itemCss, e.currentTarget);
+ },
+
+ __getItems: function () {
+ return this.items;
+ }
+ }
+ })());
+
+})(jQuery, window.RichFaces);
\ No newline at end of file
Added:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/selectList.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/selectList.js
(rev 0)
+++
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/selectList.js 2010-10-12
15:40:14 UTC (rev 19543)
@@ -0,0 +1,20 @@
+(function ($, rf) {
+
+ rf.ui = rf.ui || {};
+
+ rf.ui.SelectList = function(id, listener, options) {
+ $super.constructor.call(this, id, options);
+ };
+
+ rf.ui.PopupList.extend(rf.ui.SelectList);
+ var $super = rf.ui.SelectList.$super;
+
+ $.extend(rf.ui.SelectList.prototype,(function () {
+
+ return{
+ name : "selectList",
+ }
+
+ })());
+
+})(jQuery, window.RichFaces);
\ No newline at end of file