WidgetInCommon.min.js 20 KB

1
  1. MWF.xDesktop.requireApp("Template","MSelector",null,false);MWF.xApplication.MinderEditor.ExpandLevel=new Class({Extends:MSelector,options:{style:"arrow",width:"150px",height:"30px",textField:"text",valueField:"value",defaultOptionLp:"展开节点",isSetSelectedValue:false,isChangeOptionStyle:false,emptyOptionEnable:false,event:"mouseenter",containerIsTarget:true,tooltipsOptions:{axis:"x",hasArrow:true}},_selectItem:function(e,t){},_loadData:function(e){var t=[{value:"1",text:"展开到一级节点"},{value:"2",text:"展开到二级节点"},{value:"3",text:"展开到三级节点"},{value:"4",text:"展开到四级节点"},{value:"5",text:"展开到五级节点"},{value:"6",text:"展开到六级节点"},{value:"999",text:"展开全部"}];if(e)e(t)},_postCreateItem:function(e,t){e.setStyles({"font-size":"14px","min-height":"26px","line-height":"26px"})}});MWF.xApplication.MinderEditor.SelectAll=new Class({Extends:MSelector,options:{style:"arrow",width:"150px",height:"30px",textField:"text",valueField:"value",defaultOptionLp:"选择节点",isSetSelectedValue:false,isChangeOptionStyle:false,emptyOptionEnable:false,event:"mouseenter",containerIsTarget:true,tooltipsOptions:{axis:"x",hasArrow:true}},_selectItem:function(e,t){},_loadData:function(e){var t=[{value:"all",text:"全选"},{value:"revert",text:"反选"},{value:"siblings",text:"选择兄弟节点"},{value:"level",text:"选择同级节点"},{value:"path_",text:"选择路径"},{value:"tree",text:"选择子树"}];if(e)e(t)},_postCreateItem:function(e,t){e.setStyles({"font-size":"14px","min-height":"26px","line-height":"26px"})},_selectItem:function(e,t){this[t.value]()},all:function(){var t=[];this.app.minder.getRoot().traverse(function(e){t.push(e)});this.app.minder.select(t,true);this.app.minder.fire("receiverfocus")},revert:function(){var t=this.app.minder.getSelectedNodes();var i=[];this.app.minder.getRoot().traverse(function(e){if(t.indexOf(e)==-1){i.push(e)}});this.app.minder.select(i,true);this.app.minder.fire("receiverfocus")},siblings:function(){var e=this.app.minder.getSelectedNodes();var t=[];e.forEach(function(e){if(!e.parent)return;e.parent.children.forEach(function(e){if(t.indexOf(e)==-1)t.push(e)})});this.app.minder.select(t,true);this.app.minder.fire("receiverfocus")},level:function(){var t=this.app.minder.getSelectedNodes().map(function(e){return e.getLevel()});var i=[];this.app.minder.getRoot().traverse(function(e){if(t.indexOf(e.getLevel())!=-1){i.push(e)}});this.app.minder.select(i,true);this.app.minder.fire("receiverfocus")},path_:function(){var e=this.app.minder.getSelectedNodes();var t=[];e.forEach(function(e){while(e&&t.indexOf(e)==-1){t.push(e);e=e.parent}});this.app.minder.select(t,true);this.app.minder.fire("receiverfocus")},tree:function(){var e=this.app.minder.getSelectedNodes();var t=[];e.forEach(function(e){e.traverse(function(e){if(t.indexOf(e)==-1)t.push(e)})});this.app.minder.select(t,true);this.app.minder.fire("receiverfocus")}});MWF.xApplication.MinderEditor.Template=new Class({Extends:MSelector,options:{style:"minderTemplate",width:"195px",height:"30px",defaultOptionLp:"",isSetSelectedValue:false,isChangeOptionStyle:true,emptyOptionEnable:false,event:"mouseenter"},_selectItem:function(e,t){},_loadData:function(e){var t=[{command:"default",picture:"default.png",title:"思维导图"},{command:"structure",picture:"structure.png",title:"目录组织图"},{command:"filetree",picture:"filetree.png",title:"组织结构图"},{command:"right",picture:"right.png",title:"逻辑结构图"},{command:"fish-bone",picture:"fish-bone.png",title:"鱼骨图"},{command:"tianpan",picture:"tianpan.png",title:"天盘"}];var i=this.app.options.template;if(i&&i.length>0){for(var s=0;s<t.length;s++){if(!i.contains(t[s].command)){t[s]=null}}}t=t.clean();if(e)e(t)},_postCreateItem:function(e,t){},loadContent:function(e){if(!this.contentTooltip){var t=parseInt(this.options.width)+"px";this.css.tooltipNode.width=t;this.css.tooltipNode["max-width"]=t;this.options.tooltipsOptions.axis="x";var i=Object.merge({nodeStyles:this.css.tooltipNode,onPostInitialize:function(){if(this.options.trigger=="immediately"){this.contentTooltip.load()}}.bind(this),onHide:function(){this.status="hidden"}.bind(this)},this.options.tooltipsOptions);this.contentTooltip=new MWF.xApplication.MinderEditor.Template.Tootips(this.dropdownContainer||this.app.content,this.node,this.app,e,i);this.contentTooltip.selector=this}}});MWF.xApplication.MinderEditor.Template.Tootips=new Class({Extends:MSelector.Tootips,options:{axis:"x",position:{x:"center",y:"auto"},event:"mouseenter",hiddenDelay:200,displayDelay:0,hasArrow:true},_customNode:function(e,t){this.createItemList(this.data,t)},createItemList:function(e,t){e=e||[];var i=this.selector;this.css=i.css;i.listContentNode=new Element("div.listContentNode",{styles:this.css.listContentNode}).inject(t);i.listNode=new Element("div.listNode",{styles:this.css.listNode}).inject(i.listContentNode);i.setScrollBar(i.listNode);e.each(function(e){this.createItem(e)}.bind(this))},createItem:function(e){var t=this.selector;var i=new Element("div.listItemNode",{styles:this.css.listItemNode,title:e.title}).inject(t.listNode);i.setStyles({background:"url("+t.path+t.options.style+"/icon/"+e.picture+") no-repeat center center"});if(e)i.store("data",e);i.addEvents({click:function(e){var t=this.obj;var i=this.itemNode.retrieve("data");t.selector.setCurrentItem(this.itemNode);t.selector._selectItem(this.itemNode,i);t.selector.fireEvent("selectItem",[this.itemNode,i]);t.hide();e.stopPropagation()}.bind({obj:this,itemNode:i}),mouseover:function(){if(this.obj.selector.currentItemNode!=this.itemNode||!this.obj.selector.options.isChangeOptionStyle){this.itemNode.setStyles(this.obj.selector.css.listItemNode_over)}}.bind({obj:this,itemNode:i}),mouseout:function(){if(this.obj.selector.currentItemNode!=this.itemNode||!this.obj.selector.options.isChangeOptionStyle){this.itemNode.setStyles(this.obj.selector.css.listItemNode)}}.bind({obj:this,itemNode:i})});t.itemNodeList.push(i);t.itemNodeObject[e[t.valueField]]=i;var s=false;if(t.currentItemData){s=e[t.valueField]==t.currentItemData[t.valueField]}else if(t.value){s=e[t.valueField]==t.value}else if(t.text){s=e[t.textField]==t.text}if(s)t.setCurrentItem(i);t._postCreateItem(i,e)}});MWF.xApplication.MinderEditor.Theme=new Class({Extends:MSelector,options:{style:"minderTheme",width:"195px",height:"30px",defaultOptionLp:"",isSetSelectedValue:false,isChangeOptionStyle:false,emptyOptionEnable:false,event:"mouseenter"},_selectItem:function(e,t){},_loadData:function(e){var t=[{command:"classic",text:"经典"},{command:"classic-compact",text:"经典紧凑"},{command:"fresh-blue",text:"蓝色"},{command:"fresh-blue-compat",text:"蓝色紧凑"},{command:"fresh-green",text:"绿色"},{command:"fresh-green-compat",text:"绿色紧凑"},{command:"fresh-pink",text:"粉色"},{command:"fresh-pink-compat",text:"粉色紧凑"},{command:"fresh-purple",text:"紫色"},{command:"fresh-purple-compat",text:"紫色紧凑"},{command:"fresh-red",text:"红色"},{command:"fresh-red-compat",text:"红色紧凑"},{command:"fresh-soil",text:"黄色"},{command:"fresh-soil-compat",text:"黄色紧凑"},{command:"snow",text:"冷光"},{command:"snow-compact",text:"冷光紧凑"},{command:"tianpan",text:"天盘"},{command:"tianpan-compact",text:"天盘紧凑"},{command:"fish",text:"鱼骨图"},{command:"wire",text:"线条"}];var i=this.app.options.theme;if(i&&i.length>0){for(var s=0;s<t.length;s++){if(!i.contains(t[s].command)){t[s]=null}}}t=t.clean();if(e)e(t)},_postCreateItem:function(e,t){},loadContent:function(e){this.options.tooltipsOptions.axis="x";if(!this.contentTooltip){var t=parseInt(this.options.width)+"px";this.css.tooltipNode.width=t;this.css.tooltipNode["max-width"]=t;var i=Object.merge({nodeStyles:this.css.tooltipNode,onPostInitialize:function(){if(this.options.trigger=="immediately"){this.contentTooltip.load()}}.bind(this),onHide:function(){this.status="hidden"}.bind(this)},this.options.tooltipsOptions);this.contentTooltip=new MWF.xApplication.MinderEditor.Theme.Tootips(this.dropdownContainer||this.app.content,this.node,this.app,e,i);this.contentTooltip.selector=this}}});MWF.xApplication.MinderEditor.Theme.Tootips=new Class({Extends:MSelector.Tootips,options:{axis:"x",position:{x:"center",y:"bottom"},event:"mouseenter",hiddenDelay:200,displayDelay:0,hasArrow:true},_customNode:function(e,t){this.createItemList(this.data,t)},createItemList:function(e,t){e=e||[];var i=this.selector;this.css=i.css;i.listContentNode=new Element("div.listContentNode",{styles:this.css.listContentNode}).inject(t);i.listNode=new Element("div.listNode",{styles:this.css.listNode}).inject(i.listContentNode);i.setScrollBar(i.listNode);e.each(function(e){this.createItem(e)}.bind(this))},createItem:function(e){var t=this.selector;var i=new Element("div.listItemNode",{styles:this.css.listItemNode,text:e.text}).inject(t.listNode);if(e)i.store("data",e);i.addEvents({click:function(e){var t=this.obj;var i=this.itemNode.retrieve("data");t.selector.setCurrentItem(this.itemNode);t.selector._selectItem(this.itemNode,i);t.selector.fireEvent("selectItem",[this.itemNode,i]);t.hide();e.stopPropagation()}.bind({obj:this,itemNode:i}),mouseover:function(){if(this.obj.selector.currentItemNode!=this.itemNode||!this.obj.selector.options.isChangeOptionStyle){this.itemNode.setStyles(this.obj.selector.css.listItemNode_over)}}.bind({obj:this,itemNode:i}),mouseout:function(){if(this.obj.selector.currentItemNode!=this.itemNode||!this.obj.selector.options.isChangeOptionStyle){this.itemNode.setStyles(this.obj.selector.css.listItemNode)}}.bind({obj:this,itemNode:i})});t.itemNodeList.push(i);t.itemNodeObject[e[t.valueField]]=i;var s=false;if(t.currentItemData){s=e[t.valueField]==t.currentItemData[t.valueField]}else if(t.value){s=e[t.valueField]==t.value}else if(t.text){s=e[t.textField]==t.text}if(s)t.setCurrentItem(i);t.fireEvent("postCreateItem",[i,e]);t._postCreateItem(i,e)}});MWF.xApplication.MinderEditor.NotePrviewer=new Class({Implements:[Options,Events],Extends:MTooltips,options:{style:"default",axis:"y",position:{x:"auto",y:"auto"},overflow:"scroll",nodeStyles:{"font-size":"12px",position:"absolute","max-width":"500px","min-width":"50px","z-index":"11","background-color":"#fff",padding:"10px","border-radius":"5px","word-break":"break-all","box-shadow":"0 0 8px 0 #999999","-webkit-user-select":"text","-moz-user-select":"text"}},initialize:function(e,t){if(t){this.setOptions(t)}this.editor=e;this.app=e;this.lp=e.lp;this.container=e.content;this.minder=e.minder;this.minder.on("shownoterequest",function(e){this.previewTimer=setTimeout(function(){this.load(e.node,e.keyword)}.bind(this),300)}.bind(this));this.minder.on("hidenoterequest",function(e){if(this.previewTimer)clearTimeout(this.previewTimer);if(e&&e.forceflag)this.hide()}.bind(this));this.hideFun=this.hide.bind(this);this.container.addEvents({mousedown:this.hideFun,mousewheel:this.hideFun,DOMMouseScroll:this.hideFun});this.editor.addEvent("resize",this.hideFun);this.fireEvent("postInitialize",[this])},load:function(e,t){this.fireEvent("queryLoad",[this]);if(this.isEnable()){if(this.node){this.show(e,t)}else{this.create(e,t)}}this.fireEvent("postLoad",[this])},show:function(e,t){this.status="display";this.node.setStyle("display","");this.setContent(e,t);this.fireEvent("show",[this])},create:function(e,t){this.status="display";this.fireEvent("queryCreate",[this]);this.node=new Element("div.tooltipNode",{styles:this.options.nodeStyles}).inject(this.container);this.node.addEvents({mousedown:function(e){e.stopPropagation()},mousewheel:function(e){e.stopPropagation()},DOMMouseScroll:function(e){e.stopPropagation()}});this.contentNode=new Element("div",{styles:{width:"100%",height:"100%"}}).inject(this.node);if(this.options.hasArrow){this.arrowNode=new Element("div.arrowNode",{styles:{width:this.options.axis=="x"?"9px":"17px",height:this.options.axis=="x"?"17px":"9px",position:"absolute",background:"no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAlCAYAAACgc9J8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAP9JREFUeNq01oENhCAMBdCWuIgTuP8WOoGj9GhSDaeUfjiuCSEm+iKFVllESGNdVzrPk55xHIfewHnItm1MrVDMG/u+i0aeyWZp3R9CJRaBIWRB5YUHItAL80AEqmI1EIFcrAQ1rwjUxEoQgULsAue+2ayc/W83p5+z6RXggOO1WQGhrsFXP/Oip58tAaQTZ4QMbEbyEB2GCKEBdtpmru4NsC4aHg8PLJ/3lim2xDv02jYDz1kNQsGEQgiYeqAQBPuZQF1jFKqBYTn1RLK1D4+v3E3NGfgNkJlfdKi0XrUZgc1OWyt0Dwz/z37tGhA20s+WR4t+1iBbzTJyaD8CDAB7WgNSzh/AnwAAAABJRU5ErkJggg==)"}}).inject(this.node)}this.setContent(e,t);this.fireEvent("postCreate",[this])},setContent:function(n,o){this.editor.loadCodeMirror(function(){var e=n.getRenderBox("screen");var t=this.editor.Content_Offset_Top;e.bottom+=t;e.cy+=t;e.top+=t;e.y+=t;this.targetCoordinates=e;var i=n.getData("note");var s=marked(i);if(o){s=s.replace(new RegExp("("+o+")","ig"),'<span class="highlight">$1</span>')}this.contentNode.set("html",s);this.setCoondinates()}.bind(this))}});MWF.xApplication.MinderEditor.Help=new Class({Implements:[Options,Events],Extends:MTooltips,options:{style:"default",axis:"y",position:{x:"auto",y:"auto"},overflow:"scroll",hasCloseAction:true,event:"click"},_customNode:function(e,t){var i=new Element("table").inject(t);var s=this.commands.commands;for(var n in s){var o=s[n];if(o.key){var r=new Element("tr").inject(i);new Element("td",{text:o.locale||o.title}).inject(r);new Element("td",{text:o.key}).inject(r)}}}});MWF.xApplication.MinderEditor.Preview=new Class({options:{show:"true"},Implements:[Options,Events],initialize:function(e,t,i,s){this.container=e;this.app=i;this.lp=MWF.xApplication.MinderEditor.LP;this.css=s;this.minder=t},load:function(e){this.previewer=new Element("div",{styles:this.css.previewer}).inject(this.container);this.initPreViewer();if(this.options.show){this.toggleOpen(true)}},initPreViewer:function(){var e=this.paper=new kity.Paper(this.previewer);this.nodeThumb=e.put(new kity.Path);this.connectionThumb=e.put(new kity.Path);this.visibleRect=e.put(new kity.Rect(100,100).stroke("red","1%"));this.contentView=new kity.Box;this.visibleView=new kity.Box;this.pathHandler=this.getPathHandler(this.minder.getTheme());this.navigate()},getPathHandler:function(e){switch(e){case"tianpan":case"tianpan-compact":return function(e,t,i,s,n){var o=s>>1;e.push("M",t,i+o,"a",o,o,0,1,1,0,.01,"z")};default:{return function(e,t,i,s,n){e.push("M",t,i,"h",s,"v",n,"h",-s,"z")}}}},toggleOpen:function(e){if(e){this.previewer.setStyle("display","block");this.bindPreviewerEvent();this.updateContentView();this.updateVisibleView()}else{this.previewer.setStyle("display","none");this.unbindPreviewerEvent()}},bindPreviewerEvent:function(){this.updateContentViewFun=this.updateContentViewFun||this.updateContentView.bind(this);this.updateVisibleViewFun=this.updateVisibleViewFun||this.updateVisibleView.bind(this);this.minder.on("layout layoutallfinish",this.updateContentViewFun);this.minder.on("viewchange",this.updateVisibleViewFun)},unbindPreviewerEvent:function(){this.minder.off("layout layoutallfinish",this.updateContentViewFun);this.minder.off("viewchange",this.updateVisibleViewFun)},moveView:function(e,t){var i=this.visibleView;e.x=-e.x;e.y=-e.y;var s=this.minder.getPaper().getViewPortMatrix();i=s.transformBox(i);var n=e.offset(i.width/2,i.height/2);this.minder.getViewDragger().moveTo(n,t)},navigate:function(){var t=this;this.dragging=false;this.paper.on("mousedown",function(e){t.dragging=true;t.moveView(e.getPosition("top"),200);t.previewer.setStyles(t.css.previewerGrab)});this.paper.on("mousemove",function(e){if(t.dragging){t.moveView(e.getPosition("top"))}});this.paper.on("mouseup",function(){t.dragging=false;if(t.previewer)t.previewer.setStyles(t.css.previewerNoGrab)});this.app.contentNode.addEvent("mouseup",function(){t.dragging=false;if(t.previewer)t.previewer.setStyles(t.css.previewerNoGrab)})},updateContentView:function(){var e=this.minder.getRenderContainer().getBoundaryBox();this.contentView=e;var t=30;this.paper.setViewBox(e.x-t-.5,e.y-t-.5,e.width+t*2+1,e.height+t*2+1);var i=[];var s=[];this.minder.getRoot().traverse(function(e){var t=e.getLayoutBox();this.pathHandler(i,t.x,t.y,t.width,t.height);if(e.getConnection()&&e.parent&&e.parent.isExpanded()){s.push(e.getConnection().getPathData())}}.bind(this));this.paper.setStyle("background",this.minder.getStyle("background"));if(i.length){this.nodeThumb.fill(this.minder.getStyle("root-background")).setPathData(i)}else{this.nodeThumb.setPathData(null)}if(s.length){this.connectionThumb.stroke(this.minder.getStyle("connect-color"),"0.5%").setPathData(s)}else{this.connectionThumb.setPathData(null)}this.updateVisibleView()},updateVisibleView:function(){this.visibleView=this.minder.getViewDragger().getView();this.visibleRect.setBox(this.visibleView.intersect(this.contentView))}});MWF.xApplication.MinderEditor.SearchBar=new Class({Implements:[Options,Events],options:{},initialize:function(e,t,i,s,n){this.setOptions(n);this.container=e;this.app=i;this.lp=MWF.xApplication.MinderEditor.LP;this.css=s;this.minder=t},enterSearch:function(){if(!this.nodeSequence){this.load()}else{this.show();this.searchInput.focus()}},load:function(e){this.createSearchBar();this.nodeSequence=[];this.searchSequence=[]},show:function(){this.container.setStyle("display","block");this.node.setStyle("display","block");this.fireEvent("show")},hide:function(){this.container.setStyle("display","none");this.node.setStyle("display","none");this.fireEvent("hide")},createSearchBar:function(){this.node=new Element("div",{styles:this.css.searchBar}).inject(this.container);this.searchInput=new Element("input",{type:"text",styles:this.css.searchInput,value:this.lp.searchText}).inject(this.node);this.searchInput.addEvents({focus:function(e){if(this.searchInput.get("value")==this.lp.searchText){this.searchInput.set("value","")}this.makeNodeSequence()}.bind(this),blur:function(e){if(this.searchInput.get("value").trim()==""){this.searchInput.set("value",this.lp.searchText)}}.bind(this),keyup:function(){this.doSearch(this.searchInput.get("value"),"next")}.bind(this)});this.resultInforNode=new Element("div",{styles:this.css.resultInforNode,text:"0/0"}).inject(this.node);this.prevButton=new Element("div",{styles:this.css.prevButton,title:this.lp.prev}).inject(this.node);this.prevButton.addEvent("click",function(){this.goPrev()}.bind(this));this.nextButton=new Element("div",{styles:this.css.nextButton,title:this.lp.next}).inject(this.node);this.nextButton.addEvent("click",function(){this.goNext()}.bind(this));this.closeButton=new Element("div",{styles:this.css.closeButton,title:this.lp.close}).inject(this.node);this.closeButton.addEvent("click",function(){this.close()}.bind(this))},goNext:function(){this.doSearch(this.searchInput.get("value"),"next")},goPrev:function(){this.doSearch(this.searchInput.get("value"),"prev")},close:function(){this.hide()},makeNodeSequence:function(){this.nodeSequence=[];this.minder.getRoot().traverse(function(e){this.nodeSequence.push(e)}.bind(this))},makeSearchSequence:function(e){this.searchSequence=[];for(var t=0;t<this.nodeSequence.length;t++){var i=this.nodeSequence[t];var s=(i.getText()||"").toLowerCase();if(s.indexOf(e)!=-1){this.searchSequence.push({node:i})}var n=i.getData("note")||"";if(n&&n.toLowerCase().indexOf(e)!=-1){this.searchSequence.push({node:i,keyword:e})}}},doSearch:function(e,t){this.minder.fire("hidenoterequest",{forceflag:true});if(!e||!/\S/.exec(e)){this.searchInput.focus();this.resultInforNode.set("text",0+"/"+0);return}this.resultNum=0;e=e.toLowerCase();var i=this.lastKeyword!=e;this.lastKeyword=e;if(i){this.makeSearchSequence(e)}else if(!this.curIndex){this.makeSearchSequence(e)}this.resultNum=this.searchSequence.length;if(this.searchSequence.length){var s=i?0:(t==="next"?this.lastIndex+1:this.lastIndex-1)||0;s=(this.searchSequence.length+s)%this.searchSequence.length;if(s==0&&!i){this.makeSearchSequence(e)}this.setSearchResult(this.searchSequence[s].node,this.searchSequence[s].keyword);this.lastIndex=s;this.curIndex=s+1;this.resultInforNode.set("text",this.curIndex+"/"+this.searchSequence.length)}else{this.resultInforNode.set("text",0+"/"+0)}},setSearchResult:function(e,t){setTimeout(function(){if(t){this.minder.fire("shownoterequest",{node:e,keyword:t})}if(!e.isExpanded()){this.minder.select(e,true);this.minder.execCommand("expand",true)}else{this.minder.select(e,true);this.minder.execCommand("camera",e,50)}}.bind(this),60)}});