jquery.tree.js 26 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250
  1. /**
  2. * jQuery EasyUI 1.4.4
  3. *
  4. * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. var _3=$(_2);
  13. _3.addClass("tree");
  14. return _3;
  15. };
  16. function _4(_5){
  17. var _6=$.data(_5,"tree").options;
  18. $(_5).unbind().bind("mouseover",function(e){
  19. var tt=$(e.target);
  20. var _7=tt.closest("div.tree-node");
  21. if(!_7.length){
  22. return;
  23. }
  24. _7.addClass("tree-node-hover");
  25. if(tt.hasClass("tree-hit")){
  26. if(tt.hasClass("tree-expanded")){
  27. tt.addClass("tree-expanded-hover");
  28. }else{
  29. tt.addClass("tree-collapsed-hover");
  30. }
  31. }
  32. e.stopPropagation();
  33. }).bind("mouseout",function(e){
  34. var tt=$(e.target);
  35. var _8=tt.closest("div.tree-node");
  36. if(!_8.length){
  37. return;
  38. }
  39. _8.removeClass("tree-node-hover");
  40. if(tt.hasClass("tree-hit")){
  41. if(tt.hasClass("tree-expanded")){
  42. tt.removeClass("tree-expanded-hover");
  43. }else{
  44. tt.removeClass("tree-collapsed-hover");
  45. }
  46. }
  47. e.stopPropagation();
  48. }).bind("click",function(e){
  49. var tt=$(e.target);
  50. var _9=tt.closest("div.tree-node");
  51. if(!_9.length){
  52. return;
  53. }
  54. if(tt.hasClass("tree-hit")){
  55. _8f(_5,_9[0]);
  56. return false;
  57. }else{
  58. if(tt.hasClass("tree-checkbox")){
  59. _34(_5,_9[0]);
  60. return false;
  61. }else{
  62. _e9(_5,_9[0]);
  63. _6.onClick.call(_5,_c(_5,_9[0]));
  64. }
  65. }
  66. e.stopPropagation();
  67. }).bind("dblclick",function(e){
  68. var _a=$(e.target).closest("div.tree-node");
  69. if(!_a.length){
  70. return;
  71. }
  72. _e9(_5,_a[0]);
  73. _6.onDblClick.call(_5,_c(_5,_a[0]));
  74. e.stopPropagation();
  75. }).bind("contextmenu",function(e){
  76. var _b=$(e.target).closest("div.tree-node");
  77. if(!_b.length){
  78. return;
  79. }
  80. _6.onContextMenu.call(_5,e,_c(_5,_b[0]));
  81. e.stopPropagation();
  82. });
  83. };
  84. function _d(_e){
  85. var _f=$.data(_e,"tree").options;
  86. _f.dnd=false;
  87. var _10=$(_e).find("div.tree-node");
  88. _10.draggable("disable");
  89. _10.css("cursor","pointer");
  90. };
  91. function _11(_12){
  92. var _13=$.data(_12,"tree");
  93. var _14=_13.options;
  94. var _15=_13.tree;
  95. _13.disabledNodes=[];
  96. _14.dnd=true;
  97. _15.find("div.tree-node").draggable({disabled:false,revert:true,cursor:"pointer",proxy:function(_16){
  98. var p=$("<div class=\"tree-node-proxy\"></div>").appendTo("body");
  99. p.html("<span class=\"tree-dnd-icon tree-dnd-no\">&nbsp;</span>"+$(_16).find(".tree-title").html());
  100. p.hide();
  101. return p;
  102. },deltaX:15,deltaY:15,onBeforeDrag:function(e){
  103. if(_14.onBeforeDrag.call(_12,_c(_12,this))==false){
  104. return false;
  105. }
  106. if($(e.target).hasClass("tree-hit")||$(e.target).hasClass("tree-checkbox")){
  107. return false;
  108. }
  109. if(e.which!=1){
  110. return false;
  111. }
  112. var _17=$(this).find("span.tree-indent");
  113. if(_17.length){
  114. e.data.offsetWidth-=_17.length*_17.width();
  115. }
  116. },onStartDrag:function(e){
  117. $(this).next("ul").find("div.tree-node").each(function(){
  118. $(this).droppable("disable");
  119. _13.disabledNodes.push(this);
  120. });
  121. $(this).draggable("proxy").css({left:-10000,top:-10000});
  122. _14.onStartDrag.call(_12,_c(_12,this));
  123. var _18=_c(_12,this);
  124. if(_18.id==undefined){
  125. _18.id="easyui_tree_node_id_temp";
  126. _64(_12,_18);
  127. }
  128. _13.draggingNodeId=_18.id;
  129. },onDrag:function(e){
  130. var x1=e.pageX,y1=e.pageY,x2=e.data.startX,y2=e.data.startY;
  131. var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
  132. if(d>3){
  133. $(this).draggable("proxy").show();
  134. }
  135. this.pageY=e.pageY;
  136. },onStopDrag:function(){
  137. for(var i=0;i<_13.disabledNodes.length;i++){
  138. $(_13.disabledNodes[i]).droppable("enable");
  139. }
  140. _13.disabledNodes=[];
  141. var _19=_dc(_12,_13.draggingNodeId);
  142. if(_19&&_19.id=="easyui_tree_node_id_temp"){
  143. _19.id="";
  144. _64(_12,_19);
  145. }
  146. _14.onStopDrag.call(_12,_19);
  147. }}).droppable({accept:"div.tree-node",onDragEnter:function(e,_1a){
  148. if(_14.onDragEnter.call(_12,this,_1b(_1a))==false){
  149. _1c(_1a,false);
  150. $(this).removeClass("tree-node-append tree-node-top tree-node-bottom");
  151. $(this).droppable("disable");
  152. _13.disabledNodes.push(this);
  153. }
  154. },onDragOver:function(e,_1d){
  155. if($(this).droppable("options").disabled){
  156. return;
  157. }
  158. var _1e=_1d.pageY;
  159. var top=$(this).offset().top;
  160. var _1f=top+$(this).outerHeight();
  161. _1c(_1d,true);
  162. $(this).removeClass("tree-node-append tree-node-top tree-node-bottom");
  163. if(_1e>top+(_1f-top)/2){
  164. if(_1f-_1e<5){
  165. $(this).addClass("tree-node-bottom");
  166. }else{
  167. $(this).addClass("tree-node-append");
  168. }
  169. }else{
  170. if(_1e-top<5){
  171. $(this).addClass("tree-node-top");
  172. }else{
  173. $(this).addClass("tree-node-append");
  174. }
  175. }
  176. if(_14.onDragOver.call(_12,this,_1b(_1d))==false){
  177. _1c(_1d,false);
  178. $(this).removeClass("tree-node-append tree-node-top tree-node-bottom");
  179. $(this).droppable("disable");
  180. _13.disabledNodes.push(this);
  181. }
  182. },onDragLeave:function(e,_20){
  183. _1c(_20,false);
  184. $(this).removeClass("tree-node-append tree-node-top tree-node-bottom");
  185. _14.onDragLeave.call(_12,this,_1b(_20));
  186. },onDrop:function(e,_21){
  187. var _22=this;
  188. var _23,_24;
  189. if($(this).hasClass("tree-node-append")){
  190. _23=_25;
  191. _24="append";
  192. }else{
  193. _23=_26;
  194. _24=$(this).hasClass("tree-node-top")?"top":"bottom";
  195. }
  196. if(_14.onBeforeDrop.call(_12,_22,_1b(_21),_24)==false){
  197. $(this).removeClass("tree-node-append tree-node-top tree-node-bottom");
  198. return;
  199. }
  200. _23(_21,_22,_24);
  201. $(this).removeClass("tree-node-append tree-node-top tree-node-bottom");
  202. }});
  203. function _1b(_27,pop){
  204. return $(_27).closest("ul.tree").tree(pop?"pop":"getData",_27);
  205. };
  206. function _1c(_28,_29){
  207. var _2a=$(_28).draggable("proxy").find("span.tree-dnd-icon");
  208. _2a.removeClass("tree-dnd-yes tree-dnd-no").addClass(_29?"tree-dnd-yes":"tree-dnd-no");
  209. };
  210. function _25(_2b,_2c){
  211. if(_c(_12,_2c).state=="closed"){
  212. _83(_12,_2c,function(){
  213. _2d();
  214. });
  215. }else{
  216. _2d();
  217. }
  218. function _2d(){
  219. var _2e=_1b(_2b,true);
  220. $(_12).tree("append",{parent:_2c,data:[_2e]});
  221. _14.onDrop.call(_12,_2c,_2e,"append");
  222. };
  223. };
  224. function _26(_2f,_30,_31){
  225. var _32={};
  226. if(_31=="top"){
  227. _32.before=_30;
  228. }else{
  229. _32.after=_30;
  230. }
  231. var _33=_1b(_2f,true);
  232. _32.data=_33;
  233. $(_12).tree("insert",_32);
  234. _14.onDrop.call(_12,_30,_33,_31);
  235. };
  236. };
  237. function _34(_35,_36,_37){
  238. var _38=$.data(_35,"tree");
  239. var _39=_38.options;
  240. if(!_39.checkbox){
  241. return;
  242. }
  243. var _3a=_c(_35,_36);
  244. if(_37==undefined){
  245. var ck=$(_36).find(".tree-checkbox");
  246. if(ck.hasClass("tree-checkbox1")){
  247. _37=false;
  248. }else{
  249. if(ck.hasClass("tree-checkbox0")){
  250. _37=true;
  251. }else{
  252. if(_3a._checked==undefined){
  253. _3a._checked=$(_36).find(".tree-checkbox").hasClass("tree-checkbox1");
  254. }
  255. _37=!_3a._checked;
  256. }
  257. }
  258. }
  259. _3a._checked=_37;
  260. if(_39.onBeforeCheck.call(_35,_3a,_37)==false){
  261. return;
  262. }
  263. if(_39.cascadeCheck){
  264. _3b(_3a,_37);
  265. _3c(_3a,_37);
  266. }else{
  267. _3d($(_3a.target),_37?"1":"0");
  268. }
  269. _39.onCheck.call(_35,_3a,_37);
  270. function _3d(_3e,_3f){
  271. var ck=_3e.find(".tree-checkbox");
  272. ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2");
  273. ck.addClass("tree-checkbox"+_3f);
  274. };
  275. function _3b(_40,_41){
  276. if(_39.deepCheck){
  277. var _42=$("#"+_40.domId);
  278. var _43=_41?"1":"0";
  279. _3d(_42,_43);
  280. _3d(_42.next(),_43);
  281. }else{
  282. _44(_40,_41);
  283. _68(_40.children||[],function(n){
  284. _44(n,_41);
  285. });
  286. }
  287. };
  288. function _44(_45,_46){
  289. if(_45.hidden){
  290. return;
  291. }
  292. var cls="tree-checkbox"+(_46?"1":"0");
  293. var _47=$("#"+_45.domId);
  294. _3d(_47,_46?"1":"0");
  295. if(_45.children){
  296. for(var i=0;i<_45.children.length;i++){
  297. if(_45.children[i].hidden){
  298. if(!$("#"+_45.children[i].domId).find("."+cls).length){
  299. _3d(_47,"2");
  300. var _48=_9a(_35,_47[0]);
  301. while(_48){
  302. _3d($(_48.target),"2");
  303. _48=_9a(_35,_48[0]);
  304. }
  305. return;
  306. }
  307. }
  308. }
  309. }
  310. };
  311. function _3c(_49,_4a){
  312. var _4b=$("#"+_49.domId);
  313. var _4c=_9a(_35,_4b[0]);
  314. if(_4c){
  315. var _4d="";
  316. if(_4e(_4b,true)){
  317. _4d="1";
  318. }else{
  319. if(_4e(_4b,false)){
  320. _4d="0";
  321. }else{
  322. _4d="2";
  323. }
  324. }
  325. _3d($(_4c.target),_4d);
  326. _3c(_4c,_4a);
  327. }
  328. };
  329. function _4e(_4f,_50){
  330. var cls="tree-checkbox"+(_50?"1":"0");
  331. var ck=_4f.find(".tree-checkbox");
  332. if(!ck.hasClass(cls)){
  333. return false;
  334. }
  335. var b=true;
  336. _4f.parent().siblings().each(function(){
  337. var ck=$(this).children("div.tree-node").children(".tree-checkbox");
  338. if(ck.length&&!ck.hasClass(cls)){
  339. b=false;
  340. return false;
  341. }
  342. });
  343. return b;
  344. };
  345. };
  346. function _51(_52,_53){
  347. var _54=$.data(_52,"tree").options;
  348. if(!_54.checkbox){
  349. return;
  350. }
  351. var _55=$(_53);
  352. if(_56(_52,_53)){
  353. var ck=_55.find(".tree-checkbox");
  354. if(ck.length){
  355. if(ck.hasClass("tree-checkbox1")){
  356. _34(_52,_53,true);
  357. }else{
  358. _34(_52,_53,false);
  359. }
  360. }else{
  361. if(_54.onlyLeafCheck){
  362. $("<span class=\"tree-checkbox tree-checkbox0\"></span>").insertBefore(_55.find(".tree-title"));
  363. }
  364. }
  365. }else{
  366. var ck=_55.find(".tree-checkbox");
  367. if(_54.onlyLeafCheck){
  368. ck.remove();
  369. }else{
  370. if(ck.hasClass("tree-checkbox1")){
  371. _34(_52,_53,true);
  372. }else{
  373. if(ck.hasClass("tree-checkbox2")){
  374. var _57=true;
  375. var _58=true;
  376. var _59=_5a(_52,_53);
  377. for(var i=0;i<_59.length;i++){
  378. if(_59[i].checked){
  379. _58=false;
  380. }else{
  381. _57=false;
  382. }
  383. }
  384. if(_57){
  385. _34(_52,_53,true);
  386. }
  387. if(_58){
  388. _34(_52,_53,false);
  389. }
  390. }
  391. }
  392. }
  393. }
  394. };
  395. function _5b(_5c,ul,_5d,_5e){
  396. var _5f=$.data(_5c,"tree");
  397. var _60=_5f.options;
  398. var _61=$(ul).prevAll("div.tree-node:first");
  399. _5d=_60.loadFilter.call(_5c,_5d,_61[0]);
  400. var _62=_63(_5c,"domId",_61.attr("id"));
  401. if(!_5e){
  402. _62?_62.children=_5d:_5f.data=_5d;
  403. $(ul).empty();
  404. }else{
  405. if(_62){
  406. _62.children?_62.children=_62.children.concat(_5d):_62.children=_5d;
  407. }else{
  408. _5f.data=_5f.data.concat(_5d);
  409. }
  410. }
  411. _60.view.render.call(_60.view,_5c,ul,_5d);
  412. if(_60.dnd){
  413. _11(_5c);
  414. }
  415. if(_62){
  416. _64(_5c,_62);
  417. }
  418. var _65=[];
  419. var _66=[];
  420. for(var i=0;i<_5d.length;i++){
  421. var _67=_5d[i];
  422. if(!_67.checked){
  423. _65.push(_67);
  424. }
  425. }
  426. _68(_5d,function(_69){
  427. if(_69.checked){
  428. _66.push(_69);
  429. }
  430. });
  431. var _6a=_60.onCheck;
  432. _60.onCheck=function(){
  433. };
  434. if(_65.length){
  435. _34(_5c,$("#"+_65[0].domId)[0],false);
  436. }
  437. for(var i=0;i<_66.length;i++){
  438. _34(_5c,$("#"+_66[i].domId)[0],true);
  439. }
  440. _60.onCheck=_6a;
  441. setTimeout(function(){
  442. _6b(_5c,_5c);
  443. },0);
  444. _60.onLoadSuccess.call(_5c,_62,_5d);
  445. };
  446. function _6b(_6c,ul,_6d){
  447. var _6e=$.data(_6c,"tree").options;
  448. if(_6e.lines){
  449. $(_6c).addClass("tree-lines");
  450. }else{
  451. $(_6c).removeClass("tree-lines");
  452. return;
  453. }
  454. if(!_6d){
  455. _6d=true;
  456. $(_6c).find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom");
  457. $(_6c).find("div.tree-node").removeClass("tree-node-last tree-root-first tree-root-one");
  458. var _6f=$(_6c).tree("getRoots");
  459. if(_6f.length>1){
  460. $(_6f[0].target).addClass("tree-root-first");
  461. }else{
  462. if(_6f.length==1){
  463. $(_6f[0].target).addClass("tree-root-one");
  464. }
  465. }
  466. }
  467. $(ul).children("li").each(function(){
  468. var _70=$(this).children("div.tree-node");
  469. var ul=_70.next("ul");
  470. if(ul.length){
  471. if($(this).next().length){
  472. _71(_70);
  473. }
  474. _6b(_6c,ul,_6d);
  475. }else{
  476. _72(_70);
  477. }
  478. });
  479. var _73=$(ul).children("li:last").children("div.tree-node").addClass("tree-node-last");
  480. _73.children("span.tree-join").removeClass("tree-join").addClass("tree-joinbottom");
  481. function _72(_74,_75){
  482. var _76=_74.find("span.tree-icon");
  483. _76.prev("span.tree-indent").addClass("tree-join");
  484. };
  485. function _71(_77){
  486. var _78=_77.find("span.tree-indent, span.tree-hit").length;
  487. _77.next().find("div.tree-node").each(function(){
  488. $(this).children("span:eq("+(_78-1)+")").addClass("tree-line");
  489. });
  490. };
  491. };
  492. function _79(_7a,ul,_7b,_7c){
  493. var _7d=$.data(_7a,"tree").options;
  494. _7b=$.extend({},_7d.queryParams,_7b||{});
  495. var _7e=null;
  496. if(_7a!=ul){
  497. var _7f=$(ul).prev();
  498. _7e=_c(_7a,_7f[0]);
  499. }
  500. if(_7d.onBeforeLoad.call(_7a,_7e,_7b)==false){
  501. return;
  502. }
  503. var _80=$(ul).prev().children("span.tree-folder");
  504. _80.addClass("tree-loading");
  505. var _81=_7d.loader.call(_7a,_7b,function(_82){
  506. _80.removeClass("tree-loading");
  507. _5b(_7a,ul,_82);
  508. if(_7c){
  509. _7c();
  510. }
  511. },function(){
  512. _80.removeClass("tree-loading");
  513. _7d.onLoadError.apply(_7a,arguments);
  514. if(_7c){
  515. _7c();
  516. }
  517. });
  518. if(_81==false){
  519. _80.removeClass("tree-loading");
  520. }
  521. };
  522. function _83(_84,_85,_86){
  523. var _87=$.data(_84,"tree").options;
  524. var hit=$(_85).children("span.tree-hit");
  525. if(hit.length==0){
  526. return;
  527. }
  528. if(hit.hasClass("tree-expanded")){
  529. return;
  530. }
  531. var _88=_c(_84,_85);
  532. if(_87.onBeforeExpand.call(_84,_88)==false){
  533. return;
  534. }
  535. hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
  536. hit.next().addClass("tree-folder-open");
  537. var ul=$(_85).next();
  538. if(ul.length){
  539. if(_87.animate){
  540. ul.slideDown("normal",function(){
  541. _88.state="open";
  542. _87.onExpand.call(_84,_88);
  543. if(_86){
  544. _86();
  545. }
  546. });
  547. }else{
  548. ul.css("display","block");
  549. _88.state="open";
  550. _87.onExpand.call(_84,_88);
  551. if(_86){
  552. _86();
  553. }
  554. }
  555. }else{
  556. var _89=$("<ul style=\"display:none\"></ul>").insertAfter(_85);
  557. _79(_84,_89[0],{id:_88.id},function(){
  558. if(_89.is(":empty")){
  559. _89.remove();
  560. }
  561. if(_87.animate){
  562. _89.slideDown("normal",function(){
  563. _88.state="open";
  564. _87.onExpand.call(_84,_88);
  565. if(_86){
  566. _86();
  567. }
  568. });
  569. }else{
  570. _89.css("display","block");
  571. _88.state="open";
  572. _87.onExpand.call(_84,_88);
  573. if(_86){
  574. _86();
  575. }
  576. }
  577. });
  578. }
  579. };
  580. function _8a(_8b,_8c){
  581. var _8d=$.data(_8b,"tree").options;
  582. var hit=$(_8c).children("span.tree-hit");
  583. if(hit.length==0){
  584. return;
  585. }
  586. if(hit.hasClass("tree-collapsed")){
  587. return;
  588. }
  589. var _8e=_c(_8b,_8c);
  590. if(_8d.onBeforeCollapse.call(_8b,_8e)==false){
  591. return;
  592. }
  593. hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  594. hit.next().removeClass("tree-folder-open");
  595. var ul=$(_8c).next();
  596. if(_8d.animate){
  597. ul.slideUp("normal",function(){
  598. _8e.state="closed";
  599. _8d.onCollapse.call(_8b,_8e);
  600. });
  601. }else{
  602. ul.css("display","none");
  603. _8e.state="closed";
  604. _8d.onCollapse.call(_8b,_8e);
  605. }
  606. };
  607. function _8f(_90,_91){
  608. var hit=$(_91).children("span.tree-hit");
  609. if(hit.length==0){
  610. return;
  611. }
  612. if(hit.hasClass("tree-expanded")){
  613. _8a(_90,_91);
  614. }else{
  615. _83(_90,_91);
  616. }
  617. };
  618. function _92(_93,_94){
  619. var _95=_5a(_93,_94);
  620. if(_94){
  621. _95.unshift(_c(_93,_94));
  622. }
  623. for(var i=0;i<_95.length;i++){
  624. _83(_93,_95[i].target);
  625. }
  626. };
  627. function _96(_97,_98){
  628. var _99=[];
  629. var p=_9a(_97,_98);
  630. while(p){
  631. _99.unshift(p);
  632. p=_9a(_97,p.target);
  633. }
  634. for(var i=0;i<_99.length;i++){
  635. _83(_97,_99[i].target);
  636. }
  637. };
  638. function _9b(_9c,_9d){
  639. var c=$(_9c).parent();
  640. while(c[0].tagName!="BODY"&&c.css("overflow-y")!="auto"){
  641. c=c.parent();
  642. }
  643. var n=$(_9d);
  644. var _9e=n.offset().top;
  645. if(c[0].tagName!="BODY"){
  646. var _9f=c.offset().top;
  647. if(_9e<_9f){
  648. c.scrollTop(c.scrollTop()+_9e-_9f);
  649. }else{
  650. if(_9e+n.outerHeight()>_9f+c.outerHeight()-18){
  651. c.scrollTop(c.scrollTop()+_9e+n.outerHeight()-_9f-c.outerHeight()+18);
  652. }
  653. }
  654. }else{
  655. c.scrollTop(_9e);
  656. }
  657. };
  658. function _a0(_a1,_a2){
  659. var _a3=_5a(_a1,_a2);
  660. if(_a2){
  661. _a3.unshift(_c(_a1,_a2));
  662. }
  663. for(var i=0;i<_a3.length;i++){
  664. _8a(_a1,_a3[i].target);
  665. }
  666. };
  667. function _a4(_a5,_a6){
  668. var _a7=$(_a6.parent);
  669. var _a8=_a6.data;
  670. if(!_a8){
  671. return;
  672. }
  673. _a8=$.isArray(_a8)?_a8:[_a8];
  674. if(!_a8.length){
  675. return;
  676. }
  677. var ul;
  678. if(_a7.length==0){
  679. ul=$(_a5);
  680. }else{
  681. if(_56(_a5,_a7[0])){
  682. var _a9=_a7.find("span.tree-icon");
  683. _a9.removeClass("tree-file").addClass("tree-folder tree-folder-open");
  684. var hit=$("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_a9);
  685. if(hit.prev().length){
  686. hit.prev().remove();
  687. }
  688. }
  689. ul=_a7.next();
  690. if(!ul.length){
  691. ul=$("<ul></ul>").insertAfter(_a7);
  692. }
  693. }
  694. _5b(_a5,ul[0],_a8,true);
  695. _51(_a5,ul.prev());
  696. };
  697. function _aa(_ab,_ac){
  698. var ref=_ac.before||_ac.after;
  699. var _ad=_9a(_ab,ref);
  700. var _ae=_ac.data;
  701. if(!_ae){
  702. return;
  703. }
  704. _ae=$.isArray(_ae)?_ae:[_ae];
  705. if(!_ae.length){
  706. return;
  707. }
  708. _a4(_ab,{parent:(_ad?_ad.target:null),data:_ae});
  709. var _af=_ad?_ad.children:$(_ab).tree("getRoots");
  710. for(var i=0;i<_af.length;i++){
  711. if(_af[i].domId==$(ref).attr("id")){
  712. for(var j=_ae.length-1;j>=0;j--){
  713. _af.splice((_ac.before?i:(i+1)),0,_ae[j]);
  714. }
  715. _af.splice(_af.length-_ae.length,_ae.length);
  716. break;
  717. }
  718. }
  719. var li=$();
  720. for(var i=0;i<_ae.length;i++){
  721. li=li.add($("#"+_ae[i].domId).parent());
  722. }
  723. if(_ac.before){
  724. li.insertBefore($(ref).parent());
  725. }else{
  726. li.insertAfter($(ref).parent());
  727. }
  728. };
  729. function _b0(_b1,_b2){
  730. var _b3=del(_b2);
  731. $(_b2).parent().remove();
  732. if(_b3){
  733. if(!_b3.children||!_b3.children.length){
  734. var _b4=$(_b3.target);
  735. _b4.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
  736. _b4.find(".tree-hit").remove();
  737. $("<span class=\"tree-indent\"></span>").prependTo(_b4);
  738. _b4.next().remove();
  739. }
  740. _64(_b1,_b3);
  741. _51(_b1,_b3.target);
  742. }
  743. _6b(_b1,_b1);
  744. function del(_b5){
  745. var id=$(_b5).attr("id");
  746. var _b6=_9a(_b1,_b5);
  747. var cc=_b6?_b6.children:$.data(_b1,"tree").data;
  748. for(var i=0;i<cc.length;i++){
  749. if(cc[i].domId==id){
  750. cc.splice(i,1);
  751. break;
  752. }
  753. }
  754. return _b6;
  755. };
  756. };
  757. function _64(_b7,_b8){
  758. var _b9=$.data(_b7,"tree").options;
  759. var _ba=$(_b8.target);
  760. var _bb=_c(_b7,_b8.target);
  761. var _bc=_bb.checked;
  762. if(_bb.iconCls){
  763. _ba.find(".tree-icon").removeClass(_bb.iconCls);
  764. }
  765. $.extend(_bb,_b8);
  766. _ba.find(".tree-title").html(_b9.formatter.call(_b7,_bb));
  767. if(_bb.iconCls){
  768. _ba.find(".tree-icon").addClass(_bb.iconCls);
  769. }
  770. if(_bc!=_bb.checked){
  771. _34(_b7,_b8.target,_bb.checked);
  772. }
  773. };
  774. function _bd(_be,_bf){
  775. if(_bf){
  776. var p=_9a(_be,_bf);
  777. while(p){
  778. _bf=p.target;
  779. p=_9a(_be,_bf);
  780. }
  781. return _c(_be,_bf);
  782. }else{
  783. var _c0=_c1(_be);
  784. return _c0.length?_c0[0]:null;
  785. }
  786. };
  787. function _c1(_c2){
  788. var _c3=$.data(_c2,"tree").data;
  789. for(var i=0;i<_c3.length;i++){
  790. _c4(_c3[i]);
  791. }
  792. return _c3;
  793. };
  794. function _5a(_c5,_c6){
  795. var _c7=[];
  796. var n=_c(_c5,_c6);
  797. var _c8=n?(n.children||[]):$.data(_c5,"tree").data;
  798. _68(_c8,function(_c9){
  799. _c7.push(_c4(_c9));
  800. });
  801. return _c7;
  802. };
  803. function _9a(_ca,_cb){
  804. var p=$(_cb).closest("ul").prevAll("div.tree-node:first");
  805. return _c(_ca,p[0]);
  806. };
  807. function _cc(_cd,_ce){
  808. _ce=_ce||"checked";
  809. if(!$.isArray(_ce)){
  810. _ce=[_ce];
  811. }
  812. var _cf=[];
  813. for(var i=0;i<_ce.length;i++){
  814. var s=_ce[i];
  815. if(s=="checked"){
  816. _cf.push("span.tree-checkbox1");
  817. }else{
  818. if(s=="unchecked"){
  819. _cf.push("span.tree-checkbox0");
  820. }else{
  821. if(s=="indeterminate"){
  822. _cf.push("span.tree-checkbox2");
  823. }
  824. }
  825. }
  826. }
  827. var _d0=[];
  828. $(_cd).find(_cf.join(",")).each(function(){
  829. var _d1=$(this).parent();
  830. _d0.push(_c(_cd,_d1[0]));
  831. });
  832. return _d0;
  833. };
  834. function _d2(_d3){
  835. var _d4=$(_d3).find("div.tree-node-selected");
  836. return _d4.length?_c(_d3,_d4[0]):null;
  837. };
  838. function _d5(_d6,_d7){
  839. var _d8=_c(_d6,_d7);
  840. if(_d8&&_d8.children){
  841. _68(_d8.children,function(_d9){
  842. _c4(_d9);
  843. });
  844. }
  845. return _d8;
  846. };
  847. function _c(_da,_db){
  848. return _63(_da,"domId",$(_db).attr("id"));
  849. };
  850. function _dc(_dd,id){
  851. return _63(_dd,"id",id);
  852. };
  853. function _63(_de,_df,_e0){
  854. var _e1=$.data(_de,"tree").data;
  855. var _e2=null;
  856. _68(_e1,function(_e3){
  857. if(_e3[_df]==_e0){
  858. _e2=_c4(_e3);
  859. return false;
  860. }
  861. });
  862. return _e2;
  863. };
  864. function _c4(_e4){
  865. var d=$("#"+_e4.domId);
  866. _e4.target=d[0];
  867. _e4.checked=d.find(".tree-checkbox").hasClass("tree-checkbox1");
  868. return _e4;
  869. };
  870. function _68(_e5,_e6){
  871. var _e7=[];
  872. for(var i=0;i<_e5.length;i++){
  873. _e7.push(_e5[i]);
  874. }
  875. while(_e7.length){
  876. var _e8=_e7.shift();
  877. if(_e6(_e8)==false){
  878. return;
  879. }
  880. if(_e8.children){
  881. for(var i=_e8.children.length-1;i>=0;i--){
  882. _e7.unshift(_e8.children[i]);
  883. }
  884. }
  885. }
  886. };
  887. function _e9(_ea,_eb){
  888. var _ec=$.data(_ea,"tree").options;
  889. var _ed=_c(_ea,_eb);
  890. if(_ec.onBeforeSelect.call(_ea,_ed)==false){
  891. return;
  892. }
  893. $(_ea).find("div.tree-node-selected").removeClass("tree-node-selected");
  894. $(_eb).addClass("tree-node-selected");
  895. _ec.onSelect.call(_ea,_ed);
  896. };
  897. function _56(_ee,_ef){
  898. return $(_ef).children("span.tree-hit").length==0;
  899. };
  900. function _f0(_f1,_f2){
  901. var _f3=$.data(_f1,"tree").options;
  902. var _f4=_c(_f1,_f2);
  903. if(_f3.onBeforeEdit.call(_f1,_f4)==false){
  904. return;
  905. }
  906. $(_f2).css("position","relative");
  907. var nt=$(_f2).find(".tree-title");
  908. var _f5=nt.outerWidth();
  909. nt.empty();
  910. var _f6=$("<input class=\"tree-editor\">").appendTo(nt);
  911. _f6.val(_f4.text).focus();
  912. _f6.width(_f5+20);
  913. _f6.height(document.compatMode=="CSS1Compat"?(18-(_f6.outerHeight()-_f6.height())):18);
  914. _f6.bind("click",function(e){
  915. return false;
  916. }).bind("mousedown",function(e){
  917. e.stopPropagation();
  918. }).bind("mousemove",function(e){
  919. e.stopPropagation();
  920. }).bind("keydown",function(e){
  921. if(e.keyCode==13){
  922. _f7(_f1,_f2);
  923. return false;
  924. }else{
  925. if(e.keyCode==27){
  926. _fd(_f1,_f2);
  927. return false;
  928. }
  929. }
  930. }).bind("blur",function(e){
  931. e.stopPropagation();
  932. _f7(_f1,_f2);
  933. });
  934. };
  935. function _f7(_f8,_f9){
  936. var _fa=$.data(_f8,"tree").options;
  937. $(_f9).css("position","");
  938. var _fb=$(_f9).find("input.tree-editor");
  939. var val=_fb.val();
  940. _fb.remove();
  941. var _fc=_c(_f8,_f9);
  942. _fc.text=val;
  943. _64(_f8,_fc);
  944. _fa.onAfterEdit.call(_f8,_fc);
  945. };
  946. function _fd(_fe,_ff){
  947. var opts=$.data(_fe,"tree").options;
  948. $(_ff).css("position","");
  949. $(_ff).find("input.tree-editor").remove();
  950. var node=_c(_fe,_ff);
  951. _64(_fe,node);
  952. opts.onCancelEdit.call(_fe,node);
  953. };
  954. function _100(_101,q){
  955. var _102=$.data(_101,"tree");
  956. var opts=_102.options;
  957. var ids={};
  958. _68(_102.data,function(node){
  959. if(opts.filter.call(_101,q,node)){
  960. $("#"+node.domId).removeClass("tree-node-hidden");
  961. ids[node.domId]=1;
  962. node.hidden=false;
  963. }else{
  964. $("#"+node.domId).addClass("tree-node-hidden");
  965. node.hidden=true;
  966. }
  967. });
  968. for(var id in ids){
  969. _103(id);
  970. }
  971. function _103(_104){
  972. var p=$(_101).tree("getParent",$("#"+_104)[0]);
  973. while(p){
  974. $(p.target).removeClass("tree-node-hidden");
  975. p.hidden=false;
  976. p=$(_101).tree("getParent",p.target);
  977. }
  978. };
  979. };
  980. $.fn.tree=function(_105,_106){
  981. if(typeof _105=="string"){
  982. return $.fn.tree.methods[_105](this,_106);
  983. }
  984. var _105=_105||{};
  985. return this.each(function(){
  986. var _107=$.data(this,"tree");
  987. var opts;
  988. if(_107){
  989. opts=$.extend(_107.options,_105);
  990. _107.options=opts;
  991. }else{
  992. opts=$.extend({},$.fn.tree.defaults,$.fn.tree.parseOptions(this),_105);
  993. $.data(this,"tree",{options:opts,tree:_1(this),data:[]});
  994. var data=$.fn.tree.parseData(this);
  995. if(data.length){
  996. _5b(this,this,data);
  997. }
  998. }
  999. _4(this);
  1000. if(opts.data){
  1001. _5b(this,this,$.extend(true,[],opts.data));
  1002. }
  1003. _79(this,this);
  1004. });
  1005. };
  1006. $.fn.tree.methods={options:function(jq){
  1007. return $.data(jq[0],"tree").options;
  1008. },loadData:function(jq,data){
  1009. return jq.each(function(){
  1010. _5b(this,this,data);
  1011. });
  1012. },getNode:function(jq,_108){
  1013. return _c(jq[0],_108);
  1014. },getData:function(jq,_109){
  1015. return _d5(jq[0],_109);
  1016. },reload:function(jq,_10a){
  1017. return jq.each(function(){
  1018. if(_10a){
  1019. var node=$(_10a);
  1020. var hit=node.children("span.tree-hit");
  1021. hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  1022. node.next().remove();
  1023. _83(this,_10a);
  1024. }else{
  1025. $(this).empty();
  1026. _79(this,this);
  1027. }
  1028. });
  1029. },getRoot:function(jq,_10b){
  1030. return _bd(jq[0],_10b);
  1031. },getRoots:function(jq){
  1032. return _c1(jq[0]);
  1033. },getParent:function(jq,_10c){
  1034. return _9a(jq[0],_10c);
  1035. },getChildren:function(jq,_10d){
  1036. return _5a(jq[0],_10d);
  1037. },getChecked:function(jq,_10e){
  1038. return _cc(jq[0],_10e);
  1039. },getSelected:function(jq){
  1040. return _d2(jq[0]);
  1041. },isLeaf:function(jq,_10f){
  1042. return _56(jq[0],_10f);
  1043. },find:function(jq,id){
  1044. return _dc(jq[0],id);
  1045. },select:function(jq,_110){
  1046. return jq.each(function(){
  1047. _e9(this,_110);
  1048. });
  1049. },check:function(jq,_111){
  1050. return jq.each(function(){
  1051. _34(this,_111,true);
  1052. });
  1053. },uncheck:function(jq,_112){
  1054. return jq.each(function(){
  1055. _34(this,_112,false);
  1056. });
  1057. },collapse:function(jq,_113){
  1058. return jq.each(function(){
  1059. _8a(this,_113);
  1060. });
  1061. },expand:function(jq,_114){
  1062. return jq.each(function(){
  1063. _83(this,_114);
  1064. });
  1065. },collapseAll:function(jq,_115){
  1066. return jq.each(function(){
  1067. _a0(this,_115);
  1068. });
  1069. },expandAll:function(jq,_116){
  1070. return jq.each(function(){
  1071. _92(this,_116);
  1072. });
  1073. },expandTo:function(jq,_117){
  1074. return jq.each(function(){
  1075. _96(this,_117);
  1076. });
  1077. },scrollTo:function(jq,_118){
  1078. return jq.each(function(){
  1079. _9b(this,_118);
  1080. });
  1081. },toggle:function(jq,_119){
  1082. return jq.each(function(){
  1083. _8f(this,_119);
  1084. });
  1085. },append:function(jq,_11a){
  1086. return jq.each(function(){
  1087. _a4(this,_11a);
  1088. });
  1089. },insert:function(jq,_11b){
  1090. return jq.each(function(){
  1091. _aa(this,_11b);
  1092. });
  1093. },remove:function(jq,_11c){
  1094. return jq.each(function(){
  1095. _b0(this,_11c);
  1096. });
  1097. },pop:function(jq,_11d){
  1098. var node=jq.tree("getData",_11d);
  1099. jq.tree("remove",_11d);
  1100. return node;
  1101. },update:function(jq,_11e){
  1102. return jq.each(function(){
  1103. _64(this,_11e);
  1104. });
  1105. },enableDnd:function(jq){
  1106. return jq.each(function(){
  1107. _11(this);
  1108. });
  1109. },disableDnd:function(jq){
  1110. return jq.each(function(){
  1111. _d(this);
  1112. });
  1113. },beginEdit:function(jq,_11f){
  1114. return jq.each(function(){
  1115. _f0(this,_11f);
  1116. });
  1117. },endEdit:function(jq,_120){
  1118. return jq.each(function(){
  1119. _f7(this,_120);
  1120. });
  1121. },cancelEdit:function(jq,_121){
  1122. return jq.each(function(){
  1123. _fd(this,_121);
  1124. });
  1125. },doFilter:function(jq,q){
  1126. return jq.each(function(){
  1127. _100(this,q);
  1128. });
  1129. }};
  1130. $.fn.tree.parseOptions=function(_122){
  1131. var t=$(_122);
  1132. return $.extend({},$.parser.parseOptions(_122,["url","method",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean",lines:"boolean",dnd:"boolean"}]));
  1133. };
  1134. $.fn.tree.parseData=function(_123){
  1135. var data=[];
  1136. _124(data,$(_123));
  1137. return data;
  1138. function _124(aa,tree){
  1139. tree.children("li").each(function(){
  1140. var node=$(this);
  1141. var item=$.extend({},$.parser.parseOptions(this,["id","iconCls","state"]),{checked:(node.attr("checked")?true:undefined)});
  1142. item.text=node.children("span").html();
  1143. if(!item.text){
  1144. item.text=node.html();
  1145. }
  1146. var _125=node.children("ul");
  1147. if(_125.length){
  1148. item.children=[];
  1149. _124(item.children,_125);
  1150. }
  1151. aa.push(item);
  1152. });
  1153. };
  1154. };
  1155. var _126=1;
  1156. var _127={render:function(_128,ul,data){
  1157. var opts=$.data(_128,"tree").options;
  1158. var _129=$(ul).prev("div.tree-node").find("span.tree-indent, span.tree-hit").length;
  1159. var cc=_12a(_129,data);
  1160. $(ul).append(cc.join(""));
  1161. function _12a(_12b,_12c){
  1162. var cc=[];
  1163. for(var i=0;i<_12c.length;i++){
  1164. var item=_12c[i];
  1165. if(item.state!="open"&&item.state!="closed"){
  1166. item.state="open";
  1167. }
  1168. item.domId="_easyui_tree_"+_126++;
  1169. cc.push("<li>");
  1170. cc.push("<div id=\""+item.domId+"\" class=\"tree-node\">");
  1171. for(var j=0;j<_12b;j++){
  1172. cc.push("<span class=\"tree-indent\"></span>");
  1173. }
  1174. var _12d=false;
  1175. if(item.state=="closed"){
  1176. cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
  1177. cc.push("<span class=\"tree-icon tree-folder "+(item.iconCls?item.iconCls:"")+"\"></span>");
  1178. }else{
  1179. if(item.children&&item.children.length){
  1180. cc.push("<span class=\"tree-hit tree-expanded\"></span>");
  1181. cc.push("<span class=\"tree-icon tree-folder tree-folder-open "+(item.iconCls?item.iconCls:"")+"\"></span>");
  1182. }else{
  1183. cc.push("<span class=\"tree-indent\"></span>");
  1184. cc.push("<span class=\"tree-icon tree-file "+(item.iconCls?item.iconCls:"")+"\"></span>");
  1185. _12d=true;
  1186. }
  1187. }
  1188. if(opts.checkbox){
  1189. if((!opts.onlyLeafCheck)||_12d){
  1190. cc.push("<span class=\"tree-checkbox tree-checkbox0\"></span>");
  1191. }
  1192. }
  1193. cc.push("<span class=\"tree-title\">"+opts.formatter.call(_128,item)+"</span>");
  1194. cc.push("</div>");
  1195. if(item.children&&item.children.length){
  1196. var tmp=_12a(_12b+1,item.children);
  1197. cc.push("<ul style=\"display:"+(item.state=="closed"?"none":"block")+"\">");
  1198. cc=cc.concat(tmp);
  1199. cc.push("</ul>");
  1200. }
  1201. cc.push("</li>");
  1202. }
  1203. return cc;
  1204. };
  1205. }};
  1206. $.fn.tree.defaults={url:null,method:"post",animate:false,checkbox:false,cascadeCheck:true,onlyLeafCheck:false,lines:false,dnd:false,data:null,queryParams:{},formatter:function(node){
  1207. return node.text;
  1208. },filter:function(q,node){
  1209. return node.text.toLowerCase().indexOf(q.toLowerCase())>=0;
  1210. },loader:function(_12e,_12f,_130){
  1211. var opts=$(this).tree("options");
  1212. if(!opts.url){
  1213. return false;
  1214. }
  1215. $.ajax({type:opts.method,url:opts.url,data:_12e,dataType:"json",success:function(data){
  1216. _12f(data);
  1217. },error:function(){
  1218. _130.apply(this,arguments);
  1219. }});
  1220. },loadFilter:function(data,_131){
  1221. return data;
  1222. },view:_127,onBeforeLoad:function(node,_132){
  1223. },onLoadSuccess:function(node,data){
  1224. },onLoadError:function(){
  1225. },onClick:function(node){
  1226. },onDblClick:function(node){
  1227. },onBeforeExpand:function(node){
  1228. },onExpand:function(node){
  1229. },onBeforeCollapse:function(node){
  1230. },onCollapse:function(node){
  1231. },onBeforeCheck:function(node,_133){
  1232. },onCheck:function(node,_134){
  1233. },onBeforeSelect:function(node){
  1234. },onSelect:function(node){
  1235. },onContextMenu:function(e,node){
  1236. },onBeforeDrag:function(node){
  1237. },onStartDrag:function(node){
  1238. },onStopDrag:function(node){
  1239. },onDragEnter:function(_135,_136){
  1240. },onDragOver:function(_137,_138){
  1241. },onDragLeave:function(_139,_13a){
  1242. },onBeforeDrop:function(_13b,_13c,_13d){
  1243. },onDrop:function(_13e,_13f,_140){
  1244. },onBeforeEdit:function(node){
  1245. },onAfterEdit:function(node){
  1246. },onCancelEdit:function(node){
  1247. }};
  1248. })(jQuery);