📄 textbox.js
字号:
/* * Copyright (c) 2001-2007, TIBCO Software Inc. * Use, modification, and distribution subject to terms of license. */jsx3.require("jsx3.gui.Form","jsx3.gui.Block");jsx3.Class.defineClass("jsx3.gui.TextBox",jsx3.gui.Block,[jsx3.gui.Form],function(d,m){var gb=jsx3.gui.Event;var F=jsx3.gui.Interactive;d.TYPETEXT=0;d.TYPETEXTAREA=1;d.TYPEPASSWORD=2;d.WRAPYES=1;d.WRAPNO=0;d.OVERFLOWNORMAL="";d.OVERFLOWAUTO="auto";d.OVERFLOWSCROLL="scroll";jsx3.gui.TextBox.DEFAULTBACKGROUNDCOLOR="#ffffff";d.VALIDATIONNONE="none";d.VALIDATIONSSN="ssn";d.VALIDATIONPHONE="phone";d.VALIDATIONEMAIL="email";d.VALIDATIONNUMBER="number";d.VALIDATIONLETTER="letter";d.VALIDATIONUSZIP="uszip";d.DEFAULTCLASSNAME="jsx30textbox";d.rd={};d.rd[d.VALIDATIONNONE]=/[\s\S]*/;d.rd[d.VALIDATIONSSN]=/^\d{3}-\d{2}-\d{4}$/;d.rd[d.VALIDATIONPHONE]=/^[0-9\-\(\) ]+$/;d.rd[d.VALIDATIONEMAIL]=/([a-zA-Z0-9_~\-\.]+)@([a-zA-Z0-9]+)\.[a-zA-Z0-9]{2,}/;d.rd[d.VALIDATIONNUMBER]=/^\d+$/;d.rd[d.VALIDATIONLETTER]=/^[a-zA-Z ,-\.]+$/;d.rd[d.VALIDATIONUSZIP]=/^\d{5}(-\d{4})?$/;m.init=function(j,o,r,h,e,b,i){this.jsxsuper(j,o,r,h,e);if(b!=null){this.setDefaultValue(b);this.setValue(b);}if(i!=null)this.setType(i);};m.M0=function(a,l){if(a.enterKey()&&this.getEvent(F.EXECUTE)){this.doEvent(F.EXECUTE,{objEVENT:a});}else{this.doEvent(F.JSXKEYPRESS,{objEVENT:a});}};m.gI=function(n,r){var w=this.doEvent(F.CHANGE,{objEVENT:n,strVALUE:r.value});if(w===false){r.value=this.jsxvalue;}else{this.jsxvalue=r.value;}};m.EN=function(s,j){this.doEvent(F.JSXKEYUP,{objEVENT:s});if(this.getType()==d.TYPETEXTAREA){var t=this.getMaxLength();if(t>0){var Zb=j.value;if(Zb&&Zb.length>t)j.value=Zb.substring(0,t);}}if(this.hasEvent(F.INCR_CHANGE)){var Ec=j.value;if(this._jsxur!=Ec){var Pb=this.doEvent(F.INCR_CHANGE,{objEVENT:s,strPREVIOUS:this._jsxur,strVALUE:Ec});if(Pb===false){j.value=this._jsxur!=null?this._jsxur:"";}else{this._jsxur=Ec;}}}};m.getMaxLength=function(){return this.jsxmaxlength!=null?this.jsxmaxlength:null;};m.setMaxLength=function(a){this.jsxmaxlength=a;return this;};m.setOverflow=function(r){this.jsxoverflow=r;return this;};m.getType=function(){return this.jsxtype==null?d.TYPETEXT:this.jsxtype;};m.setType=function(p){this.jsxtype=p;return this;};m.getValue=function(){var cb=this.getRendered();if(cb!=null){return cb.value;}else{return this.jsxvalue!=null?this.jsxvalue:this.getDefaultValue();}};m.LE=function(){var Ib=null;var qb=this.getRendered();if(qb!=null)Ib=qb.value;if(Ib==null)Ib=this.jsxvalue!=null?this.jsxvalue:this.getDefaultValue();Ib=Ib.toString().doReplace("&","&").doReplace("<","<").doReplace(">",">");return Ib;};m.AN=function(){return this.getText()?this.getText():"";};m.getDefaultValue=function(){return this.AN();};m.setValue=function(r){this.jsxvalue=r;this._jsxur=r;var kb=this.getRendered();if(kb!=null)kb.value=r!=null?r:"";return this;};m.setDefaultValue=function(n){this.setText(n);return this;};m.getWrap=function(){return this.jsxwrap==null?d.WRAPYES:this.jsxwrap;};m.setWrap=function(b){this.jsxwrap=b;return this;};m.k7=function(k,h,g){this.B_(k,h,g,3);};m.T5=function(n){if(this.getParent()&&(n==null||isNaN(n.parentwidth)||isNaN(n.parentheight))){n=this.getParent().IO(this);}else{if(n==null){n={};}}this.applyDynamicProperties();var jc=this.getRelativePosition()!=0;var gc,T,vb,D,ec;var v=!jc&&!jsx3.util.strEmpty(this.getTop())?this.getTop():0;var S=!jc&&!jsx3.util.strEmpty(this.getLeft())?this.getLeft():0;if(n.left==null)n.left=S;if(n.top==null)n.top=v;if(n.width==null)n.width=(D=this.getWidth())!=null?D:100;if(n.height==null)n.height=(ec=this.getHeight())!=null?ec:18;var pc=this.getType();if(pc==d.TYPETEXT){n.tagname="input[text]";n.empty=true;}else{if(pc==d.TYPEPASSWORD){n.tagname="input[password]";n.empty=true;}else{n.tagname="textarea";}}if(n.boxtype==null)n.boxtype=jc?"inline":"box";n.padding=(gc=this.getPadding())!=null&&gc!=""?gc:"2 0 0 2";if(n.tagname!="textarea")n.margin=jc&&(T=this.getMargin())!=null&&T!=""?T:null;n.border=(vb=this.getBorder())!=null&&vb!=""?vb:"solid 1px #a6a6af;solid 1px #e6e6e6;solid 1px #e6e6e6;solid 1px #a6a6af";var Pb=new jsx3.gui.Painted.Box(n);return Pb;};m.paint=function(){this.applyDynamicProperties();var Lb=this.getId();var Xb=this.getType();var ic={};if(this.hasEvent(F.EXECUTE)||this.hasEvent(F.JSXKEYPRESS))ic[gb.KEYPRESS]=true;if(this.hasEvent(F.JSXKEYDOWN))ic[gb.KEYDOWN]=true;if(this.hasEvent(F.JSXKEYUP)||this.hasEvent(F.INCR_CHANGE)||this.getType()==d.TYPETEXTAREA&&this.getMaxLength()>0){ic[gb.KEYUP]=true;this._jsxur=this.getValue();}if(this.hasEvent(F.JSXBLUR))ic[gb.BLUR]=true;if(this.hasEvent(F.JSXFOCUS))ic[gb.FOCUS]=true;if(this.hasEvent(F.JSXDOUBLECLICK))ic[gb.DOUBLECLICK]=true;if(this.hasEvent(F.JSXCLICK))ic[gb.CLICK]=true;if(this.hasEvent(F.JSXMOUSEDOWN))ic[gb.MOUSEDOWN]=true;if(this.hasEvent(F.JSXMOUSEWHEEL))ic[gb.MOUSEWHEEL]=true;ic[gb.CHANGE]=true;var z=this.lM(ic,0);var H=this.renderAttributes(null,true);var kb=this.RL(true);if(Xb==d.TYPETEXT||Xb==d.TYPEPASSWORD){kb.setAttributes(this.Vo()+" id=\""+Lb+"\" label=\""+this.getName()+"\" "+this.WP()+this.Ot()+this.CI()+this.vH()+z+" value=\""+this.getValue().toString().doReplace("\"",""")+"\" class=\""+this.CH()+"\" "+H);kb.setStyles(this.oY()+this.g0()+this.T1()+this.MU()+this.d9()+this.UZ()+this.K2()+this.QP()+this.eQ()+this.iN());var Kc="";}else{kb.setAttributes(" id=\""+Lb+"\" label=\""+this.getName()+"\" "+this.WP()+this.CI()+this.vH()+z+" class=\""+this.CH()+"\" "+this.renderAttributes()+this.pf());kb.setStyles(this.oY()+this.g0()+this.T1()+this.MU()+this.d9()+this.A0()+this.UZ()+this.K2()+this.QP()+this.eQ()+this.iN());var Kc=this.LE();}return kb.paint().join(Kc);};m.A0=function(){return "overflow:"+(this.getOverflow()?this.getOverflow():d.OVERFLOWNORMAL)+";";};m.pf=function(){return " wrap=\""+(this.getWrap()?"virtual":"off")+"\"";};m.UZ=function(){var K=this.getEnabled()!=jsx3.gui.Form.STATEDISABLED?this.getBackgroundColor()||d.DEFAULTBACKGROUNDCOLOR:this.getDisabledBackgroundColor()||jsx3.gui.Form.DEFAULTDISABLEDBACKGROUNDCOLOR;return "background-color:"+K+";";};m.Vo=function(){return " type=\""+(this.getType()==d.TYPETEXT?"text":"password")+"\"";};m.Ot=function(s){return this.getMaxLength()!=null?" MAXLENGTH=\""+parseInt(this.getMaxLength())+"\" ":"";};m.CH=function(){var Wb=this.getClassName();return d.DEFAULTCLASSNAME+(Wb?" "+Wb:"");};m.getValidationType=function(){return jsx3.util.strEmpty(this.jsxvalidationtype)?d.VALIDATIONNONE:this.jsxvalidationtype;};m.setValidationType=function(j){this.jsxvalidationtype=j;return this;};m.getValidationExpression=function(){return jsx3.util.strEmpty(this.jsxvalidationexpression)?null:this.jsxvalidationexpression;};m.setValidationExpression=function(o){this.jsxvalidationexpression=o;return this;};m.doValidate=function(){this.setValidationState(jsx3.gui.Form.STATEVALID);var x=this.getValue();var zb=null;if(x==null||x.trim()==""){if(this.getRequired()==jsx3.gui.Form.REQUIRED)this.setValidationState(jsx3.gui.Form.STATEINVALID);}else{if(typeof(x)=="string"){var rb=this.getValidationExpression();if(rb==null){zb=d.rd[this.getValidationType()];}else{zb=new RegExp(rb);}this.setValidationState(x.search(zb)==0?jsx3.gui.Form.STATEVALID:jsx3.gui.Form.STATEINVALID);}}return this.getValidationState();};m.beep=function(){jsx3.gui.F9(this.getRendered(),{backgroundColor:"#FFFF66"});};d.getVersion=function(){return "3.0.00";};m.emInit=function(i){this.jsxsupermix(i);var bc=F.JSXKEYDOWN;if(!this.hasEvent(bc))this.setEvent("1;",bc);this.subscribe(bc,this,"vl");};m.emUpdateDisplay=function(b,n){if(this.getType()==d.TYPETEXTAREA){var Cc=this.getWidth(),E=this.getHeight();var _b=this.emGetSession();_b.width=Cc;_b.height=E;var Kb=isNaN(Cc)?b.W:Math.min(parseInt(Cc),b.W);var Ib=isNaN(E)?b.H:Math.min(parseInt(E),n.H-b.T);this.setDimensions(b.L,b.T,Kb,Ib,true);}else{this.jsxsupermix(b,n);}};m.vl=function(q){var T=q.context.objEVENT;var Kc=false;if(!T.hasModifier(true)){var Nb=T.keyCode();var Jc=false;if(this.getType()==d.TYPETEXTAREA){Kc=!T.shiftKey()&&Nb==gb.KEY_ENTER;Jc=T.isArrowKey();}else{Jc=Nb==gb.KEY_ARROW_LEFT||Nb==gb.KEY_ARROW_RIGHT;}if(!Kc&&Jc){var wc=this.getRendered(T);var Bb=jsx3.html.getSelection(wc);var bc=wc.value;var X=Nb==gb.KEY_ARROW_LEFT||Nb==gb.KEY_ARROW_UP;Kc=X&&(Bb.getStartIndex()>0||Bb.getEndIndex()>0)||!X&&(Bb.getStartIndex()<bc.length||Bb.getEndIndex()<bc.length);}}if(Kc)T.cancelBubble();};});jsx3.TextBox=jsx3.gui.TextBox;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -