From 2f01fe57a8d37767827d6db42850aef86a767c53 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 15 Nov 2010 10:39:52 +0300 Subject: add dijit/dojo stuff; initial ui mockup --- lib/dijit/form/TextBox.js | 209 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 lib/dijit/form/TextBox.js (limited to 'lib/dijit/form/TextBox.js') diff --git a/lib/dijit/form/TextBox.js b/lib/dijit/form/TextBox.js new file mode 100644 index 000000000..81c9b2a04 --- /dev/null +++ b/lib/dijit/form/TextBox.js @@ -0,0 +1,209 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.TextBox"]){ +dojo._hasResource["dijit.form.TextBox"]=true; +dojo.provide("dijit.form.TextBox"); +dojo.require("dijit.form._FormWidget"); +dojo.declare("dijit.form.TextBox",dijit.form._FormValueWidget,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",templateString:dojo.cache("dijit.form","templates/TextBox.html","
\n"),_singleNodeTemplate:"",_buttonInputDisabled:dojo.isIE?"disabled":"",baseClass:"dijitTextBox",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{maxLength:"focusNode"}),postMixInProperties:function(){ +var _1=this.type.toLowerCase(); +if(this.templateString.toLowerCase()=="input"||((_1=="hidden"||_1=="file")&&this.templateString==dijit.form.TextBox.prototype.templateString)){ +this.templateString=this._singleNodeTemplate; +} +this.inherited(arguments); +},_setPlaceHolderAttr:function(v){ +this.placeHolder=v; +if(!this._phspan){ +this._attachPoints.push("_phspan"); +this._phspan=dojo.create("span",{className:"dijitPlaceHolder dijitInputField"},this.textbox,"after"); +} +this._phspan.innerHTML=""; +this._phspan.appendChild(document.createTextNode(v)); +this._updatePlaceHolder(); +},_updatePlaceHolder:function(){ +if(this._phspan){ +this._phspan.style.display=(this.placeHolder&&!this._focused&&!this.textbox.value)?"":"none"; +} +},_getValueAttr:function(){ +return this.parse(this.get("displayedValue"),this.constraints); +},_setValueAttr:function(_2,_3,_4){ +var _5; +if(_2!==undefined){ +_5=this.filter(_2); +if(typeof _4!="string"){ +if(_5!==null&&((typeof _5!="number")||!isNaN(_5))){ +_4=this.filter(this.format(_5,this.constraints)); +}else{ +_4=""; +} +} +} +if(_4!=null&&_4!=undefined&&((typeof _4)!="number"||!isNaN(_4))&&this.textbox.value!=_4){ +this.textbox.value=_4; +} +this._updatePlaceHolder(); +this.inherited(arguments,[_5,_3]); +},displayedValue:"",getDisplayedValue:function(){ +dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.","","2.0"); +return this.get("displayedValue"); +},_getDisplayedValueAttr:function(){ +return this.filter(this.textbox.value); +},setDisplayedValue:function(_6){ +dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0"); +this.set("displayedValue",_6); +},_setDisplayedValueAttr:function(_7){ +if(_7===null||_7===undefined){ +_7=""; +}else{ +if(typeof _7!="string"){ +_7=String(_7); +} +} +this.textbox.value=_7; +this._setValueAttr(this.get("value"),undefined,_7); +},format:function(_8,_9){ +return ((_8==null||_8==undefined)?"":(_8.toString?_8.toString():_8)); +},parse:function(_a,_b){ +return _a; +},_refreshState:function(){ +},_onInput:function(e){ +if(e&&e.type&&/key/i.test(e.type)&&e.keyCode){ +switch(e.keyCode){ +case dojo.keys.SHIFT: +case dojo.keys.ALT: +case dojo.keys.CTRL: +case dojo.keys.TAB: +return; +} +} +if(this.intermediateChanges){ +var _c=this; +setTimeout(function(){ +_c._handleOnChange(_c.get("value"),false); +},0); +} +this._refreshState(); +},postCreate:function(){ +if(dojo.isIE){ +var s=dojo.getComputedStyle(this.domNode); +if(s){ +var ff=s.fontFamily; +if(ff){ +var _d=this.domNode.getElementsByTagName("INPUT"); +if(_d){ +for(var i=0;i<_d.length;i++){ +_d[i].style.fontFamily=ff; +} +} +} +} +} +this.textbox.setAttribute("value",this.textbox.value); +this.inherited(arguments); +if(dojo.isMoz||dojo.isOpera){ +this.connect(this.textbox,"oninput",this._onInput); +}else{ +this.connect(this.textbox,"onkeydown",this._onInput); +this.connect(this.textbox,"onkeyup",this._onInput); +this.connect(this.textbox,"onpaste",this._onInput); +this.connect(this.textbox,"oncut",this._onInput); +} +},_blankValue:"",filter:function(_e){ +if(_e===null){ +return this._blankValue; +} +if(typeof _e!="string"){ +return _e; +} +if(this.trim){ +_e=dojo.trim(_e); +} +if(this.uppercase){ +_e=_e.toUpperCase(); +} +if(this.lowercase){ +_e=_e.toLowerCase(); +} +if(this.propercase){ +_e=_e.replace(/[^\s]+/g,function(_f){ +return _f.substring(0,1).toUpperCase()+_f.substring(1); +}); +} +return _e; +},_setBlurValue:function(){ +this._setValueAttr(this.get("value"),true); +},_onBlur:function(e){ +if(this.disabled){ +return; +} +this._setBlurValue(); +this.inherited(arguments); +if(this._selectOnClickHandle){ +this.disconnect(this._selectOnClickHandle); +} +if(this.selectOnClick&&dojo.isMoz){ +this.textbox.selectionStart=this.textbox.selectionEnd=undefined; +} +this._updatePlaceHolder(); +},_onFocus:function(by){ +if(this.disabled||this.readOnly){ +return; +} +if(this.selectOnClick&&by=="mouse"){ +this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){ +this.disconnect(this._selectOnClickHandle); +var _10; +if(dojo.isIE){ +var _11=dojo.doc.selection.createRange(); +var _12=_11.parentElement(); +_10=_12==this.textbox&&_11.text.length==0; +}else{ +_10=this.textbox.selectionStart==this.textbox.selectionEnd; +} +if(_10){ +dijit.selectInputText(this.textbox); +} +}); +} +this._updatePlaceHolder(); +this._refreshState(); +this.inherited(arguments); +},reset:function(){ +this.textbox.value=""; +this.inherited(arguments); +}}); +dijit.selectInputText=function(_13,_14,_15){ +var _16=dojo.global; +var _17=dojo.doc; +_13=dojo.byId(_13); +if(isNaN(_14)){ +_14=0; +} +if(isNaN(_15)){ +_15=_13.value?_13.value.length:0; +} +dijit.focus(_13); +if(_17["selection"]&&dojo.body()["createTextRange"]){ +if(_13.createTextRange){ +var _18=_13.createTextRange(); +with(_18){ +collapse(true); +moveStart("character",-99999); +moveStart("character",_14); +moveEnd("character",_15-_14); +select(); +} +} +}else{ +if(_16["getSelection"]){ +if(_13.setSelectionRange){ +_13.setSelectionRange(_14,_15); +} +} +} +}; +} -- cgit v1.2.3