mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4536 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
1 line
17 KiB
JavaScript
1 line
17 KiB
JavaScript
/* Copyright (c) 2006, Yahoo! Inc. All rights reserved.Code licensed under the BSD License:http://developer.yahoo.net/yui/license.txt version: 0.12.0 */ YAHOO.widget.TreeView=function(id){if(id){this.init(id);}};YAHOO.widget.TreeView.prototype={id:null,_el:null,_nodes:null,locked:false,_expandAnim:null,_collapseAnim:null,_animCount:0,maxAnim:2,setExpandAnim:function(_2){if(YAHOO.widget.TVAnim.isValid(_2)){this._expandAnim=_2;}},setCollapseAnim:function(_3){if(YAHOO.widget.TVAnim.isValid(_3)){this._collapseAnim=_3;}},animateExpand:function(el,_5){if(this._expandAnim&&this._animCount<this.maxAnim){var _6=this;var a=YAHOO.widget.TVAnim.getAnim(this._expandAnim,el,function(){_6.expandComplete(_5);});if(a){++this._animCount;this.fireEvent("animStart",{"node":_5,"type":"expand"});a.animate();}return true;}return false;},animateCollapse:function(el,_8){if(this._collapseAnim&&this._animCount<this.maxAnim){var _9=this;var a=YAHOO.widget.TVAnim.getAnim(this._collapseAnim,el,function(){_9.collapseComplete(_8);});if(a){++this._animCount;this.fireEvent("animStart",{"node":_8,"type":"collapse"});a.animate();}return true;}return false;},expandComplete:function(_10){--this._animCount;this.fireEvent("animComplete",{"node":_10,"type":"expand"});},collapseComplete:function(_11){--this._animCount;this.fireEvent("animComplete",{"node":_11,"type":"collapse"});},init:function(id){this.id=id;if("string"!==typeof id){this._el=id;this.id=this.generateId(id);}this.createEvent("animStart",this);this.createEvent("animComplete",this);this.createEvent("collapse",this);this.createEvent("expand",this);this._nodes=[];YAHOO.widget.TreeView.trees[this.id]=this;this.root=new YAHOO.widget.RootNode(this);},draw:function(){var _12=this.root.getHtml();this.getEl().innerHTML=_12;this.firstDraw=false;},getEl:function(){if(!this._el){this._el=document.getElementById(this.id);}return this._el;},regNode:function(_13){this._nodes[_13.index]=_13;},getRoot:function(){return this.root;},setDynamicLoad:function(_14,_15){this.root.setDynamicLoad(_14,_15);},expandAll:function(){if(!this.locked){this.root.expandAll();}},collapseAll:function(){if(!this.locked){this.root.collapseAll();}},getNodeByIndex:function(_16){var n=this._nodes[_16];return (n)?n:null;},getNodeByProperty:function(_18,_19){for(var i in this._nodes){var n=this._nodes[i];if(n.data&&_19==n.data[_18]){return n;}}return null;},getNodesByProperty:function(_21,_22){var _23=[];for(var i in this._nodes){var n=this._nodes[i];if(n.data&&_22==n.data[_21]){_23.push(n);}}return (_23.length)?_23:null;},removeNode:function(_24,_25){if(_24.isRoot()){return false;}var p=_24.parent;if(p.parent){p=p.parent;}this._deleteNode(_24);if(_25&&p&&p.childrenRendered){p.refresh();}return true;},removeChildren:function(_27){while(_27.children.length){this._deleteNode(_27.children[0]);}_27.childrenRendered=false;_27.dynamicLoadComplete=false;if(_27.expanded){_27.collapse();}else{_27.updateIcon();}},_deleteNode:function(_28){this.removeChildren(_28);this.popNode(_28);},popNode:function(_29){var p=_29.parent;var a=[];for(var i=0,len=p.children.length;i<len;++i){if(p.children[i]!=_29){a[a.length]=p.children[i];}}p.children=a;p.childrenRendered=false;if(_29.previousSibling){_29.previousSibling.nextSibling=_29.nextSibling;}if(_29.nextSibling){_29.nextSibling.previousSibling=_29.previousSibling;}_29.parent=null;_29.previousSibling=null;_29.nextSibling=null;_29.tree=null;delete this._nodes[_29.index];},toString:function(){return "TreeView "+this.id;},generateId:function(el){var id=el.id;if(!id){id="yui-tv-auto-id-"+YAHOO.widget.TreeView.counter;++YAHOO.widget.TreeView.counter;}return id;},onExpand:function(_30){},onCollapse:function(_31){}};YAHOO.augment(YAHOO.widget.TreeView,YAHOO.util.EventProvider);YAHOO.widget.TreeView.nodeCount=0;YAHOO.widget.TreeView.trees=[];YAHOO.widget.TreeView.counter=0;YAHOO.widget.TreeView.getTree=function(_32){var t=YAHOO.widget.TreeView.trees[_32];return (t)?t:null;};YAHOO.widget.TreeView.getNode=function(_34,_35){var t=YAHOO.widget.TreeView.getTree(_34);return (t)?t.getNodeByIndex(_35):null;};YAHOO.widget.TreeView.addHandler=function(el,_36,fn){if(el.addEventListener){el.addEventListener(_36,fn,false);}else{if(el.attachEvent){el.attachEvent("on"+_36,fn);}}};YAHOO.widget.TreeView.removeHandler=function(el,_38,fn){if(el.removeEventListener){el.removeEventListener(_38,fn,false);}else{if(el.detachEvent){el.detachEvent("on"+_38,fn);}}};YAHOO.widget.TreeView.preload=function(_39){_39=_39||"ygtv";var _40=["tn","tm","tmh","tp","tph","ln","lm","lmh","lp","lph","loading"];var sb=[];for(var i=0;i<_40.length;++i){sb[sb.length]="<span class=\""+_39+_40[i]+"\"> </span>";}var f=document.createElement("div");var s=f.style;s.position="absolute";s.top="-1000px";s.left="-1000px";f.innerHTML=sb.join("");document.body.appendChild(f);YAHOO.widget.TreeView.removeHandler(window,"load",YAHOO.widget.TreeView.preload);};YAHOO.widget.TreeView.addHandler(window,"load",YAHOO.widget.TreeView.preload);YAHOO.widget.Node=function(_44,_45,_46){if(_44){this.init(_44,_45,_46);}};YAHOO.widget.Node.prototype={index:0,children:null,tree:null,data:null,parent:null,depth:-1,href:null,target:"_self",expanded:false,multiExpand:true,renderHidden:false,childrenRendered:false,dynamicLoadComplete:false,previousSibling:null,nextSibling:null,_dynLoad:false,dataLoader:null,isLoading:false,hasIcon:true,iconMode:0,_type:"Node",init:function(_47,_48,_49){this.data=_47;this.children=[];this.index=YAHOO.widget.TreeView.nodeCount;++YAHOO.widget.TreeView.nodeCount;this.expanded=_49;this.createEvent("parentChange",this);if(_48){_48.appendChild(this);}},applyParent:function(_50){if(!_50){return false;}this.tree=_50.tree;this.parent=_50;this.depth=_50.depth+1;if(!this.href){this.href="javascript:"+this.getToggleLink();}if(!this.multiExpand){this.multiExpand=_50.multiExpand;}this.tree.regNode(this);_50.childrenRendered=false;for(var i=0,len=this.children.length;i<len;++i){this.children[i].applyParent(this);}this.fireEvent("parentChange");return true;},appendChild:function(_51){if(this.hasChildren()){var sib=this.children[this.children.length-1];sib.nextSibling=_51;_51.previousSibling=sib;}this.children[this.children.length]=_51;_51.applyParent(this);return _51;},appendTo:function(_53){return _53.appendChild(this);},insertBefore:function(_54){var p=_54.parent;if(p){if(this.tree){this.tree.popNode(this);}var _55=_54.isChildOf(p);p.children.splice(_55,0,this);if(_54.previousSibling){_54.previousSibling.nextSibling=this;}this.previousSibling=_54.previousSibling;this.nextSibling=_54;_54.previousSibling=this;this.applyParent(p);}return this;},insertAfter:function(_56){var p=_56.parent;if(p){if(this.tree){this.tree.popNode(this);}var _57=_56.isChildOf(p);if(!_56.nextSibling){return this.appendTo(p);}p.children.splice(_57+1,0,this);_56.nextSibling.previousSibling=this;this.previousSibling=_56;this.nextSibling=_56.nextSibling;_56.nextSibling=this;this.applyParent(p);}return this;},isChildOf:function(_58){if(_58&&_58.children){for(var i=0,len=_58.children.length;i<len;++i){if(_58.children[i]===this){return i;}}}return -1;},getSiblings:function(){return this.parent.children;},showChildren:function(){if(!this.tree.animateExpand(this.getChildrenEl(),this)){if(this.hasChildren()){this.getChildrenEl().style.display="";}}},hideChildren:function(){if(!this.tree.animateCollapse(this.getChildrenEl(),this)){this.getChildrenEl().style.display="none";}},getElId:function(){return "ygtv"+this.index;},getChildrenElId:function(){return "ygtvc"+this.index;},getToggleElId:function(){return "ygtvt"+this.index;},getEl:function(){return document.getElementById(this.getElId());},getChildrenEl:function(){return document.getElementById(this.getChildrenElId());},getToggleEl:function(){return document.getElementById(this.getToggleElId());},getToggleLink:function(){return "YAHOO.widget.TreeView.getNode('"+this.tree.id+"',"+this.index+").toggle()";},collapse:function(){if(!this.expanded){return;}var ret=this.tree.onCollapse(this);if(false===ret){return;}ret=this.tree.fireEvent("collapse",this);if(false===ret){return;}if(!this.getEl()){this.expanded=false;return;}this.hideChildren();this.expanded=false;this.updateIcon();},expand:function(){if(this.expanded){return;}var ret=this.tree.onExpand(this);if(false===ret){return;}ret=this.tree.fireEvent("expand",this);if(false===ret){return;}if(!this.getEl()){this.expanded=true;return;}if(!this.childrenRendered){this.getChildrenEl().innerHTML=this.renderChildren();}else{}this.expanded=true;this.updateIcon();if(this.isLoading){this.expanded=false;return;}if(!this.multiExpand){var _60=this.getSiblings();for(var i=0;i<_60.length;++i){if(_60[i]!=this&&_60[i].expanded){_60[i].collapse();}}}this.showChildren();},updateIcon:function(){if(this.hasIcon){var el=this.getToggleEl();if(el){el.className=this.getStyle();}}},getStyle:function(){if(this.isLoading){return "ygtvloading";}else{var loc=(this.nextSibling)?"t":"l";var _62="n";if(this.hasChildren(true)||(this.isDynamic()&&!this.getIconMode())){_62=(this.expanded)?"m":"p";}return "ygtv"+loc+_62;}},getHoverStyle:function(){var s=this.getStyle();if(this.hasChildren(true)&&!this.isLoading){s+="h";}return s;},expandAll:function(){for(var i=0;i<this.children.length;++i){var c=this.children[i];if(c.isDynamic()){alert("Not supported (lazy load + expand all)");break;}else{if(!c.multiExpand){alert("Not supported (no multi-expand + expand all)");break;}else{c.expand();c.expandAll();}}}},collapseAll:function(){for(var i=0;i<this.children.length;++i){this.children[i].collapse();this.children[i].collapseAll();}},setDynamicLoad:function(_64,_65){if(_64){this.dataLoader=_64;this._dynLoad=true;}else{this.dataLoader=null;this._dynLoad=false;}if(_65){this.iconMode=_65;}},isRoot:function(){return (this==this.tree.root);},isDynamic:function(){var _66=(!this.isRoot()&&(this._dynLoad||this.tree.root._dynLoad));return _66;},getIconMode:function(){return (this.iconMode||this.tree.root.iconMode);},hasChildren:function(_67){return (this.children.length>0||(_67&&this.isDynamic()&&!this.dynamicLoadComplete));},toggle:function(){if(!this.tree.locked&&(this.hasChildren(true)||this.isDynamic())){if(this.expanded){this.collapse();}else{this.expand();}}},getHtml:function(){this.childrenRendered=false;var sb=[];sb[sb.length]="<div class=\"ygtvitem\" id=\""+this.getElId()+"\">";sb[sb.length]=this.getNodeHtml();sb[sb.length]=this.getChildrenHtml();sb[sb.length]="</div>";return sb.join("");},getChildrenHtml:function(){var sb=[];sb[sb.length]="<div class=\"ygtvchildren\"";sb[sb.length]=" id=\""+this.getChildrenElId()+"\"";if(!this.expanded){sb[sb.length]=" style=\"display:none;\"";}sb[sb.length]=">";if((this.hasChildren(true)&&this.expanded)||(this.renderHidden&&!this.isDynamic())){sb[sb.length]=this.renderChildren();}sb[sb.length]="</div>";return sb.join("");},renderChildren:function(){var _68=this;if(this.isDynamic()&&!this.dynamicLoadComplete){this.isLoading=true;this.tree.locked=true;if(this.dataLoader){setTimeout(function(){_68.dataLoader(_68,function(){_68.loadComplete();});},10);}else{if(this.tree.root.dataLoader){setTimeout(function(){_68.tree.root.dataLoader(_68,function(){_68.loadComplete();});},10);}else{return "Error: data loader not found or not specified.";}}return "";}else{return this.completeRender();}},completeRender:function(){var sb=[];for(var i=0;i<this.children.length;++i){sb[sb.length]=this.children[i].getHtml();}this.childrenRendered=true;return sb.join("");},loadComplete:function(){this.getChildrenEl().innerHTML=this.completeRender();this.dynamicLoadComplete=true;this.isLoading=false;this.expand();this.tree.locked=false;},getAncestor:function(_69){if(_69>=this.depth||_69<0){return null;}var p=this.parent;while(p.depth>_69){p=p.parent;}return p;},getDepthStyle:function(_70){return (this.getAncestor(_70).nextSibling)?"ygtvdepthcell":"ygtvblankdepthcell";},getNodeHtml:function(){return "";},refresh:function(){this.getChildrenEl().innerHTML=this.completeRender();if(this.hasIcon){var el=this.getToggleEl();if(el){el.className=this.getStyle();}}},toString:function(){return "Node ("+this.index+")";}};YAHOO.augment(YAHOO.widget.Node,YAHOO.util.EventProvider);YAHOO.widget.RootNode=function(_71){this.init(null,null,true);this.tree=_71;};YAHOO.extend(YAHOO.widget.RootNode,YAHOO.widget.Node,{getNodeHtml:function(){return "";},toString:function(){return "RootNode";},loadComplete:function(){this.tree.draw();}});YAHOO.widget.TextNode=function(_72,_73,_74){if(_72){this.init(_72,_73,_74);this.setUpLabel(_72);}};YAHOO.extend(YAHOO.widget.TextNode,YAHOO.widget.Node,{labelStyle:"ygtvlabel",labelElId:null,label:null,textNodeParentChange:function(){if(this.tree&&!this.tree.hasEvent("labelClick")){this.tree.createEvent("labelClick",this.tree);}},setUpLabel:function(_75){this.textNodeParentChange();this.subscribe("parentChange",this.textNodeParentChange);if(typeof _75=="string"){_75={label:_75};}this.label=_75.label;if(_75.href){this.href=_75.href;}if(_75.target){this.target=_75.target;}if(_75.style){this.labelStyle=_75.style;}this.labelElId="ygtvlabelel"+this.index;},getLabelEl:function(){return document.getElementById(this.labelElId);},getNodeHtml:function(){var sb=[];sb[sb.length]="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";sb[sb.length]="<tr>";for(var i=0;i<this.depth;++i){sb[sb.length]="<td class=\""+this.getDepthStyle(i)+"\"> </td>";}var _76="YAHOO.widget.TreeView.getNode('"+this.tree.id+"',"+this.index+")";sb[sb.length]="<td";sb[sb.length]=" id=\""+this.getToggleElId()+"\"";sb[sb.length]=" class=\""+this.getStyle()+"\"";if(this.hasChildren(true)){sb[sb.length]=" onmouseover=\"this.className=";sb[sb.length]=_76+".getHoverStyle()\"";sb[sb.length]=" onmouseout=\"this.className=";sb[sb.length]=_76+".getStyle()\"";}sb[sb.length]=" onclick=\"javascript:"+this.getToggleLink()+"\">";sb[sb.length]=" ";sb[sb.length]="</td>";sb[sb.length]="<td>";sb[sb.length]="<a";sb[sb.length]=" id=\""+this.labelElId+"\"";sb[sb.length]=" class=\""+this.labelStyle+"\"";sb[sb.length]=" href=\""+this.href+"\"";sb[sb.length]=" target=\""+this.target+"\"";sb[sb.length]=" onclick=\"return "+_76+".onLabelClick("+_76+")\"";if(this.hasChildren(true)){sb[sb.length]=" onmouseover=\"document.getElementById('";sb[sb.length]=this.getToggleElId()+"').className=";sb[sb.length]=_76+".getHoverStyle()\"";sb[sb.length]=" onmouseout=\"document.getElementById('";sb[sb.length]=this.getToggleElId()+"').className=";sb[sb.length]=_76+".getStyle()\"";}sb[sb.length]=" >";sb[sb.length]=this.label;sb[sb.length]="</a>";sb[sb.length]="</td>";sb[sb.length]="</tr>";sb[sb.length]="</table>";return sb.join("");},onLabelClick:function(me){return me.tree.fireEvent("labelClick",me);},toString:function(){return "TextNode ("+this.index+") "+this.label;}});YAHOO.widget.MenuNode=function(_78,_79,_80){if(_78){this.init(_78,_79,_80);this.setUpLabel(_78);}this.multiExpand=false;};YAHOO.extend(YAHOO.widget.MenuNode,YAHOO.widget.TextNode,{toString:function(){return "MenuNode ("+this.index+") "+this.label;}});YAHOO.widget.HTMLNode=function(_81,_82,_83,_84){if(_81){this.init(_81,_82,_83);this.initContent(_81,_84);}};YAHOO.extend(YAHOO.widget.HTMLNode,YAHOO.widget.Node,{contentStyle:"ygtvhtml",contentElId:null,content:null,initContent:function(_85,_86){if(typeof _85=="string"){_85={html:_85};}this.html=_85.html;this.contentElId="ygtvcontentel"+this.index;this.hasIcon=_86;},getContentEl:function(){return document.getElementById(this.contentElId);},getNodeHtml:function(){var sb=[];sb[sb.length]="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";sb[sb.length]="<tr>";for(var i=0;i<this.depth;++i){sb[sb.length]="<td class=\""+this.getDepthStyle(i)+"\"> </td>";}if(this.hasIcon){sb[sb.length]="<td";sb[sb.length]=" id=\""+this.getToggleElId()+"\"";sb[sb.length]=" class=\""+this.getStyle()+"\"";sb[sb.length]=" onclick=\"javascript:"+this.getToggleLink()+"\"";if(this.hasChildren(true)){sb[sb.length]=" onmouseover=\"this.className=";sb[sb.length]="YAHOO.widget.TreeView.getNode('";sb[sb.length]=this.tree.id+"',"+this.index+").getHoverStyle()\"";sb[sb.length]=" onmouseout=\"this.className=";sb[sb.length]="YAHOO.widget.TreeView.getNode('";sb[sb.length]=this.tree.id+"',"+this.index+").getStyle()\"";}sb[sb.length]="> </td>";}sb[sb.length]="<td";sb[sb.length]=" id=\""+this.contentElId+"\"";sb[sb.length]=" class=\""+this.contentStyle+"\"";sb[sb.length]=" >";sb[sb.length]=this.html;sb[sb.length]="</td>";sb[sb.length]="</tr>";sb[sb.length]="</table>";return sb.join("");},toString:function(){return "HTMLNode ("+this.index+")";}});YAHOO.widget.TVAnim=function(){return {FADE_IN:"TVFadeIn",FADE_OUT:"TVFadeOut",getAnim:function(_87,el,_88){if(YAHOO.widget[_87]){return new YAHOO.widget[_87](el,_88);}else{return null;}},isValid:function(_89){return (YAHOO.widget[_89]);}};}();YAHOO.widget.TVFadeIn=function(el,_90){this.el=el;this.callback=_90;};YAHOO.widget.TVFadeIn.prototype={animate:function(){var _91=this;var s=this.el.style;s.opacity=0.1;s.filter="alpha(opacity=10)";s.display="";var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:0.1,to:1,unit:""}},dur);a.onComplete.subscribe(function(){_91.onComplete();});a.animate();},onComplete:function(){this.callback();},toString:function(){return "TVFadeIn";}};YAHOO.widget.TVFadeOut=function(el,_93){this.el=el;this.callback=_93;};YAHOO.widget.TVFadeOut.prototype={animate:function(){var _94=this;var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:1,to:0.1,unit:""}},dur);a.onComplete.subscribe(function(){_94.onComplete();});a.animate();},onComplete:function(){var s=this.el.style;s.display="none";s.filter="alpha(opacity=100)";this.callback();},toString:function(){return "TVFadeOut";}}; |