| 1 |
- MWF.widget=MWF.widget||{};MWF.require("MWF.widget.Common",null,false);MWF.require("MWF.widget.Tree",null,false);MWF.widget.LeftNavi=new Class({Extends:MWF.widget.Tree,Implements:[Options,Events],options:{style:"default",expand:false},jsonMapping:{expand:"expand",title:"title",text:"text",action:"action",icon:"icon",sub:"sub"},initialize:function(e,t){this.setOptions(t);this.path=MWF.defaultPath+"/widget/$LeftNavi/";this.cssPath=MWF.defaultPath+"/widget/$LeftNavi/"+this.options.style+"/css.wcss";this._loadCss();this.container=$(e);this.children=[];this.treeJson=null;this.treeXML=null},appendChild:function(e){var t=new MWF.widget.LeftNavi.Menu(this,e);if(this.children.length){t.previousSibling=this.children[this.children.length-1];t.previousSibling.nextSibling=t}else{this.firstChild=t}t.load();t.node.inject(this.node);this.children.push(t);return t},expand:function(e){if(this.fireEvent("queryExpand",[e])){e.childrenNode.setStyle("display","block")}this.fireEvent("postExpand",[e])},collapse:function(e){if(this.fireEvent("queryCollapse",[e])){e.childrenNode.setStyle("display","none")}this.fireEvent("postCollapse",[e])}});MWF.widget.LeftNavi.Menu=new Class({Extends:MWF.widget.Tree.Node,Implements:[Options,Events],insertChild:function(e){var t=new MWF.widget.LeftNavi.Node(this.tree,e);var i=this.previousSibling;this.previousSibling=t;t.nextSibling=this;t.previousSibling=i;if(i){i.nextSibling=t}else{this.parentNode.firstChild=t}t.parentNode=this.parentNode;t.level=this.level;t.load();t.node.inject(this.node,"before");this.parentNode.children.push(t);return t},appendChild:function(e){var t=new MWF.widget.LeftNavi.Node(this.tree,e);if(this.children.length){t.previousSibling=this.children[this.children.length-1];t.previousSibling.nextSibling=t}else{this.firstChild=t;this.setOperateIcon()}t.level=this.level+1;t.parentNode=this;t.load();t.node.inject(this.childrenNode);this.children.push(t);return t},load:function(){this.nodeTable=new Element("table",{border:"0",cellpadding:"0",cellspacing:"0",styles:this.tree.css.nodeTable}).inject(this.itemNode);var e=new Element("tbody").inject(this.nodeTable);this.nodeArea=new Element("tr").inject(e);this.createLevelNode();this.createOperateNode();this.createIconNode();this.createTextNode();this.setOtherEvent()},setOtherEvent:function(){this.operateNode.removeEvents("click");this.textNode.getFirst("div").removeEvents("click");this.itemNode.addEvent("click",function(){this.clickNode()}.bind(this))},clickNode:function(){this.expand()},expand:function(){if(this.tree.currentMenu!=this){this.selectNode()}},selectNode:function(){if(this.tree.currentMenu){this.tree.currentMenu.itemNode.setStyles(this.tree.css.treeItemNode);this.tree.currentMenu.collapseNode()}this.itemNode.setStyles(this.tree.css.treeItemNodeSelected);this.expandNode();this.tree.currentMenu=this},expandNode:function(){var e=new Fx.Morph(this.childrenNode,{duration:100});this.childrenNode.setStyles({display:"block",height:"0px"});e.start({height:this.children.length*40}).chain(function(){}.bind(this))},collapseNode:function(){var e=new Fx.Morph(this.childrenNode,{duration:100});e.start({height:0}).chain(function(){this.childrenNode.setStyle("display","none")}.bind(this))}});MWF.widget.LeftNavi.Node=new Class({Extends:MWF.widget.Tree.Node,Implements:[Options,Events],insertChild:function(e){var t=new MWF.widget.LeftNavi.Node(this.tree,e);var i=this.previousSibling;this.previousSibling=t;t.nextSibling=this;t.previousSibling=i;if(i){i.nextSibling=t}else{this.parentNode.firstChild=t}t.parentNode=this.parentNode;t.level=this.level;t.load();t.node.inject(this.node,"before");this.parentNode.children.push(t);return t},appendChild:function(e){var t=new MWF.widget.LeftNavi.Node(this.tree,e);if(this.children.length){t.previousSibling=this.children[this.children.length-1];t.previousSibling.nextSibling=t}else{this.firstChild=t;this.setOperateIcon()}t.level=this.level+1;t.parentNode=this;t.load();t.node.inject(this.childrenNode);this.children.push(t);return t},load:function(){this.nodeTable=new Element("table",{border:"0",cellpadding:"0",cellspacing:"0",styles:this.tree.css.nodeTable}).inject(this.itemNode);var e=new Element("tbody").inject(this.nodeTable);this.nodeArea=new Element("tr").inject(e);this.createLevelNode();this.createOperateNode();this.createIconNode();this.createTextNode();this.setLevelStyle();this.setOtherEvent()},setOtherEvent:function(){if(this.level==0){this.operateNode.removeEvents("click");this.itemNode.addEvent("click",function(){this.menuClickNode()}.bind(this))}},menuClickNode:function(){this.selectNode();this.expandOrCollapse()},selectNode:function(){if(this.tree.currentNode){var e=this.tree.currentNode.itemNode;if(this.level>0){e.setStyles(this.tree.css.treeItemNodeSub)}else{e.setStyles(this.tree.css.treeItemNode)}}var e=this.itemNode;if(this.level>0){e.setStyles(this.tree.css.treeItemNodeSelectedSub)}else{e.setStyles(this.tree.css.treeItemNodeSelected)}this.tree.currentNode=this},setLevelStyle:function(){if(this.tree.css.treeNodeSub)this.node.setStyles(this.tree.css.treeNodeSub);if(this.tree.css.treeItemNodeSub)this.itemNode.setStyles(this.tree.css.treeItemNodeSub);if(this.tree.css.treeChildrenNodeSub)this.childrenNode.setStyles(this.tree.css.treeChildrenNodeSub);if(this.tree.css.nodeTableSub)this.nodeTable.setStyles(this.tree.css.nodeTableSub);if(this.tree.css.textDivNodeSub)this.textNode.getFirst("div").setStyles(this.tree.css.textDivNodeSub);if(this.tree.css.iconNodeSub)this.iconNode.setStyles(this.tree.css.iconNodeSub);if(this.tree.css.blankLevelNodeSub){this.levelNode.each(function(e){e.setStyles(this.tree.css.blankLevelNodeSub)})}}});
|