2013-03-18 06:26:24 +00:00
|
|
|
define("dijit/_MenuBase",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/mouse","dojo/on","dojo/window","./a11yclick","./popup","./registry","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_1,_2,_3,_4,_5,_6,_7,on,_8,_9,pm,_a,_b,_c,_d){return _2("dijit._MenuBase",[_b,_d,_c],{parentMenu:null,popupDelay:500,autoFocus:false,childSelector:function(_e){var _f=_a.byNode(_e);return _e.parentNode==this.containerNode&&_f&&_f.focus;},postCreate:function(){var _10=this,_11=typeof this.childSelector=="string"?this.childSelector:_6.hitch(this,"childSelector");this.own(on(this.containerNode,on.selector(_11,_7.enter),function(){_10.onItemHover(_a.byNode(this));}),on(this.containerNode,on.selector(_11,_7.leave),function(){_10.onItemUnhover(_a.byNode(this));}),on(this.containerNode,on.selector(_11,_9),function(evt){_10.onItemClick(_a.byNode(this),evt);evt.stopPropagation();evt.preventDefault();}));this.inherited(arguments);},onExecute:function(){},onCancel:function(){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.onItemClick(this.focusedChild,evt);}else{var _12=this._getTopMenu();if(_12&&_12._isMenuBar){_12.focusNext();}}},_onPopupHover:function(){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _13=this.currentPopup.parentMenu;if(_13.focusedChild){_13.focusedChild._setSelected(false);}_13.focusedChild=this.currentPopup.from_item;_13.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(_14){if(this.isActive){this.focusChild(_14);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=this.defer("_openPopup",this.popupDelay);}}if(this.focusedChild){this.focusChild(_14);}this._hoveredChild=_14;_14._set("hovering",true);},_onChildBlur:function(_15){this._stopPopupTimer();_15._setSelected(false);var _16=_15.popup;if(_16){this._stopPendingCloseTimer(_16);_16._pendingClose_timer=this.defer(function(){_16._pendingClose_timer=null;if(_16.parentMenu){_16.parentMenu.currentPopup=null;}pm.close(_16);},this.popupDelay);}},onItemUnhover:function(_17){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==_17){this._hoveredChild=null;}_17._set("hovering",false);},_stopPopupTimer:function(){if(this.hover_timer){this.hover_timer=this.hover_timer.remove();}},_stopPendingCloseTimer:function(_18){if(_18._pendingClose_timer){_18._pendingClose_timer=_18._pendingClose_timer.remove();}},_stopFocusTimer:function(){if(this._focus_timer){this._focus_timer=this._focus_timer.remove();}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(_19,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(_19);if(_19.disabled){return false;}if(_19.popup){this._openPopup(evt.type=="keypress");}else{this.onExecute();_19._onClick?_19._onClick(evt):_19.onClick(evt);}},_openPopup:function(_1a){this._stopPopupTimer();var _1b=this.focusedChild;if(!_1b){return;}var _1c=_1b.popup;if(!_1c.isShowingNow){if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);pm.close(this.currentPopup);}_1c.parentMenu=this;_1c.from_item=_1b;var _1d=this;pm.open({parent:this,popup:_1c,around:_1b.domNode,orient:this._orient||["after","before"],onCancel:function(){_1d.focusChild(_1b);_1d._cleanUp();_1b._setSelected(true);_1d.focusedChild=_1b;},onExecute:_6.hitch(this,"_cleanUp")});this.currentPopup=_1c;_1c.connect(_1c.domNode,"onmouseenter",_6.hitch(_1d,"_onPopupHover"));}if(_1a&&_1c.focus){_1c._focus_timer=this.defer(_6.hitch(_1c,function(){this._focus_timer=null;this.focus();}));}},_markActive:function(){this.isActive=true;_5.replace(this.domNode,"dijitMenuActive","dijitMenuPassive");},onOpen:function(){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;_5.replace(this.domNode,"dijitMenuPassive","dijitMenuActive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null
|