| /* |
| Copyright (c) 2004-2009, 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._FormWidget"]){ |
| dojo._hasResource["dijit.form._FormWidget"]=true; |
| dojo.provide("dijit.form._FormWidget"); |
| dojo.require("dijit._Widget"); |
| dojo.require("dijit._Templated"); |
| dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated],{baseClass:"",name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,intermediateChanges:false,scrollOnFocus:true,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{value:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode",title:"focusNode"}),postMixInProperties:function(){ |
| this.nameAttrSetting=this.name?("name='"+this.name+"'"):""; |
| this.inherited(arguments); |
| },_setDisabledAttr:function(_1){ |
| this.disabled=_1; |
| dojo.attr(this.focusNode,"disabled",_1); |
| if(this.valueNode){ |
| dojo.attr(this.valueNode,"disabled",_1); |
| } |
| dijit.setWaiState(this.focusNode,"disabled",_1); |
| if(_1){ |
| this._hovering=false; |
| this._active=false; |
| this.focusNode.setAttribute("tabIndex","-1"); |
| }else{ |
| this.focusNode.setAttribute("tabIndex",this.tabIndex); |
| } |
| this._setStateClass(); |
| },setDisabled:function(_2){ |
| dojo.deprecated("setDisabled("+_2+") is deprecated. Use attr('disabled',"+_2+") instead.","","2.0"); |
| this.attr("disabled",_2); |
| },_onFocus:function(e){ |
| if(this.scrollOnFocus){ |
| dijit.scrollIntoView(this.domNode); |
| } |
| this.inherited(arguments); |
| },_onMouse:function(_3){ |
| var _4=_3.currentTarget; |
| if(_4&&_4.getAttribute){ |
| this.stateModifier=_4.getAttribute("stateModifier")||""; |
| } |
| if(!this.disabled){ |
| switch(_3.type){ |
| case "mouseenter": |
| case "mouseover": |
| this._hovering=true; |
| this._active=this._mouseDown; |
| break; |
| case "mouseout": |
| case "mouseleave": |
| this._hovering=false; |
| this._active=false; |
| break; |
| case "mousedown": |
| this._active=true; |
| this._mouseDown=true; |
| var _5=this.connect(dojo.body(),"onmouseup",function(){ |
| if(this._mouseDown&&this.isFocusable()){ |
| this.focus(); |
| } |
| this._active=false; |
| this._mouseDown=false; |
| this._setStateClass(); |
| this.disconnect(_5); |
| }); |
| break; |
| } |
| this._setStateClass(); |
| } |
| },isFocusable:function(){ |
| return !this.disabled&&!this.readOnly&&this.focusNode&&(dojo.style(this.domNode,"display")!="none"); |
| },focus:function(){ |
| dijit.focus(this.focusNode); |
| },_setStateClass:function(){ |
| var _6=this.baseClass.split(" "); |
| function _7(_8){ |
| _6=_6.concat(dojo.map(_6,function(c){ |
| return c+_8; |
| }),"dijit"+_8); |
| }; |
| if(this.checked){ |
| _7("Checked"); |
| } |
| if(this.state){ |
| _7(this.state); |
| } |
| if(this.selected){ |
| _7("Selected"); |
| } |
| if(this.disabled){ |
| _7("Disabled"); |
| }else{ |
| if(this.readOnly){ |
| _7("ReadOnly"); |
| }else{ |
| if(this._active){ |
| _7(this.stateModifier+"Active"); |
| }else{ |
| if(this._focused){ |
| _7("Focused"); |
| } |
| if(this._hovering){ |
| _7(this.stateModifier+"Hover"); |
| } |
| } |
| } |
| } |
| var tn=this.stateNode||this.domNode,_9={}; |
| dojo.forEach(tn.className.split(" "),function(c){ |
| _9[c]=true; |
| }); |
| if("_stateClasses" in this){ |
| dojo.forEach(this._stateClasses,function(c){ |
| delete _9[c]; |
| }); |
| } |
| dojo.forEach(_6,function(c){ |
| _9[c]=true; |
| }); |
| var _a=[]; |
| for(var c in _9){ |
| _a.push(c); |
| } |
| tn.className=_a.join(" "); |
| this._stateClasses=_6; |
| },compare:function(_b,_c){ |
| if(typeof _b=="number"&&typeof _c=="number"){ |
| return (isNaN(_b)&&isNaN(_c))?0:_b-_c; |
| }else{ |
| if(_b>_c){ |
| return 1; |
| }else{ |
| if(_b<_c){ |
| return -1; |
| }else{ |
| return 0; |
| } |
| } |
| } |
| },onChange:function(_d){ |
| },_onChangeActive:false,_handleOnChange:function(_e,_f){ |
| this._lastValue=_e; |
| if(this._lastValueReported==undefined&&(_f===null||!this._onChangeActive)){ |
| this._resetValue=this._lastValueReported=_e; |
| } |
| if((this.intermediateChanges||_f||_f===undefined)&&((typeof _e!=typeof this._lastValueReported)||this.compare(_e,this._lastValueReported)!=0)){ |
| this._lastValueReported=_e; |
| if(this._onChangeActive){ |
| if(this._onChangeHandle){ |
| clearTimeout(this._onChangeHandle); |
| } |
| this._onChangeHandle=setTimeout(dojo.hitch(this,function(){ |
| this._onChangeHandle=null; |
| this.onChange(_e); |
| }),0); |
| } |
| } |
| },create:function(){ |
| this.inherited(arguments); |
| this._onChangeActive=true; |
| this._setStateClass(); |
| },destroy:function(){ |
| if(this._onChangeHandle){ |
| clearTimeout(this._onChangeHandle); |
| this.onChange(this._lastValueReported); |
| } |
| this.inherited(arguments); |
| },setValue:function(_10){ |
| dojo.deprecated("dijit.form._FormWidget:setValue("+_10+") is deprecated. Use attr('value',"+_10+") instead.","","2.0"); |
| this.attr("value",_10); |
| },getValue:function(){ |
| dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use attr('value') instead.","","2.0"); |
| return this.attr("value"); |
| }}); |
| dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"",readOnly:"focusNode"}),_setReadOnlyAttr:function(_11){ |
| this.readOnly=_11; |
| dojo.attr(this.focusNode,"readOnly",_11); |
| dijit.setWaiState(this.focusNode,"readonly",_11); |
| this._setStateClass(); |
| },postCreate:function(){ |
| if(dojo.isIE){ |
| this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown); |
| } |
| if(this._resetValue===undefined){ |
| this._resetValue=this.value; |
| } |
| },_setValueAttr:function(_12,_13){ |
| this.value=_12; |
| this._handleOnChange(_12,_13); |
| },_getValueAttr:function(){ |
| return this._lastValue; |
| },undo:function(){ |
| this._setValueAttr(this._lastValueReported,false); |
| },reset:function(){ |
| this._hasBeenBlurred=false; |
| this._setValueAttr(this._resetValue,true); |
| },_onKeyDown:function(e){ |
| if(e.keyCode==dojo.keys.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){ |
| var te; |
| if(dojo.isIE){ |
| e.preventDefault(); |
| te=document.createEventObject(); |
| te.keyCode=dojo.keys.ESCAPE; |
| te.shiftKey=e.shiftKey; |
| e.srcElement.fireEvent("onkeypress",te); |
| } |
| } |
| },_layoutHackIE7:function(){ |
| if(dojo.isIE==7){ |
| var _14=this.domNode; |
| var _15=_14.parentNode; |
| var _16=_14.firstChild||_14; |
| var _17=_16.style.filter; |
| while(_15&&_15.clientHeight==0){ |
| _15._disconnectHandle=this.connect(_15,"onscroll",dojo.hitch(this,function(e){ |
| this.disconnect(_15._disconnectHandle); |
| _15.removeAttribute("_disconnectHandle"); |
| _16.style.filter=(new Date()).getMilliseconds(); |
| setTimeout(function(){ |
| _16.style.filter=_17; |
| },0); |
| })); |
| _15=_15.parentNode; |
| } |
| } |
| }}); |
| } |