/* Basiert auf TreeV3, nur Methode createNode geändert, um Abschaltung von Selektierbarkeit zu implementieren */ dojo.provide("memtext.widget.MemTree"); dojo.require("dojo.widget.TreeWithNode"); dojo.require("dojo.widget.*"); dojo.require("dojo.event.*"); dojo.require("dojo.io.*"); dojo.require("dojo.widget.HtmlWidget"); dojo.require("dojo.widget.TreeNodeV3"); dojo.widget.defineWidget("memtext.widget.MemTree",[dojo.widget.HtmlWidget,dojo.widget.TreeWithNode],function(){ this.eventNames={}; this.DndAcceptTypes=[]; this.actionsDisabled=[]; this.listeners=[]; this.tree=this; },{DndMode:"",defaultChildWidget:null,defaultChildTitle:"New Node",eagerWidgetInstantiation:false,eventNamesDefault:{afterTreeCreate:"afterTreeCreate",beforeTreeDestroy:"beforeTreeDestroy",beforeNodeDestroy:"beforeNodeDestroy",afterChangeTree:"afterChangeTree",afterSetFolder:"afterSetFolder",afterUnsetFolder:"afterUnsetFolder",beforeMoveFrom:"beforeMoveFrom",beforeMoveTo:"beforeMoveTo",afterMoveFrom:"afterMoveFrom",afterMoveTo:"afterMoveTo",afterAddChild:"afterAddChild",afterDetach:"afterDetach",afterExpand:"afterExpand",beforeExpand:"beforeExpand",afterSetTitle:"afterSetTitle",afterCollapse:"afterCollapse",beforeCollapse:"beforeCollapse"},classPrefix:"Tree",style:"",allowAddChildToLeaf:true,unsetFolderOnEmpty:true,DndModes:{BETWEEN:1,ONTO:2},DndAcceptTypes:"",templateCssString:"/* indent for all tree children excepts root */\r\n.TreeNode {\r\n background-image : url('../templates/images/TreeV3/i.gif');\r\n background-position : top left;\r\n background-repeat : repeat-y;\r\n margin-left: 19px;\r\n zoom: 1;\r\n}\r\n.TreeIsRoot {\r\n margin-left: 0;\r\n}\r\n \r\n/* left vertical line (grid) for all nodes */\r\n.TreeIsLast {\r\n background-image: url('../templates/images/TreeV3/i_half.gif');\r\n background-repeat : no-repeat;\r\n}\r\n \r\n.TreeExpandOpen .TreeExpand {\r\n background-image: url('../templates/images/TreeV3/expand_minus.gif');\r\n}\r\n \r\n/* closed is higher priority than open */\r\n.TreeExpandClosed .TreeExpand {\r\n background-image: url('../templates/images/TreeV3/expand_plus.gif');\r\n}\r\n \r\n/* highest priority */\r\n.TreeExpandLeaf .TreeExpand {\r\n background-image: url('../templates/images/TreeV3/expand_leaf.gif');\r\n}\r\n\r\n/* \r\nshould always override any expand setting, but do not touch children.\r\nif I add .TreeExpand .TreeExpandLoading same time and put it to top/bottom, then it will take precedence over +- for all descendants or always fail\r\nso I have to remove TreeExpand and process this one specifically\r\n*/\r\n\r\n.TreeExpandLoading {\r\n width: 18px;\r\n height: 18px;\r\n float: left;\r\n display: inline;\r\n background-repeat : no-repeat;\r\n background-image: url('../templates/images/TreeV3/expand_loading.gif');\r\n}\r\n \r\n.TreeContent {\r\n min-height: 18px;\r\n min-width: 18px;\r\n margin-left:18px;\r\n cursor: default;\r\n /* can't make inline - multiline bugs */\r\n}\r\n\r\n.TreeIEContent {\r\n\theight: 18px;\r\n}\r\n \r\n.TreeExpand {\r\n width: 18px;\r\n height: 18px;\r\n float: left;\r\n display: inline;\r\n background-repeat : no-repeat;\r\n}\r\n \r\n/* same style as IE selection */\r\n.TreeNodeEmphasized {\r\n background-color: Highlight;\r\n color: HighlightText;\r\n}\r\n \r\n.TreeContent .RichTextEditable, .TreeContent .RichTextEditable iframe {\r\n background-color: #ffc;\r\n color: black;\r\n}\r\n\r\n/* don't use :focus due to opera's lack of support on div's */\r\n.TreeLabelFocused {\r\n outline: 1px invert dotted;\r\n}\r\n",templateCssPath:dojo.uri.moduleUri("dojo.widget","templates/TreeV3.css"),templateString:"
\n
",isExpanded:true,isTree:true, createNode:function(_1){ _1.tree=this.widgetId; if(_1.widgetName){ return dojo.widget.createWidget(_1.widgetName,_1); }else{ if(this.defaultChildWidget.prototype.createSimple){ help=this.defaultChildWidget.prototype.createSimple(_1); if (_1.nodeattrib&&_1.nodeattrib==2) help.actionsDisabled[0]='SELECT'; return help }else{ var ns=this.defaultChildWidget.prototype.ns; var wt=this.defaultChildWidget.prototype.widgetType; help=dojo.widget.createWidget(ns+":"+wt,_1); if (_1.nodeattrib&&_1.nodeattrib==2) help.actionsDisabled[0]='SELECT'; return help; } } }, makeNodeTemplate:function(){ var _4=document.createElement("div"); dojo.html.setClass(_4,this.classPrefix+"Node "+this.classPrefix+"ExpandLeaf "+this.classPrefix+"ChildrenNo"); this.nodeTemplate=_4; var _5=document.createElement("div"); var _6=this.classPrefix+"Expand"; if(dojo.render.html.ie){ _6=_6+" "+this.classPrefix+"IEExpand"; } dojo.html.setClass(_5,_6); this.expandNodeTemplate=_5; var _7=document.createElement("span"); dojo.html.setClass(_7,this.classPrefix+"Label"); this.labelNodeTemplate=_7; var _8=document.createElement("div"); var _6=this.classPrefix+"Content"; if(dojo.render.html.ie&&!dojo.render.html.ie70){ _6=_6+" "+this.classPrefix+"IEContent"; } dojo.html.setClass(_8,_6); this.contentNodeTemplate=_8; _4.appendChild(_5); _4.appendChild(_8); _8.appendChild(_7); },makeContainerNodeTemplate:function(){ var _9=document.createElement("div"); _9.style.display="none"; dojo.html.setClass(_9,this.classPrefix+"Container"); this.containerNodeTemplate=_9; },actions:{ADDCHILD:"ADDCHILD"},getInfo:function(){ var _a={widgetId:this.widgetId,objectId:this.objectId}; return _a; },adjustEventNames:function(){ for(var _b in this.eventNamesDefault){ if(dojo.lang.isUndefined(this.eventNames[_b])){ this.eventNames[_b]=this.widgetId+"/"+this.eventNamesDefault[_b]; } } },adjustDndMode:function(){ var _c=this; var _d=0; dojo.lang.forEach(this.DndMode.split(";"),function(_e){ var _f=_c.DndModes[dojo.string.trim(_e).toUpperCase()]; if(_f){ _d=_d|_f; } }); this.DndMode=_d; },destroy:function(){ dojo.event.topic.publish(this.tree.eventNames.beforeTreeDestroy,{source:this}); return dojo.widget.HtmlWidget.prototype.destroy.apply(this,arguments); },initialize:function(_10){ this.domNode.widgetId=this.widgetId; for(var i=0;i