1 (function ($, rf) {
  2 
  3     rf.ui = rf.ui || {};
  4 
  5     rf.ui.InputBase = function(id, options) {
  6         $super.constructor.call(this, id);
  7         this.namespace = this.getNamespace() || "." + rf.Event.createNamespace(this.getName(), this.getId());
  8 
  9         this.namespace = this.namespace || "." + rf.Event.createNamespace(this.name, this.id);
 10 
 11         this.input = $(document.getElementById(id + "Input"));
 12         this.attachToDom();
 13 
 14         var inputEventHandlers = {};
 15         inputEventHandlers["keydown" + this.namespace] = $.proxy(this.__keydownHandler, this);
 16         inputEventHandlers["blur" + this.namespace] = $.proxy(this.__blurHandler, this);
 17         inputEventHandlers["change" + this.namespace] = $.proxy(this.__changeHandler, this);
 18         inputEventHandlers["focus" + this.namespace] = $.proxy(this.__focusHandler, this);
 19         rf.Event.bind(this.input, inputEventHandlers, this);
 20     };
 21 
 22     rf.BaseComponent.extend(rf.ui.InputBase);
 23 
 24     // define super class link
 25     var $super = rf.ui.InputBase.$super;
 26 
 27     $.extend(rf.ui.InputBase.prototype, ( function () {
 28 
 29         return {
 30 
 31             name : "inputBase",
 32 
 33 
 34             getName: function() {
 35                 return this.name;
 36             },
 37 
 38             getNamespace: function() {
 39                 return this.namespace;
 40             },
 41 
 42             __focusHandler: function(e) {
 43             },
 44 
 45             __keydownHandler: function(e) {
 46             },
 47 
 48             __blurHandler: function(e) {
 49             },
 50 
 51             __changeHandler: function(e) {
 52             },
 53 
 54             __setInputFocus: function() {
 55                 this.input.focus();
 56             },
 57 
 58             __getValue: function() {
 59                 return this.input.val();
 60             },
 61 
 62             __setValue: function(value) {
 63                 this.input.val(value);
 64                 if (this.defaultLabelClass) {
 65                     if (value == this.defaultLabel) {
 66                         this.input.addClass(this.defaultLabelClass);
 67                     } else {
 68                         this.input.removeClass(this.defaultLabelClass);
 69                     }
 70                 }
 71             },
 72 
 73             getValue: function() {
 74                 return this.__getValue();
 75             },
 76 
 77             setValue: function(value) {
 78                 this.__setValue(value);
 79             },
 80 
 81             getInput: function() {
 82                 return this.input;
 83             },
 84 
 85             getId: function() {
 86                 return    this.id;
 87             },
 88             destroy: function() {
 89                 rf.Event.unbindById(this.input, this.namespace);
 90                 this.input = null;
 91                 $super.destroy.call(this);
 92             }
 93         }
 94     })());
 95 
 96 })(RichFaces.jQuery, window.RichFaces);