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/_Widget.js | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 345 insertions(+) create mode 100644 lib/dijit/_Widget.js (limited to 'lib/dijit/_Widget.js') diff --git a/lib/dijit/_Widget.js b/lib/dijit/_Widget.js new file mode 100644 index 000000000..d4a2ce96a --- /dev/null +++ b/lib/dijit/_Widget.js @@ -0,0 +1,345 @@ +/* + 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._Widget"]){ +dojo._hasResource["dijit._Widget"]=true; +dojo.provide("dijit._Widget"); +dojo.require("dijit._base"); +dojo.connect(dojo,"_connect",function(_1,_2){ +if(_1&&dojo.isFunction(_1._onConnect)){ +_1._onConnect(_2); +} +}); +dijit._connectOnUseEventHandler=function(_3){ +}; +dijit._lastKeyDownNode=null; +if(dojo.isIE){ +(function(){ +var _4=function(_5){ +dijit._lastKeyDownNode=_5.srcElement; +}; +dojo.doc.attachEvent("onkeydown",_4); +dojo.addOnWindowUnload(function(){ +dojo.doc.detachEvent("onkeydown",_4); +}); +})(); +}else{ +dojo.doc.addEventListener("keydown",function(_6){ +dijit._lastKeyDownNode=_6.target; +},true); +} +(function(){ +var _7={},_8=function(_9){ +var dc=_9.declaredClass; +if(!_7[dc]){ +var r=[],_a,_b=_9.constructor.prototype; +for(var _c in _b){ +if(dojo.isFunction(_b[_c])&&(_a=_c.match(/^_set([a-zA-Z]*)Attr$/))&&_a[1]){ +r.push(_a[1].charAt(0).toLowerCase()+_a[1].substr(1)); +} +} +_7[dc]=r; +} +return _7[dc]||[]; +}; +dojo.declare("dijit._Widget",null,{id:"",lang:"",dir:"","class":"",style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")).toString(),postscript:function(_d,_e){ +this.create(_d,_e); +},create:function(_f,_10){ +this.srcNodeRef=dojo.byId(_10); +this._connects=[]; +this._subscribes=[]; +this._deferredConnects=dojo.clone(this._deferredConnects); +for(var _11 in this.attributeMap){ +delete this._deferredConnects[_11]; +} +for(_11 in this._deferredConnects){ +if(this[_11]!==dijit._connectOnUseEventHandler){ +delete this._deferredConnects[_11]; +} +} +if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){ +this.id=this.srcNodeRef.id; +} +if(_f){ +this.params=_f; +dojo.mixin(this,_f); +} +this.postMixInProperties(); +if(!this.id){ +this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_")); +} +dijit.registry.add(this); +this.buildRendering(); +if(this.domNode){ +this._applyAttributes(); +var _12=this.srcNodeRef; +if(_12&&_12.parentNode){ +_12.parentNode.replaceChild(this.domNode,_12); +} +for(_11 in this.params){ +this._onConnect(_11); +} +} +if(this.domNode){ +this.domNode.setAttribute("widgetId",this.id); +} +this.postCreate(); +if(this.srcNodeRef&&!this.srcNodeRef.parentNode){ +delete this.srcNodeRef; +} +this._created=true; +},_applyAttributes:function(){ +var _13=function(_14,_15){ +if((_15.params&&_14 in _15.params)||_15[_14]){ +_15.set(_14,_15[_14]); +} +}; +for(var _16 in this.attributeMap){ +_13(_16,this); +} +dojo.forEach(_8(this),function(a){ +if(!(a in this.attributeMap)){ +_13(a,this); +} +},this); +},postMixInProperties:function(){ +},buildRendering:function(){ +this.domNode=this.srcNodeRef||dojo.create("div"); +},postCreate:function(){ +if(this.baseClass){ +var _17=this.baseClass.split(" "); +if(!this.isLeftToRight()){ +_17=_17.concat(dojo.map(_17,function(_18){ +return _18+"Rtl"; +})); +} +dojo.addClass(this.domNode,_17); +} +},startup:function(){ +this._started=true; +},destroyRecursive:function(_19){ +this._beingDestroyed=true; +this.destroyDescendants(_19); +this.destroy(_19); +},destroy:function(_1a){ +this._beingDestroyed=true; +this.uninitialize(); +var d=dojo,dfe=d.forEach,dun=d.unsubscribe; +dfe(this._connects,function(_1b){ +dfe(_1b,d.disconnect); +}); +dfe(this._subscribes,function(_1c){ +dun(_1c); +}); +dfe(this._supportingWidgets||[],function(w){ +if(w.destroyRecursive){ +w.destroyRecursive(); +}else{ +if(w.destroy){ +w.destroy(); +} +} +}); +this.destroyRendering(_1a); +dijit.registry.remove(this.id); +this._destroyed=true; +},destroyRendering:function(_1d){ +if(this.bgIframe){ +this.bgIframe.destroy(_1d); +delete this.bgIframe; +} +if(this.domNode){ +if(_1d){ +dojo.removeAttr(this.domNode,"widgetId"); +}else{ +dojo.destroy(this.domNode); +} +delete this.domNode; +} +if(this.srcNodeRef){ +if(!_1d){ +dojo.destroy(this.srcNodeRef); +} +delete this.srcNodeRef; +} +},destroyDescendants:function(_1e){ +dojo.forEach(this.getChildren(),function(_1f){ +if(_1f.destroyRecursive){ +_1f.destroyRecursive(_1e); +} +}); +},uninitialize:function(){ +return false; +},onFocus:function(){ +},onBlur:function(){ +},_onFocus:function(e){ +this.onFocus(); +},_onBlur:function(){ +this.onBlur(); +},_onConnect:function(_20){ +if(_20 in this._deferredConnects){ +var _21=this[this._deferredConnects[_20]||"domNode"]; +this.connect(_21,_20.toLowerCase(),_20); +delete this._deferredConnects[_20]; +} +},_setClassAttr:function(_22){ +var _23=this[this.attributeMap["class"]||"domNode"]; +dojo.removeClass(_23,this["class"]); +this["class"]=_22; +dojo.addClass(_23,_22); +},_setStyleAttr:function(_24){ +var _25=this[this.attributeMap.style||"domNode"]; +if(dojo.isObject(_24)){ +dojo.style(_25,_24); +}else{ +if(_25.style.cssText){ +_25.style.cssText+="; "+_24; +}else{ +_25.style.cssText=_24; +} +} +this.style=_24; +},setAttribute:function(_26,_27){ +dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0"); +this.set(_26,_27); +},_attrToDom:function(_28,_29){ +var _2a=this.attributeMap[_28]; +dojo.forEach(dojo.isArray(_2a)?_2a:[_2a],function(_2b){ +var _2c=this[_2b.node||_2b||"domNode"]; +var _2d=_2b.type||"attribute"; +switch(_2d){ +case "attribute": +if(dojo.isFunction(_29)){ +_29=dojo.hitch(this,_29); +} +var _2e=_2b.attribute?_2b.attribute:(/^on[A-Z][a-zA-Z]*$/.test(_28)?_28.toLowerCase():_28); +dojo.attr(_2c,_2e,_29); +break; +case "innerText": +_2c.innerHTML=""; +_2c.appendChild(dojo.doc.createTextNode(_29)); +break; +case "innerHTML": +_2c.innerHTML=_29; +break; +case "class": +dojo.removeClass(_2c,this[_28]); +dojo.addClass(_2c,_29); +break; +} +},this); +this[_28]=_29; +},attr:function(_2f,_30){ +if(dojo.config.isDebug){ +var _31=arguments.callee._ach||(arguments.callee._ach={}),_32=(arguments.callee.caller||"unknown caller").toString(); +if(!_31[_32]){ +dojo.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_32,"","2.0"); +_31[_32]=true; +} +} +var _33=arguments.length; +if(_33>=2||typeof _2f==="object"){ +return this.set.apply(this,arguments); +}else{ +return this.get(_2f); +} +},get:function(_34){ +var _35=this._getAttrNames(_34); +return this[_35.g]?this[_35.g]():this[_34]; +},set:function(_36,_37){ +if(typeof _36==="object"){ +for(var x in _36){ +this.set(x,_36[x]); +} +return this; +} +var _38=this._getAttrNames(_36); +if(this[_38.s]){ +var _39=this[_38.s].apply(this,Array.prototype.slice.call(arguments,1)); +}else{ +if(_36 in this.attributeMap){ +this._attrToDom(_36,_37); +} +var _3a=this[_36]; +this[_36]=_37; +} +return _39||this; +},_attrPairNames:{},_getAttrNames:function(_3b){ +var apn=this._attrPairNames; +if(apn[_3b]){ +return apn[_3b]; +} +var uc=_3b.charAt(0).toUpperCase()+_3b.substr(1); +return (apn[_3b]={n:_3b+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"}); +},toString:function(){ +return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]"; +},getDescendants:function(){ +return this.containerNode?dojo.query("[widgetId]",this.containerNode).map(dijit.byNode):[]; +},getChildren:function(){ +return this.containerNode?dijit.findWidgets(this.containerNode):[]; +},nodesWithKeyClick:["input","button"],connect:function(obj,_3c,_3d){ +var d=dojo,dc=d._connect,_3e=[]; +if(_3c=="ondijitclick"){ +if(dojo.indexOf(this.nodesWithKeyClick,obj.nodeName.toLowerCase())==-1){ +var m=d.hitch(this,_3d); +_3e.push(dc(obj,"onkeydown",this,function(e){ +if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){ +dijit._lastKeyDownNode=e.target; +e.preventDefault(); +} +}),dc(obj,"onkeyup",this,function(e){ +if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&e.target===dijit._lastKeyDownNode&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){ +dijit._lastKeyDownNode=null; +return m(e); +} +})); +} +_3c="onclick"; +} +_3e.push(dc(obj,_3c,this,_3d)); +this._connects.push(_3e); +return _3e; +},disconnect:function(_3f){ +for(var i=0;i