Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / grid / enhanced / plugins / Menu.js

History | View | Annotate | Download (2.45 KB)

1
/*
2
        Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3
        Available via Academic Free License >= 2.1 OR the modified BSD license.
4
        see: http://dojotoolkit.org/license for details
5
*/
6

    
7

    
8
if(!dojo._hasResource["dojox.grid.enhanced.plugins.Menu"]){
9
dojo._hasResource["dojox.grid.enhanced.plugins.Menu"]=true;
10
dojo.provide("dojox.grid.enhanced.plugins.Menu");
11
dojo.declare("dojox.grid.enhanced.plugins.Menu",null,{constructor:function(_1){
12
_1.mixin(_1,this);
13
},_initMenus:function(){
14
var _2=this.menuContainer;
15
!this.headerMenu&&(this.headerMenu=this._getMenuWidget(this.menus["headerMenu"]));
16
!this.rowMenu&&(this.rowMenu=this._getMenuWidget(this.menus["rowMenu"]));
17
!this.cellMenu&&(this.cellMenu=this._getMenuWidget(this.menus["cellMenu"]));
18
!this.selectedRegionMenu&&(this.selectedRegionMenu=this._getMenuWidget(this.menus["selectedRegionMenu"]));
19
this.headerMenu&&this.set("headerMenu",this.headerMenu)&&this.setupHeaderMenu();
20
this.rowMenu&&this.set("rowMenu",this.rowMenu);
21
this.cellMenu&&this.set("cellMenu",this.cellMenu);
22
this.isDndSelectEnable&&this.selectedRegionMenu&&dojo.connect(this.select,"setDrugCoverDivs",dojo.hitch(this,this._bindDnDSelectEvent));
23
},_getMenuWidget:function(_3){
24
if(!_3){
25
return;
26
}
27
var _4=dijit.byId(_3);
28
if(!_4){
29
throw new Error("Menu '"+_3+"' not existed");
30
}
31
return _4;
32
},_bindDnDSelectEvent:function(){
33
dojo.forEach(this.select.coverDIVs,dojo.hitch(this,function(_5){
34
this.selectedRegionMenu.bindDomNode(_5);
35
dojo.connect(_5,"contextmenu",dojo.hitch(this,function(e){
36
dojo.mixin(e,this.select.getSelectedRegionInfo());
37
this.onSelectedRegionContextMenu(e);
38
}));
39
}));
40
},_setRowMenuAttr:function(_6){
41
this._setRowCellMenuAttr(_6,"rowMenu");
42
},_setCellMenuAttr:function(_7){
43
this._setRowCellMenuAttr(_7,"cellMenu");
44
},_setRowCellMenuAttr:function(_8,_9){
45
if(!_8){
46
return;
47
}
48
if(this[_9]){
49
this[_9].unBindDomNode(this.domNode);
50
}
51
this[_9]=_8;
52
this[_9].bindDomNode(this.domNode);
53
},showRowCellMenu:function(e){
54
var _a=e.sourceView.declaredClass=="dojox.grid._RowSelector";
55
if(this.rowMenu&&(!e.cell||this.selection.isSelected(e.rowIndex))){
56
this.rowMenu._openMyself({target:e.target,coords:"pageX" in e?{x:e.pageX,y:e.pageY}:null});
57
dojo.stopEvent(e);
58
return;
59
}
60
if(_a||e.cell&&e.cell.isRowSelector){
61
dojo.stopEvent(e);
62
return;
63
}
64
if(this.isDndSelectEnable){
65
this.select.cellClick(e.cellIndex,e.rowIndex);
66
this.focus.setFocusCell(e.cell,e.rowIndex);
67
}
68
if(this.cellMenu){
69
this.cellMenu._openMyself({target:e.target,coords:"pageX" in e?{x:e.pageX,y:e.pageY}:null});
70
}
71
}});
72
}