From c0eac15c0b35039ea2a895021a4d4eb2aef7c861 Mon Sep 17 00:00:00 2001 From: "mrs_12345@163.com" Date: Thu, 30 Jun 2022 14:29:20 +0800 Subject: [PATCH] =?UTF-8?q?PAL=20=E8=AE=BE=E8=AE=A1=E5=99=A8=E7=94=BB?= =?UTF-8?q?=E5=B8=83=E5=A4=A7=E5=B0=8F=E8=87=AA=E9=80=82=E5=BA=94bug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extend/js/designer.extend.link.js | 6 ++-- .../scripts/diagraming/designer.core.debug.js | 6 ++-- .../scripts/diagraming/designer.core.js | 31 +------------------ 3 files changed, 9 insertions(+), 34 deletions(-) diff --git a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/extend/js/designer.extend.link.js b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/extend/js/designer.extend.link.js index b21dac95..b806a46a 100755 --- a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/extend/js/designer.extend.link.js +++ b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/extend/js/designer.extend.link.js @@ -2368,13 +2368,15 @@ Designer.events.addEventListener("created", function(shape) { let pageSize = Model.define.page if (shapePosition.x + shapePosition.w > pageSize.width - pageSize.padding) { Designer.setPageStyle({ - width: shapePosition.x + shapePosition.w + pageSize.padding + 10, + width: shapePosition.x + shapePosition.w + pageSize.padding + 30, }); + $("#page_size_w").spinner('value',shapePosition.x + shapePosition.w + pageSize.padding + 30); } if (shapePosition.y + shapePosition.h > pageSize.height - pageSize.padding) { Designer.setPageStyle({ - height: shapePosition.y + shapePosition.h + pageSize.padding + 10, + height: shapePosition.y + shapePosition.h + pageSize.padding + 30, }); + $("#page_size_h").spinner('value',shapePosition.x + shapePosition.w + pageSize.padding + 30) } if (Designer.status == "demo" && !demoCreatedTiped) { diff --git a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.debug.js b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.debug.js index 8309f760..488975e8 100755 --- a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.debug.js +++ b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.debug.js @@ -1171,13 +1171,15 @@ var Designer = { var pageSize = Model.define.page; if (shapePosition.x + shapePosition.w > pageSize.width - pageSize.padding){ Designer.setPageStyle({ - width: shapePosition.x + shapePosition.w + pageSize.padding + 10 + width: shapePosition.x + shapePosition.w + pageSize.padding + 30 }); + $("#page_size_w").spinner('value',shapePosition.x + shapePosition.w + pageSize.padding + 30); } if (shapePosition.y + shapePosition.h > pageSize.height - pageSize.padding){ Designer.setPageStyle({ - height: shapePosition.y + shapePosition.h + pageSize.padding + 10 + height: shapePosition.y + shapePosition.h + pageSize.padding + 30 }); + $("#page_size_h").spinner('value',shapePosition.x + shapePosition.w + pageSize.padding + 30) } } if (isAutoSave == "0") { diff --git a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.js b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.js index 38751591..c81825bb 100755 --- a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.js +++ b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.core.js @@ -1,30 +1 @@ -Schema.init(true);Schema.initMarkers();$(function(){if(role=="trial"){Designer.status="demo"}else{if(role=="viewer"){Designer.status="readonly"}else{if(role=="running"){Designer.status="running"}}}Designer.init();UI.init();Dock.init();Navigator.init();if(Designer.status=="readonly"){Designer.setReadonly(true);$("#moreShapes").hide();Customize.init();return}if(Designer.status=="demo"){UI.gettingStart()}});var Designer={config:{panelItemWidth:30,panelItemHeight:30,pageMargin:10,anchorSize:8,rotaterSize:9,anchorColor:"#833",selectorColor:"#833",scale:1},status:"",initialize:{initialized:false,initLayout:function(){$(window).bind("resize.designer",function(){showPainting();var b=$(window).height()-$("#designer_header").outerHeight()-$("#designer_footer").outerHeight();$(".layout").height(b);if($("#demo_signup").length){$("#designer_layout").height(b-$("#demo_signup").outerHeight())}});$(window).trigger("resize.designer")},initModel:function(){Model.define={page:Utils.copy(Schema.pageDefaults),elements:{}};if(definition!=undefined&&definition.localAttribute!=undefined){Model.define.localAttribute=definition.localAttribute}else{Model.define.localAttribute={}}if(definition!=undefined&&definition.commonShapeConfig!=undefined){Model.define.commonShapeConfig=definition.commonShapeConfig}else{Model.define.commonShapeConfig={}}Model.persistence={page:Utils.copy(Schema.pageDefaults),elements:{},localAttribute:{},commonShapeConfig:{}}},initCanvas:function(){var q=Model.define.page.width.toScale();var v=Model.define.page.height.toScale();var B=Model.define.page.backgroundColor;var s=Utils.getDarkerColor(B);var A=Utils.getDarkestColor(B);$("#designer_canvas").css({"background-color":"rgb("+s+")"});var w=$("#designer_grids");w.attr({width:q,height:v});var h=w[0].getContext("2d");h.clearRect(0,0,q,v);var r=Model.define.page.padding.toScale();var y=q-r*2;var p=v-r*2;h.fillStyle="rgb("+B+")";h.beginPath();h.rect(r,r,y,p);h.fill();var x=Math.round(Model.define.page.gridSize.toScale());if(x<10){x=10}if(Model.define.page.showGrid){h.translate(r,r);h.lineWidth=1;h.save();var t=0.5;var u=0;while(t<=p){h.restore();if(u%4==0){h.strokeStyle="rgb("+A+")"}else{h.strokeStyle="rgb("+s+")"}h.beginPath();h.moveTo(0,t);h.lineTo(y,t);t+=x;u++;h.stroke()}t=0.5;u=0;while(t<=y){h.restore();if(u%4==0){h.strokeStyle="rgb("+A+")"}else{h.strokeStyle="rgb("+s+")"}h.beginPath();h.moveTo(t,0);h.lineTo(t,p);t+=x;u++;h.stroke()}}$("#canvas_container").css({width:q,height:v,padding:Designer.config.pageMargin});if(!this.initialized){$("#designer_layout").scrollTop(Designer.config.pageMargin-10);$("#designer_layout").scrollLeft(Designer.config.pageMargin-10)}var z=$("#bar_list_page").children("li[ac=set_page_showgrid]");z.menuitem("unselect");if(Model.define.page.showGrid){z.menuitem("select")}},initShapes:function(){$("#shape_panel").empty();for(var o=0;o

"+n.text+"

")}$(".panel_title").unbind().bind("click",function(){$(this).parent().toggleClass("panel_collapsed")});for(var s in Schema.shapes){var l=Schema.shapes[s];if(l.attribute.visible&&l.category!="standard"){if((l.category=="process_bpmn2"||l.category=="process.bpmn2"||l.category=="bpmn")&&checkRunningTimeShape(l)){continue}if(!l.groupName){p(l)}else{var i=SchemaGroup.getGroup(l.groupName);if(i[0]==s){p(l,l.groupName)}}}}function p(b,d){b=Utils.copy(b);var e="
";var c=$(e).appendTo("#panel_"+b.category);if(d){c.append("
")}var a=c.children()[0];c.bind("mouseenter",function(){if($(this).hasClass("readonly")){return}var h=$("#shape_thumb");h.children("div").text(b.title);var j=h.children("canvas")[0].getContext("2d");var A={x:0,y:0,w:b.props.w,h:b.props.h,angle:b.props.angle};var y=160;var k=160;j.clearRect(0,0,y,k);if(b.props.w>=b.props.h){if(b.props.w>y){A.w=y;A.h=parseInt(b.props.h/b.props.w*A.w)}}else{if(b.props.h>k){A.h=k;A.w=parseInt(b.props.w/b.props.h*A.h)}}h.children("canvas").attr({width:y+20,height:A.h+20});h.show();b.props=A;j.save();if(b.name!="text"&&b.name!="umlText"){j.globalAlpha=b.shapeStyle.alpha;var f=(y+20-A.w)/2;var g=10;j.translate(f,g);j.translate(A.w/2,A.h/2);j.rotate(A.angle);j.translate(-(A.w/2),-(A.h/2));Designer.painter.renderShapePath(j,b,true);Designer.painter.renderMarkers(j,b,true)}else{j.translate(y/2+10,A.h/2+10);j.textBaseline="middle";j.textAlign="center";var B="";if(b.fontStyle.italic){B+="italic "}else{B+="normal "}if(b.fontStyle.bold){B+="bold "}else{B+="normal "}B+=b.fontStyle.size+"pt ";B+=b.fontStyle.fontFamily;j.font=B;j.fillStyle="rgb("+b.fontStyle.color+")"; - j.fillText(b.text,0,0)}j.restore();var z=c.offset().top-$("#designer_header").outerHeight()+c.height()/2-h.outerHeight()/2;if(z<5){z=5}else{if(z+h.outerHeight()>$("#designer_viewport").height()-5){z=$("#designer_viewport").height()-5-h.outerHeight()}}h.css("top",z)}).bind("mouseleave",function(){$("#shape_thumb").hide()});Designer.painter.drawPanelItem(a,b.name)}r();function r(){$(".panel_box").die().live("mousedown",function(j){var c=$(this);if(c.hasClass("readonly")){return}var h=c.attr("shapeName");var a=[];Designer.op.changeState("creating_from_panel");var g=null;var b=null;var d=$("#designer_canvas");var f=t(h);$("#designer").bind("mousemove.creating",function(k){m(f,k)});$("#canvas_container").bind("mousemove.create",function(B){var D=Utils.getRelativePos(B.pageX,B.pageY,d);if(g==null){g=q(h,D.x,D.y);b=$("#"+g.id);b.attr("class","shape_box_creating")}b.css({left:D.x-b.width()/2+"px",top:D.y-b.height()/2+"px","z-index":Model.orderList.length});g.props.x=D.x.restoreScale()-g.props.w/2;g.props.y=D.y.restoreScale()-g.props.h/2;var G=g.props;var H=Designer.op.snapLine(G,[g.id],true,g);if(H.attach){g.attachTo=H.attach.id}else{delete g.attachTo}b.css({left:(g.props.x-10).toScale()+"px",top:(g.props.y-10).toScale()+"px","z-index":Model.orderList.length});a=Utils.getShapeAnchorInLinker(g);Designer.op.hideLinkPoint();for(var C=0;C").appendTo("#designer");b=$("").appendTo(c)}c.css({left:"0px",top:"0px",width:$(".panel_container").width(),height:$("#shape_panel").outerHeight()});Designer.painter.drawPanelItem(b[0],a);return b}function m(b,a){$("#creating_shape_container").show();var c=Utils.getRelativePos(a.pageX,a.pageY,$("#creating_shape_container"));b.css({left:c.x-Designer.config.panelItemWidth/2,top:c.y-Designer.config.panelItemHeight/2})}function q(g,e,f){var h=Utils.newId();var b=Schema.shapes[g];var c=e.restoreScale()-b.props.w/2;var d=f.restoreScale()-b.props.h/2;var a=Model.create(g,c,d);Designer.painter.renderShape(a);return a}}},hotkey:{init:function(){var b=null;$(document).unbind("keydown.hotkey").bind("keydown.hotkey",function(n){if(n.ctrlKey&&n.keyCode==65){Designer.selectAll();n.preventDefault()}else{if(n.keyCode==46||n.keyCode==8){Designer.op.removeShape();n.preventDefault()}else{if(n.ctrlKey&&n.keyCode==90){MessageSource.undo();n.preventDefault()}else{if(n.ctrlKey&&n.keyCode==89){MessageSource.redo();n.preventDefault()}else{if(n.ctrlKey&&!n.shiftKey&&n.keyCode==67){Designer.clipboard.copy();n.preventDefault()}else{if(n.ctrlKey&&n.keyCode==88){Designer.clipboard.cut();n.preventDefault()}else{if(n.ctrlKey&&n.keyCode==86){Designer.clipboard.paste();n.preventDefault()}else{if(n.ctrlKey&&n.keyCode==68){Designer.clipboard.duplicate();n.preventDefault() - }else{if(n.ctrlKey&&n.shiftKey&&n.keyCode==66){Designer.clipboard.brush();n.preventDefault()}else{if(n.ctrlKey&&n.keyCode==190){Designer.zoomIn();n.preventDefault()}else{if(n.ctrlKey&&n.keyCode==188){Designer.zoomOut();n.preventDefault()}else{if(n.keyCode>=37&&n.keyCode<=40){if(b==null){var s=Utils.getSelected();var m=Utils.getFamilyShapes(s);s=s.concat(m);var q=Utils.getContainedShapes(s);s=s.concat(q);var r=Utils.getAttachedShapes(s);s=s.concat(r);var a=Utils.getOutlinkers(s);b=s.concat(a)}if(b.length>0){n.preventDefault();var t=10;if(n.ctrlKey){t=1}Utils.hideLinkerCursor();if(n.keyCode==37){Designer.op.moveShape(b,{x:-t,y:0})}else{if(n.keyCode==38){Designer.op.moveShape(b,{x:0,y:-t})}else{if(n.keyCode==39){Designer.op.moveShape(b,{x:t,y:0})}else{if(n.keyCode==40){Designer.op.moveShape(b,{x:0,y:t})}}}}$(document).unbind("keyup.moveshape").bind("keyup.moveshape",function(){Model.updateMulti(b);b=null;$(document).unbind("keyup.moveshape");Designer.op.hideTip();Utils.showLinkerCursor()})}}else{if(n.keyCode==221&&n.ctrlKey){var e="front";if(n.shiftKey){e="forward"}Designer.layerShapes(e)}else{if(n.keyCode==219&&n.ctrlKey){var e="back";if(n.shiftKey){e="backward"}Designer.layerShapes(e)}else{if(n.keyCode==71&&n.ctrlKey){n.preventDefault();if(n.shiftKey){Designer.ungroup()}else{Designer.group()}}else{if(n.keyCode==76&&n.ctrlKey){n.preventDefault();if(n.shiftKey){Designer.unlockShapes()}else{Designer.lockShapes()}}else{if(n.keyCode==18){Designer.op.changeState("drag_canvas")}else{if(n.keyCode==27){if(!Designer.op.state){Utils.unselect();$(".menu.list").hide();$(".menu").hide();$(".color_picker").hide()}else{if(Designer.op.state=="creating_free_text"||Designer.op.state=="creating_free_linker"){Designer.op.resetState()}}}else{if(n.keyCode==84&&!n.ctrlKey){$(".menu.list").hide();Designer.op.changeState("creating_free_text")}else{if(n.keyCode==73&&!n.ctrlKey){$(".menu.list").hide();UI.showImageSelect(function(c,d,f){UI.insertImage(c,d,f)});$("#designer_contextmenu").hide()}else{if(n.keyCode==76&&!n.ctrlKey){$(".menu.list").hide();Designer.op.changeState("creating_free_linker");$("#designer_contextmenu").hide()}else{if(n.keyCode==66&&n.ctrlKey){var o=Utils.getSelectedIds();if(o.length>0){var p=Model.getShapeById(o[0]);Designer.setFontStyle({bold:!p.fontStyle.bold});UI.update()}}else{if(n.keyCode==73&&n.ctrlKey){var o=Utils.getSelectedIds();if(o.length>0){var p=Model.getShapeById(o[0]);Designer.setFontStyle({italic:!p.fontStyle.italic});UI.update()}}else{if(n.keyCode==85&&n.ctrlKey){var o=Utils.getSelectedIds();if(o.length>0){var p=Model.getShapeById(o[0]);Designer.setFontStyle({underline:!p.fontStyle.underline});UI.update()}n.preventDefault()}else{if(n.keyCode==32&&!n.ctrlKey){var o=Utils.getSelectedIds();if(o.length==1){var p=Model.getShapeById(o[0]);Designer.op.editShapeText(p)}n.preventDefault()}else{if(n.keyCode==121){n.preventDefault();Dock.enterPresentation()}}}}}}}}}}}}}}}}}}}}}}}}}}});$("input,textarea,select").die().live("keydown.hotkey",function(a){a.stopPropagation()})},cancel:function(){$(document).unbind("keydown.hotkey")}},contextMenu:{init:function(){$("#designer_contextmenu").unbind("mousedown").bind("mousedown",function(b){b.stopPropagation()});$("#designer_contextmenu").find("li:not(.devider)").unbind("click").bind("click",function(){var b=$(this);if(!b.menuitem("isDisabled")&&b.children(".extend_menu").length==0){Designer.contextMenu.execAction(b);Designer.contextMenu.hide()}});$("#canvas_container").unbind("contextmenu").bind("contextmenu",function(d){d.preventDefault();var e=$("#designer_canvas");var f=Utils.getRelativePos(d.pageX,d.pageY,e);Designer.contextMenu.show(f.x,f.y)})},destroy:function(){$("#canvas_container").unbind("contextmenu");this.hide()},menuPos:{x:0,y:0,shape:null},show:function(k,l){this.menuPos.x=k;this.menuPos.y=l;var p=$("#designer_contextmenu");var r=Utils.getShapeByPosition(k,l,false);p.children().hide();p.children("li[ac=selectall]").show();p.children(".devi_selectall").show();p.children("li[ac=drawline]").show();var q=Designer.clipboard.elements.length;if(r==null){if(q>0){p.children("li[ac=paste]").show();p.children(".devi_clip").show()}}else{var n=r.shape;this.menuPos.shape=n;if(n.locked){if(q>0){p.children("li[ac=paste]").show();p.children(".devi_clip").show()}p.children("li[ac=unlock]").show();p.children(".devi_shape").show()}else{p.children("li[ac=cut]").show();p.children("li[ac=copy]").show();p.children("li[ac=duplicate]").show();if(q>0){p.children("li[ac=paste]").show()}p.children(".devi_clip").show();p.children("li[ac=front]").show();p.children("li[ac=back]").show();p.children("li[ac=lock]").show();var m=Utils.getSelectedIds();var o=m.length;if(o>=2){p.children("li[ac=group]").show();$("#ctxmenu_align").show()}var j=Utils.getSelectedGroups().length;if(j>=1){p.children("li[ac=ungroup]").show()}p.children(".devi_shape").show();if(o==1&&n.name!="linker"&&n.link){p.children("li[ac=changelink]").show()}if(n.name=="linker"||n.attribute.editable){p.children("li[ac=edit]").show() - }p.children("li[ac=delete]").show();p.children(".devi_del").show()}}p.css({display:"block","z-index":Model.orderList.length+3,left:k,top:l});$(document).bind("mousedown.ctxmenu",function(){Designer.contextMenu.hide()})},hide:function(){$("#designer_contextmenu").hide();$(document).unbind("mousedown.ctxmenu")},execAction:function(e){var d=e.attr("ac");if(d=="cut"){Designer.clipboard.cut()}else{if(d=="copy"){Designer.clipboard.copy()}else{if(d=="paste"){Designer.clipboard.paste(this.menuPos.x,this.menuPos.y)}else{if(d=="duplicate"){Designer.clipboard.duplicate()}else{if(d=="front"){Designer.layerShapes("front")}else{if(d=="back"){Designer.layerShapes("back")}else{if(d=="lock"){Designer.lockShapes()}else{if(d=="unlock"){Designer.unlockShapes()}else{if(d=="group"){Designer.group()}else{if(d=="ungroup"){Designer.ungroup()}else{if(d=="align_shape"){var f=e.attr("al");Designer.alignShapes(f)}else{if(d=="edit"){Designer.op.editShapeText(this.menuPos.shape)}else{if(d=="delete"){Designer.op.removeShape()}else{if(d=="selectall"){Designer.selectAll()}else{if(d=="drawline"){Designer.op.changeState("creating_free_linker")}else{if(d=="changelink"){UI.showInsertLink()}}}}}}}}}}}}}}}}}},init:function(){this.initialize.initLayout();this.initialize.initModel();this.initialize.initCanvas();this.initialize.initShapes();this.hotkey.init();this.contextMenu.init();Designer.op.init();this.initialize.initialized=true;Designer.events.push("initialized");$("#designer_layout").on("scroll",function(){$(document).trigger("mouseup.multiselect")})},op:{init:function(){var c=$("#designer_canvas");var d=$("#canvas_container");d.unbind("mousemove.operate").bind("mousemove.operate",function(a){if(Designer.op.state!=null){return}Designer.op.destroy();var b=Utils.getRelativePos(a.pageX,a.pageY,c);var j=Utils.getShapeByPosition(b.x,b.y);if(j!=null){if(j.type=="dataAttribute"){}else{if(j.type=="linker"){d.css("cursor","pointer");Designer.op.shapeSelectable(j.shape);var h=j.shape;var i=j.pointIndex;if(h.linkerType=="broken"&&i>1&&i<=h.points.length){Designer.op.brokenLinkerChangable(h,i-1)}else{if(h.from.id==null&&h.to.id==null){d.css("cursor","move");Designer.op.shapeDraggable()}}Designer.op.linkerEditable(h)}else{if(j.type=="linker_point"){d.css("cursor","move");Designer.op.shapeSelectable(j.shape);Designer.op.linkerDraggable(j.shape,j.point);Designer.op.linkerEditable(j.shape)}else{if(j.type=="linker_text"){d.css("cursor","text");Designer.op.shapeSelectable(j.shape);Designer.op.linkerEditable(j.shape)}else{if(j.type=="shape"){if(j.shape.locked){d.css("cursor","default");Designer.op.shapeSelectable(j.shape)}else{d.css("cursor","move");Designer.op.shapeSelectable(j.shape);Designer.op.shapeEditable(j.shape);Designer.op.shapeDraggable();if(j.shape.link){}}}else{d.css("cursor","crosshair");Designer.op.shapeSelectable(j.shape);Designer.op.shapeLinkable(j.shape,j.linkPoint)}if(j.shape.parent){Utils.showAnchors(Model.getShapeById(j.shape.parent))}else{Utils.showAnchors(j.shape)}}}}}}else{d.css("cursor","default");Designer.op.shapeMultiSelectable()}})},cancel:function(){$("#canvas_container").unbind("mousemove.operate").css("cursor","default");this.destroy()},destroy:function(){$("#designer_canvas").unbind("mousedown.drag").unbind("dblclick.edit").unbind("mousedown.draglinker").unbind("mousedown.select").unbind("mousedown.brokenLinker").unbind("dblclick.edit_linker");$("#canvas_container").unbind("mousedown.link").unbind("mousedown.create_text").unbind("mousedown.drag_canvas");$("#designer_layout").unbind("mousedown.multiselect");Utils.hideAnchors();$("#link_spot").hide()},state:null,changeState:function(b){this.state=b;if(b=="creating_free_text"){this.destroy();$("#canvas_container").css("cursor","crosshair");this.textCreatable()}else{if(b=="creating_free_linker"){this.destroy();$("#canvas_container").css("cursor","crosshair");this.shapeLinkable()}else{if(b=="drag_canvas"){this.destroy();this.canvasDraggable()}else{if(b=="changing_curve"){this.destroy()}}}}},resetState:function(){this.state=null;$("#canvas_container").css("cursor","default")},shapeSelectable:function(d){var c=$("#designer_canvas");c.bind("mousedown.select",function(b){Designer.op.changeState("seelcting_shapes");var a=d.id;var f=[];if(b.ctrlKey){var f=Utils.getSelectedIds();if(Utils.isSelected(a)){Utils.removeFromArray(f,a)}else{f.push(a)}Utils.unselect();if(f.length>0){Utils.selectShape(f)}}else{if(Utils.selectIds.indexOf(a)<0){Utils.unselect();Utils.selectShape(a)}}$(document).bind("mouseup.select",function(){Designer.op.resetState();c.unbind("mousedown.select");$(document).unbind("mouseup.select")})})},shapeDraggable:function(){var c=$("#designer_canvas");var d=$("#canvas_container");c.bind("mousedown.drag",function(b){Utils.hideLinkerCursor();Utils.hideLinkerControls();Designer.op.changeState("dragging");var x=Utils.getRelativePos(b.pageX,b.pageY,c);var u=Utils.getSelected();var w=true;if(u.length==1&&u[0].name=="linker"){w=false}var z=null;if(w){z=Utils.getShapesBounding(u)}var i=Utils.getFamilyShapes(u); - u=u.concat(i);var r=Utils.getContainedShapes(u);u=u.concat(r);var s=Utils.getAttachedShapes(u);u=u.concat(s);var y=[];if(w){for(var t=0;tpageSize.width-pageSize.padding){Designer.setPageStyle({width:shapePosition.x+shapePosition.w+pageSize.padding+10})}if(shapePosition.y+shapePosition.h>pageSize.height-pageSize.padding){Designer.setPageStyle({height:shapePosition.y+shapePosition.h+pageSize.padding+10})}}if(isAutoSave=="0"){$("#saving_tip").css("color","rgb(255, 0, 0)");$("#saving_tip").text("文件已修改,未保存")}})})},shapeResizable:function(){$(".shape_controller").bind("mousedown",function(ab){if(!isAdmin&&isCustomDefine=="1"){var ae=Utils.getSelected();var P=true;for(var p=0;p=0){E.x=M.x+M.w}else{if(N.indexOf("r")>=0){E.x=M.x}else{E.x=M.x+M.w/2}}if(N.indexOf("t")>=0){E.y=M.y+M.h}else{if(N.indexOf("b")>=0){E.y=M.y}else{E.y=M.y+M.h/2}}E=Utils.getRotated(C,E,M.angle);function G(a,b){if(a.id==null){if(b){return{type:"box",x:(a.x-M.x)/M.w,y:(a.y-M.y)/M.h}}else{return{type:"fixed"}}}else{if(Utils.isSelected(a.id)){var e=Model.getShapeById(a.id);var d={x:e.props.x+e.props.w/2,y:e.props.y+e.props.h/2};var c=Utils.getRotated(d,a,-e.props.angle);return{type:"shape",x:(c.x-e.props.x)/e.props.w,y:(c.y-e.props.y)/e.props.h}}else{return{type:"fixed"}}}}var W=[];var ac={};var Z=[];var L=Utils.getAttachedShapes(K);K=K.concat(L);var J=[];for(var H=0;H0){for(var T=0;T=0){w.w=k.x-E.x}else{if(N.indexOf("l")>=0){w.w=E.x-k.x}}if(N.indexOf("b")>=0){w.h=k.y-E.y}else{if(N.indexOf("t")>=0){w.h=E.y-k.y}}if(a.ctrlKey&&N.length==2){if(M.w>=M.h){w.h=M.h/M.w*w.w;if(w.h=0){d.x=E.x+w.w}else{if(N.indexOf("l")>=0){d.x=E.x-w.w}else{d.x=E.x}}if(N.indexOf("b")>=0){d.y=E.y+w.h}else{if(N.indexOf("t")>=0){d.y=E.y-w.h}else{d.y=E.y}}var o=Utils.getRotated(E,d,M.angle);var m={x:0.5*E.x+0.5*o.x,y:0.5*E.y+0.5*o.y};var f=Utils.getRotated(m,E,-M.angle);if(N.indexOf("r")>=0){w.x=f.x}else{if(N.indexOf("l")>=0){w.x=f.x-w.w}else{w.x=f.x-w.w/2}}if(N.indexOf("b")>=0){w.y=f.y}else{if(N.indexOf("t")>=0){w.y=f.y-w.h - }else{w.y=f.y-w.h/2}}if(w.angle==0){var y=W[0];var h=Designer.op.snapResizeLine(w,J,N)}Utils.removeAnchors();for(var e=0;e"+r}Designer.op.showTip(r);$(document).unbind("mouseup.resize_ok").bind("mouseup.resize_ok",function(){if(F.length>0){W=W.concat(F)}Model.updateMulti(W);$(document).unbind("mouseup.resize_ok")})});$(document).bind("mouseup.resize",function(){S.css("cursor","default");Designer.op.resetState();S.unbind("mousemove.resize");$(document).unbind("mouseup.resize");var selectedShape=Utils.getSelected()[0];if(selectedShape){var shapePosition=selectedShape.props;var pageSize=Model.define.page;if(shapePosition.x+shapePosition.w>pageSize.width-pageSize.padding){Designer.setPageStyle({width:shapePosition.x+shapePosition.w+pageSize.padding+10})}if(shapePosition.y+shapePosition.h>pageSize.height-pageSize.padding){Designer.setPageStyle({height:shapePosition.y+shapePosition.h+pageSize.padding+10})}}Designer.op.hideTip();Utils.showLinkerCursor();Designer.op.hideSnapLine()})})},shapeRotatable:function(){$(".shape_rotater").bind("mousemove",function(i){var j=$(this);var g=i.pageX-j.offset().left;var h=i.pageY-j.offset().top;var e=j[0].getContext("2d");j.unbind("mousedown");j.removeClass("rotate_enable");if(e.isPointInPath(g,h)){j.addClass("rotate_enable");j.bind("mousedown",function(b){Utils.hideLinkerCursor();if($("#shape_text_edit").length){$("#shape_text_edit").trigger("blur")}b.stopPropagation();Designer.op.changeState("rotating");var r=Utils.getSelectedIds();var c;var s;if(r.length==1){var f=Model.getShapeById(r[0]);c=f.props;s=f.props.angle}else{c=Utils.getControlBox(r);s=0}var x={x:c.x+c.w/2,y:c.y+c.h/2};var d=Utils.toScale(x);var w=$("#designer_canvas");var u=Utils.getSelected();var t=Utils.getAttachedShapes(u);u=u.concat(t);var a=Utils.getOutlinkers(u);u=u.concat(a);var v=s;$(document).bind("mousemove.rotate",function(l){var m=Utils.getRelativePos(l.pageX,l.pageY,w);var H=Math.atan(Math.abs(m.x-d.x)/Math.abs(d.y-m.y));if(m.x>=d.x&&m.y>=d.y){H=Math.PI-H}else{if(m.x<=d.x&&m.y>=d.y){H=Math.PI+H}else{if(m.x<=d.x&&m.y<=d.y){H=Math.PI*2-H}}}H=H%(Math.PI*2);var k=Math.PI/36;var o=Math.round(H/k);H=k*o;if(H==v){return}v=H;Designer.op.showTip(o*5%360+"°");Designer.painter.rotateControls(c,H);Utils.removeAnchors();var L=H-s;for(var G=0;G0){for(var b2xi in Model.define.localAttribute[c]){b2x.attributesJsonArray.push(Utils.copy(Model.define.localAttribute[c][b2xi]))}}for(var pj=0;pj0){a=a.concat(b)}Model.updateMulti(a)}})})},shapeMultiSelectable:function(){var d=$("#designer_canvas");var c=$("#designer_layout");c.unbind("mousedown.multiselect").bind("mousedown.multiselect",function(a){var b=null;if(!a.ctrlKey){Utils.unselect()}var f=Utils.getRelativePos(a.pageX,a.pageY,d);Designer.op.changeState("multi_selecting");c.bind("mousemove.multiselect",function(i){if(b==null){b=$("
").appendTo(d)}var j=Utils.getRelativePos(i.pageX,i.pageY,d);var e={"z-index":Model.orderList.length,left:j.x,top:j.y};if(j.x>f.x){e.left=f.x}if(j.y>f.y){e.top=f.y}e.width=Math.abs(j.x-f.x);e.height=Math.abs(j.y-f.y);b.css(e)});$(document).unbind("mouseup.multiselect").bind("mouseup.multiselect",function(j){if(b!=null){var l={x:b.position().left.restoreScale(),y:b.position().top.restoreScale(),w:b.width().restoreScale(),h:b.height().restoreScale()};var e=Utils.getShapesByRange(l);if(j.ctrlKey){var k=Utils.getSelectedIds();Utils.mergeArray(e,k)}Utils.unselect();Utils.selectShape(e);b.remove()}Designer.op.resetState();$(document).unbind("mouseup.multiselect");c.unbind("mousemove.multiselect")});c.unbind("mousedown.multiselect")})},shapeEditable:function(d){var c=$("#designer_canvas");if(d.attribute.editable==false){return}c.unbind("dblclick.edit").bind("dblclick.edit",function(){Designer.op.editShapeText(d);c.unbind("dblclick.edit")})},editShapeText:function(o){if(o.name=="linker"){this.editLinkerText(o);return}var j=$("#shape_text_edit");if(j.length==0){j=$("").appendTo("#designer_canvas")}var k=$("#shape_text_ruler");if(k.length==0){k=$("").appendTo("#designer_canvas")}$(".text_canvas[forshape="+o.id+"]").hide();var l=o.fontStyle;var p=o.getTextBlock();if(l.orientation=="horizontal"){var m={x:p.x+p.w/2,y:p.y+p.h/2};p={x:m.x-p.h/2,y:m.y-p.w/2,w:p.h,h:p.w}}var n={width:p.w+"px","z-index":Model.orderList.length+2,"line-height":Math.round(l.size*1.25)+"px","font-size":l.size+"px","font-family":l.fontFamily,"font-weight":l.bold?"bold":"normal","font-style":l.italic?"italic":"normal","text-align":l.textAlign,color:"rgb("+l.color+")","text-decoration":l.underline?"underline":"none"};j.css(n);k.css(n);j.show();p.x+=o.props.x;p.y+=o.props.y;j.val(o.text);$("#shape_text_edit").unbind().bind("keyup",function(){var a=$(this).val();k.val(a);k.scrollTop(99999);var h=k.scrollTop();j.css({height:h});var g={x:p.x+p.w/2,y:p.y+p.h/2};var f=0;var d=0;var w=p.h;if(o.fontStyle.vAlign=="middle"){if(h>w){w=h;f=(g.y-w/2);d=0}else{f=(g.y-p.h/2);d=(p.h-h)/2;w=p.h-d}}else{if(o.fontStyle.vAlign=="bottom"){if(h>w){w=h;f=(g.y+p.h/2-w);d=0}else{f=(g.y-p.h/2);d=p.h-h;w=p.h-d}}else{f=(g.y-p.h/2);d=0;if(h>w){w=h}else{w=p.h}}}var x=d+w;var b={x:p.x+p.w/2,y:f+x/2};var c=o.props.angle;if(c!=0){var v={x:o.props.x+o.props.w/2,y:o.props.y+o.props.h/2};b=Utils.getRotated(v,b,c)}if(l.orientation=="horizontal"){c=(Math.PI*1.5+c)%(Math.PI*2)}var u=Math.round(c/(Math.PI*2)*360);var e="rotate("+u+"deg) scale("+Designer.config.scale+")";j.css({width:p.w,height:w,"padding-top":d,left:b.x.toScale()-p.w/2-2,top:b.y.toScale()-x/2-2,"-webkit-transform":e,"-ms-transform":e,"-o-transform":e,"-moz-transform":e,transform:e})}).bind("keydown",function(a){var d=$(this);if(a.keyCode==13&&a.ctrlKey){i();return false}else{if(a.keyCode==27){d.unbind().remove();$(".text_canvas[forshape="+o.id+"]").show()}else{if(a.keyCode==66&&a.ctrlKey){var c=!o.fontStyle.bold;o.fontStyle.bold=c;Model.update(o);var b=c?"bold":"normal";$(this).css("font-weight",b);k.css("font-weight",b);UI.update()}else{if(a.keyCode==73&&a.ctrlKey){var c=!o.fontStyle.italic;o.fontStyle.italic=c;Model.update(o);var b=c?"italic":"normal";$(this).css("font-style",b);k.css("font-style",b); - UI.update()}else{if(a.keyCode==85&&a.ctrlKey){var c=!o.fontStyle.underline;o.fontStyle.underline=c;Model.update(o);var b=c?"underline":"none";$(this).css("text-decoration",b);k.css("text-decoration",b);a.preventDefault();UI.update()}}}}}}).bind("blur",function(a){i()}).bind("mousemove",function(a){a.stopPropagation()}).bind("mousedown",function(a){a.stopPropagation()}).bind("mouseenter",function(a){Designer.op.destroy()});$("#shape_text_edit").trigger("keyup");j.select();function i(){var a=$("#shape_text_edit").val();if($("#shape_text_edit").length&&$("#shape_text_edit").is(":visible")){if(a!=o.text){o.text=a;Model.update(o)}Designer.painter.renderShape(o);$("#shape_text_edit").remove()}}},shapeLinkable:function(j,g){var i=$("#designer_canvas");var f=$("#canvas_container");f.unbind("mousedown.link").bind("mousedown.link",function(c){Designer.op.changeState("linking_from_shape");var e=null;var d=null;var a;if(!j){var b=Utils.getRelativePos(c.pageX,c.pageY,i);a={x:b.x.restoreScale(),y:b.y.restoreScale(),id:null,angle:null}}else{a=g;a.id=j.id}f.bind("mousemove.link",function(m){f.css("cursor","default");var n=Utils.getRelativePos(m.pageX,m.pageY,i);if(d==null){d=h(a,n);Designer.events.push("linkerCreating",d)}Designer.op.moveLinker(d,"to",n.x,n.y);$(document).unbind("mouseup.droplinker").bind("mouseup.droplinker",function(){if(Math.abs(n.x-a.x)>20||Math.abs(n.y-a.y)>20){Model.add(d);Designer.events.push("linkerCreated",d);if(d.to.id==null&&d.from.id!=null){Designer.op.linkDashboard(d)}Utils.showLinkerCursor()}else{$("#"+d.id).remove()}$(document).unbind("mouseup.droplinker")})});$(document).bind("mouseup.link",function(){Designer.op.hideLinkPoint();Designer.op.resetState();f.unbind("mousedown.link");f.unbind("mousemove.link");$(document).unbind("mouseup.link")})});function h(a,b){var d=Utils.newId();var c=Utils.copy(Schema.linkerDefaults);c.from=a;c.to={id:null,x:b.x,y:b.y,angle:null};c.props={zindex:Model.maxZIndex+1};c.id=d;return c}},linkerEditable:function(c){var d=$("#designer_canvas");d.unbind("dblclick.edit_linker").bind("dblclick.edit_linker",function(){Designer.op.editLinkerText(c);d.unbind("dblclick.edit_linker")})},editLinkerText:function(n){Designer.contextMenu.hide();var o=Designer.painter.getLinkerMidpoint(n);var k=$("#"+n.id).find(".text_canvas");var i=$("#linker_text_edit");if(i.length==0){i=$("").appendTo("#designer_canvas")}$("#"+n.id).find(".text_canvas").hide();var l=n.fontStyle;var m="scale("+Designer.config.scale+")";var j=Math.round(l.size*1.25);i.css({"z-index":Model.orderList.length,"line-height":j+"px","font-size":l.size+"px","font-family":l.fontFamily,"font-weight":l.bold?"bold":"normal","font-style":l.italic?"italic":"normal","text-align":l.textAlign,color:"rgb("+l.color+")","text-decoration":l.underline?"underline":"none","-webkit-transform":m,"-ms-transform":m,"-o-transform":m,"-moz-transform":m,transform:m});i.val(n.text).show().select();i.unbind().bind("keyup",function(){var b=$(this).val();var a=b.replace(//g,">").replace(/\n/g,"
");k.html(a+"
");var d=k.width();if(d<50){d=50}var c=k.height();if(c1){a=true}e.bind("mousemove.draglinker",function(d){e.css("cursor","default");var j=Utils.getRelativePos(d.pageX,d.pageY,h);Designer.op.moveLinker(g,f,j.x,j.y);if(a){Designer.painter.drawControls(c)}$(document).unbind("mouseup.droplinker").bind("mouseup.droplinker",function(){$(document).unbind("mouseup.droplinker");Model.update(g);Utils.showLinkerControls()})});$(document).bind("mouseup.draglinker",function(){Designer.op.hideLinkPoint();Designer.op.resetState();h.unbind("mousedown.draglinker"); - e.unbind("mousemove.draglinker");$(document).unbind("mouseup.draglinker");Utils.showLinkerControls()})})},linkClickable:function(e,f){var d=$("#link_spot");if(d.length==0){d=$("").appendTo("#designer_canvas")}if(e.trim().toLowerCase().indexOf("http")==-1){e="http://"+e}d.show().css({left:f.x-50,top:f.y-50,"z-index":Model.orderList.length+1})},textCreatable:function(){var c=$("#designer_canvas");var d=$("#canvas_container");d.unbind("mousedown.create_text").bind("mousedown.create_text",function(a){var g=null;if(!a.ctrlKey){Utils.unselect()}var h=Utils.getRelativePos(a.pageX,a.pageY,c);var b=null;d.bind("mousemove.create_text",function(f){if(g==null){g=$("
").appendTo(c)}var e=Utils.getRelativePos(f.pageX,f.pageY,c);b={"z-index":Model.orderList.length,left:e.x-1,top:e.y-1};if(e.x>h.x){b.left=h.x-1}if(e.y>h.y){b.top=h.y-1}b.width=Math.abs(e.x-h.x-2);b.height=Math.abs(e.y-h.y-2);g.css(b)});$(document).unbind("mouseup.create_text").bind("mouseup.create_text",function(e){if(b!=null&&b.width>=20&&b.height>=20){var f=Model.create("standardText",b.left.restoreScale(),b.top.restoreScale());f.props.w=b.width.restoreScale();f.props.h=b.height.restoreScale();Model.add(f);Designer.painter.renderShape(f);Designer.op.editShapeText(f);Utils.unselect();Utils.selectShape(f.id)}g.remove();Designer.op.resetState();$(document).unbind("mouseup.create_text");d.unbind("mousemove.create_text")});d.unbind("mousedown.create_text")})},canvasDragTimeout:null,canvasDraggable:function(){var b=$("#canvas_container");b.css("cursor","url(../apps/_bpm.platform/js/designer/themes/default/images/diagraming/cursor_hand.png) 8 8, auto");if(this.canvasDragTimeout){clearTimeout(this.canvasDragTimeout)}this.canvasDragTimeout=setTimeout(function(){b.unbind("mousedown.drag_canvas");Designer.op.resetState();b.unbind("mousemove.drag_canvas");$(document).unbind("mouseup.drag_canvas")},500);b.unbind("mousedown.drag_canvas").bind("mousedown.drag_canvas",function(e){var f=$("#designer_layout").scrollTop();var a=$("#designer_layout").scrollLeft();b.bind("mousemove.drag_canvas",function(d){var h=d.pageX-e.pageX;var c=d.pageY-e.pageY;$("#designer_layout").scrollLeft(a-h);$("#designer_layout").scrollTop(f-c)});$(document).unbind("mouseup.drag_canvas").bind("mouseup.drag_canvas",function(c){b.unbind("mousemove.drag_canvas");$(document).unbind("mouseup.drag_canvas")})});$(document).unbind("keyup.drag_canvas").bind("keyup.drag_canvas",function(a){b.unbind("mousedown.drag_canvas");Designer.op.resetState();$(document).unbind("mouseup.drag_canvas");a.preventDefault();clearTimeout(this.canvasDragTimeout);b.unbind("mousemove.drag_canvas")})},canvasFreeDraggable:function(){var b=$("#canvas_container");b.css("cursor","url(../apps/_bpm.platform/js/designer/themes/default/images/diagraming/cursor_hand.png) 8 8, auto");b.unbind("mousedown.drag_canvas").bind("mousedown.drag_canvas",function(e){var f=$("#designer_layout").scrollTop();var a=$("#designer_layout").scrollLeft();b.bind("mousemove.drag_canvas",function(d){var h=d.pageX-e.pageX;var c=d.pageY-e.pageY;$("#designer_layout").scrollLeft(a-h);$("#designer_layout").scrollTop(f-c)});$(document).unbind("mouseup.drag_canvas").bind("mouseup.drag_canvas",function(c){b.unbind("mousemove.drag_canvas");$(document).unbind("mouseup.drag_canvas")})})},moveShape:function(A,H){var z=[];for(var x=0;x=0){D.from.x+=i.x;D.from.y+=i.y;G=true}if(L.id!=null&&z.indexOf(L.id)>=0){D.to.x+=i.x;D.to.y+=i.y;C=true}}else{if(y.id==null||z.indexOf(y.id)>=0){D.from.x+=i.x;D.from.y+=i.y;G=true}if(L.id==null||z.indexOf(L.id)>=0){D.to.x+=i.x;D.to.y+=i.y;C=true}}if(G&&C){for(var w=0;w0){var I=Utils.getSelectedIds();Designer.painter.drawControls(I)}else{var E=$("#shape_controls");E.css({left:parseFloat(E.css("left"))+H.x,top:parseFloat(E.css("top"))+H.y})}var F=$("#shape_controls").position();if(F&&Utils.getSelected().length>0){Designer.op.showTip("X: "+Math.round(F.left.restoreScale())+"  Y: "+Math.round(F.top.restoreScale()))}function N(a){a.props.x+=i.x;a.props.y+=i.y;var b=$("#"+a.id);b.css({left:parseFloat(b.css("left"))+H.x,top:parseFloat(b.css("top"))+H.y})}},moveLinker:function(D,w,G,H){var K=null;var C=null;var z=Utils.getShapeByPosition(G,H,true);Designer.op.hideLinkPoint();if(z!=null){var L=z.shape;Utils.showAnchors(L);C=L.id;if(z.type=="bounding"){K=z.linkPoint; - Designer.op.showLinkPoint(Utils.toScale(K))}else{if(z.type=="shape"){var u;var I;if(w=="from"){u={x:D.to.x,y:D.to.y};I=D.to.id}else{u={x:D.from.x,y:D.from.y};I=D.from.id}if(L.id==I){Designer.op.hideLinkPoint();K={x:G.restoreScale(),y:H.restoreScale()};K.angle=null;C=null}else{var B=L.getAnchors();var E=-1;var A;var t={x:L.props.x+L.props.w/2,y:L.props.y+L.props.h/2};for(var v=0;v=D.to.x-6&&K.x<=D.to.x+6){D.from.x=D.to.x}if(K.y>=D.to.y-6&&K.y<=D.to.y+6){D.from.y=D.to.y}}}else{D.to.x=K.x;D.to.y=K.y;D.to.id=C;D.to.angle=K.angle;if(C==null){if(K.x>=D.from.x-6&&K.x<=D.from.x+6){D.to.x=D.from.x}if(K.y>=D.from.y-6&&K.y<=D.from.y+6){D.to.y=D.from.y}}}Designer.painter.renderLinker(D,true)},showLinkPoint:function(e){var f=$("").appendTo($("#designer_canvas"));var d=f[0].getContext("2d");d.translate(1,1);d.lineWidth=1;d.globalAlpha=0.3;d.strokeStyle=Designer.config.anchorColor;d.fillStyle=Designer.config.anchorColor;d.beginPath();d.moveTo(0,15);d.bezierCurveTo(0,-5,30,-5,30,15);d.bezierCurveTo(30,35,0,35,0,15);d.closePath();d.fill();d.stroke();f.css({left:e.x-16,top:e.y-16,"z-index":Model.orderList.length}).show()},hideLinkPoint:function(){$(".link_point_canvas").hide()},brokenLinkerChangable:function(k,l){var h=$("#canvas_container");var g=$("#designer_canvas");var i=k.points[l-1];var j=k.points[l];if(i.x==j.x){h.css("cursor","e-resize")}else{h.css("cursor","n-resize")}g.bind("mousedown.brokenLinker",function(a){Designer.op.changeState("changing_broken_linker");var b=Utils.getRelativePos(a.pageX,a.pageY,g);var c=Utils.getSelectedIds();h.bind("mousemove.brokenLinker",function(e){var f=Utils.getRelativePos(e.pageX,e.pageY,g);var d={x:f.x-b.x,y:f.y-b.y};d=Utils.restoreScale(d);if(i.x==j.x){i.x+=d.x;j.x+=d.x}else{i.y+=d.y;j.y+=d.y}Designer.painter.renderLinker(k);if(c.length>1){Designer.painter.drawControls(c)}b=f;$(document).unbind("mouseup.changed").bind("mouseup.changed",function(){Model.update(k);$(document).unbind("mouseup.changed")})});$(document).bind("mouseup.brokenLinker",function(){Designer.op.resetState();h.unbind("mousemove.brokenLinker");g.unbind("mousedown.brokenLinker");$(document).unbind("mouseup.brokenLinker")})})},removeShape:function(){var d=Utils.getSelected();if(d.length>0){Utils.unselect();var e=Utils.getAttachedShapes(d);d=d.concat(e);var c=[];for(var b=0;b0){var shapeIds=[];for(var index=0;index0){$.ajax({url:"./jd?sid="+$("#sid").val()+"&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_search",data:{shapeIds:shapeIds.join(","),fileId:ruuid},success:function(msg){if(typeof(msg)=="string"){msg=eval("("+msg+")")}var relationShapes=msg.data.relationShapes;if(relationShapes.length>0){var options={title:"提示",content:"图形["+relationShapes+"]被关联,确定删除吗?",onConfirm:function(){Model.remove(d)}};$.confirm(options)}else{Model.remove(d)}}})}else{Model.remove(d)}}}},showTip:function(h){var f=$("#designer_op_tip");if(f.length==0){f=$("
").appendTo("#designer_canvas")}f.stop().html(h);var e=$("#shape_controls");var g=e.position();f.css({top:g.top+e.height()+5,left:g.left+e.width()/2-f.outerWidth()/2,"z-index":Model.orderList.length}).show()},hideTip:function(){$("#designer_op_tip").fadeOut(100)},snapLine:function(R,Q,S,ae){var U=R.y;var J=R.y+R.h/2;var ad=R.y+R.h;var af=R.x;var T=R.x+R.w/2;var X=R.x+R.w;var ag=2;var ab={v:null,h:null,attach:null};var W=null;if(S){W=ae}else{W=Model.getShapeById(Q[0])}if(Q.length==1&&W.groupName=="boundaryEvent"){for(var K=Model.orderList.length-1;K>=0;K--){var P=Model.orderList[K].id;var ai=Model.getShapeById(P);if(ai.name!="linker"&&ai.id!=W.id){var O=ai.props;if(ab.attach==null&&O.angle==0&&(ai.groupName=="task"||ai.groupName=="callActivity"||ai.groupName=="subProcess")){var p={x:O.x-ag,y:O.y-ag,w:O.w+ag*2,h:O.h+ag*2};if(Utils.pointInRect(T,J,p)){var aj=O.y;var ac=O.y+O.h;var M=O.x;var L=O.x+O.w;var V=false;var aa=false;if(aj>=J-ag&&aj<=J+ag){R.y=aj-R.h/2;aa=true}else{if(ac>=J-ag&&ac<=J+ag){R.y=ac-R.h/2;aa=true}}if(M>=T-ag&&M<=T+ag){R.x=M-R.w/2;V=true}else{if(L>=T-ag&&L<=T+ag){R.x=L-R.w/2;V=true}}if(V||aa){ab.attach=ai}}}}}}if(ab.attach==null){for(var K=Model.orderList.length-1;K>=0;K--){var P=Model.orderList[K].id;var ai=Model.getShapeById(P);if(ai.name=="linker"||Q.indexOf(P)>=0||ai.parent){continue}var O=ai.props;if(ab.h==null){var aj=O.y; - var ak=O.y+O.h/2;var ac=O.y+O.h;if(ak>=J-ag&&ak<=J+ag){ab.h={type:"middle",y:ak};R.y=ak-R.h/2}else{if(aj>=U-ag&&aj<=U+ag){ab.h={type:"top",y:aj};R.y=aj}else{if(ac>=ad-ag&&ac<=ad+ag){ab.h={type:"bottom",y:ac};R.y=ac-R.h}else{if(ac>=U-ag&&ac<=U+ag){ab.h={type:"top",y:ac};R.y=ac}else{if(aj>=ad-ag&&aj<=ad+ag){ab.h={type:"bottom",y:aj};R.y=aj-R.h}}}}}}if(ab.v==null){var M=O.x;var N=O.x+O.w/2;var L=O.x+O.w;if(N>=T-ag&&N<=T+ag){ab.v={type:"center",x:N};R.x=N-R.w/2}else{if(M>=af-ag&&M<=af+ag){ab.v={type:"left",x:M};R.x=M}else{if(L>=X-ag&&L<=X+ag){ab.v={type:"right",x:L};R.x=L-R.w}else{if(L>=af-ag&&L<=af+ag){ab.v={type:"left",x:L};R.x=L}else{if(M>=X-ag&&M<=X+ag){ab.v={type:"right",x:M};R.x=M-R.w}}}}}}if(ab.h!=null&&ab.v!=null){break}}}this.hideSnapLine();var ah=$("#designer_canvas");if(ab.attach!=null){var Y=$("#designer_op_snapline_attach");if(Y.length==0){Y=$("
").appendTo(ah)}var I=ab.attach;var al=I.lineStyle.lineWidth;Y.css({width:(I.props.w+al).toScale(),height:(I.props.h+al).toScale(),left:(I.props.x-al/2).toScale()-2,top:(I.props.y-al/2).toScale()-2,"z-index":$("#"+I.id).css("z-index")}).show()}if(ab.h!=null){var i=$("#designer_op_snapline_h");if(i.length==0){i=$("
").appendTo(ah)}i.css({width:ah.width()+Designer.config.pageMargin*2,left:-Designer.config.pageMargin,top:Math.round(ab.h.y.toScale()),"z-index":Model.orderList.length+1}).show()}if(ab.v!=null){var Z=$("#designer_op_snapline_v");if(Z.length==0){Z=$("
").appendTo(ah)}Z.css({height:ah.height()+Designer.config.pageMargin*2,top:-Designer.config.pageMargin,left:Math.round(ab.v.x.toScale()),"z-index":Model.orderList.length+1}).show()}return ab},snapResizeLine:function(K,I,J){var L=K.y;var i=K.y+K.h/2;var P=K.y+K.h;var Q=K.x;var C=K.x+K.w/2;var D=K.x+K.w;var R=2;var N={v:null,h:null};for(var F=Model.orderList.length-1;F>=0;F--){var B=Model.orderList[F].id;var U=Model.getShapeById(B);if(U.name=="linker"||I.indexOf(B)>=0||U.parent){continue}var H=U.props;if(N.h==null&&(J.indexOf("t")>=0||J.indexOf("b")>=0)){var T=H.y;var V=H.y+H.h/2;var O=H.y+H.h;if(V>=i-R&&V<=i+R){N.h={type:"middle",y:V};if(J.indexOf("t")>=0){K.h=(P-V)*2;K.y=P-K.h}else{K.h=(V-K.y)*2}}else{if(J.indexOf("t")>=0&&T>=L-R&&T<=L+R){N.h={type:"top",y:T};K.y=T;K.h=P-T}else{if(J.indexOf("b")>=0&&O>=P-R&&O<=P+R){N.h={type:"bottom",y:O};K.h=O-L}else{if(J.indexOf("t")>=0&&O>=L-R&&O<=L+R){N.h={type:"top",y:O};K.y=O;K.h=P-O}else{if(J.indexOf("b")>=0&&T>=P-R&&T<=P+R){N.h={type:"bottom",y:T};K.h=T-K.y}}}}}}if(N.v==null&&(J.indexOf("l")>=0||J.indexOf("r")>=0)){var p=H.x;var A=H.x+H.w/2;var G=H.x+H.w;if(A>=C-R&&A<=C+R){N.v={type:"center",x:A};if(J.indexOf("l")>=0){K.w=(D-A)*2;K.x=D-K.w}else{K.w=(A-K.x)*2}}else{if(J.indexOf("l")>=0&&p>=Q-R&&p<=Q+R){N.v={type:"left",x:p};K.x=p;K.w=D-p}else{if(J.indexOf("r")>=0&&G>=D-R&&G<=D+R){N.v={type:"right",x:G};K.w=G-K.x}else{if(J.indexOf("l")>=0&&G>=Q-R&&G<=Q+R){N.v={type:"left",x:G};K.x=G;K.w=D-G}else{if(J.indexOf("r")>=0&&p>=D-R&&p<=D+R){N.v={type:"right",x:p};K.w=p-K.x}}}}}}if(N.h!=null&&N.v!=null){break}}this.hideSnapLine();var S=$("#designer_canvas");if(N.h!=null){var E=$("#designer_op_snapline_h");if(E.length==0){E=$("
").appendTo(S)}E.css({width:S.width()+Designer.config.pageMargin*2,left:-Designer.config.pageMargin,top:Math.round(N.h.y.toScale()),"z-index":Model.orderList.length+1}).show()}if(N.v!=null){var M=$("#designer_op_snapline_v");if(M.length==0){M=$("
").appendTo(S)}M.css({height:S.height()+Designer.config.pageMargin*2,top:-Designer.config.pageMargin,left:Math.round(N.v.x.toScale()),"z-index":Model.orderList.length+1}).show()}return N},hideSnapLine:function(){$("#designer_op_snapline_h").hide();$("#designer_op_snapline_v").hide();$("#designer_op_snapline_attach").hide()},linkDashboard:function(q){var m=Model.getShapeById(q.from.id);var t=m.category;if($("#panel_"+t).length!=0){var p=$("#shape_dashboard_"+t);if(p.length==0){p=$("").appendTo("#designer_canvas");function r(b,d){var e="
";var c=$(e).appendTo(p);if(d){c.append("")}var a=c.children()[0];Designer.painter.drawPanelItem(a,b.name)}for(var l in Schema.shapes){var o=Schema.shapes[l];if((o.category=="process_bpmn2"||o.category=="process.bpmn2"||o.category=="bpmn")&&checkRunningTimeShape(o)){continue}if(o.category==t){var s=o.attribute;if(s.visible&&s.linkable){if(!o.groupName){r(o)}else{var k=SchemaGroup.getGroup(o.groupName);if(k[0]==o.name){r(o,o.groupName)}}}}}p.bind("mousemove",function(a){a.stopPropagation()}).bind("mousedown",function(a){a.stopPropagation()})}p.css({left:q.to.x.toScale(),top:q.to.y.toScale(),"z-index":Model.orderList.length}).show(); - p.find(".link_shape_icon").unbind().bind("mousedown",function(f){f.stopPropagation();var a=$(this).attr("group");var d=$(this).parent().position();var e=p.position();var b=d.left+e.left+$(this).parent().outerWidth()-10;var c=d.top+e.top+$(this).parent().outerHeight();Designer.op.groupDashboard(a,b,c,function(g){n(g);p.hide();$(document).unbind("mousedown.dashboard")})}).bind("click",function(a){a.stopPropagation()});p.children(".dashboard_box").unbind().bind("click",function(){p.hide();$(document).unbind("mousedown.dashboard");var a=$(this);var b=a.attr("shapeName");n(b)});initRunningDashboard(p);$(document).bind("mousedown.dashboard",function(){p.hide();$(document).unbind("mousedown.dashboard")});function n(e){var y=Schema.shapes[e];var d=Utils.getEndpointAngle(q,"to");var b=Utils.getAngleDir(d);var f=y.getAnchors();var A;if(b==1){var c=null;for(var j=0;jg){g=z.x;A=z}}}else{if(b==3){var h=null;for(var j=0;jh){h=z.y;A=z}}}else{if(b==4){var B=null;for(var j=0;j").appendTo("#designer_canvas");var i=SchemaGroup.getGroup(m);for(var r=0;r").appendTo(o);var u=q.children("canvas")[0];Designer.painter.drawPanelItem(u,p.name)}}o.bind("mousedown",function(a){a.stopPropagation()})}o.css({left:s,top:n,"z-index":Model.orderList.length+1}).show();$(".dashboard_box").unbind().bind("click",function(){var a=$(this).attr("shapeName");t(a);o.hide();$(document).unbind("mousedown.group_dashboard")});$(document).bind("mousedown.group_dashboard",function(){o.hide();$(document).unbind("mousedown.group_dashboard")});return o},showPanelGroup:function(o,z,t){z.stopPropagation();var s=$("#group_dashboard_"+o);$(".group_dashboard").hide();if(s.length==0){s=$("").appendTo("#designer");var i=SchemaGroup.getGroup(o);for(var v=0;v").appendTo(s);var x=u.children("canvas")[0];Designer.painter.drawPanelItem(x,r.name)}}s.css("position","fixed")}var p=$(t).parent();var w=p.offset();s.show();var q=w.top+p.height();if(q+s.outerHeight()>$(window).height()){q=$(window).height()-s.outerHeight()}s.css({left:w.left-7,top:q});$(document).bind("mousedown.group_board",function(){s.hide();$(document).unbind("mousedown.group_board")})},changeShapeProps:function(j,o){function p(e){if(typeof o.x!="undefined"){e.x+=(o.x-j.props.x)}if(typeof o.y!="undefined"){e.y+=(o.y-j.props.y)}if(typeof o.w!="undefined"||typeof o.h!="undefined"||typeof o.angle!="undefined"){var f=$.extend({},j.props,o);var g={x:j.props.x+j.props.w/2,y:j.props.y+j.props.h/2};var b=Utils.getRotated(g,e,-j.props.angle);var c=j.props.w;var h=j.props.h;if(typeof o.w!="undefined"){e.x=j.props.x+(b.x-j.props.x)/j.props.w*o.w;c=o.w}else{e.x=b.x}if(typeof o.h!="undefined"){e.y=j.props.y+(b.y-j.props.y)/j.props.h*o.h;h=o.h}else{e.y=b.y}var d={x:j.props.x+c/2,y:j.props.y+h/2};var a=Utils.getRotated(d,e,f.angle);e.x=a.x;e.y=a.y}if(typeof o.angle!="undefined"){e.angle+=o.angle-j.props.angle}}var m=[];var l=Model.getShapeLinkers(j.id);if(l&&l.length>0){for(var i=0;i").appendTo("#designer_viewport")}j.html("选择目标图形并使用格式刷样式
Esc取消").show();$(document).unbind("keydown.cancelbrush").bind("keydown.cancelbrush",function(a){if(a.keyCode==27){$("#bar_brush").button("unselect");j.hide();$(document).unbind("keydown.cancelbrush");Utils.selectCallback=null;$("#bar_brush").button("disable")}});Utils.selectCallback=function(){var b=Utils.getSelected();for(var a=0;a1){k=1}var i={x:(1-k)*c.x+k*d.x,y:(1-k)*c.y+k*d.y};var a=Utils.measureDistance(j,i);if(a>=f[e]||k>=1){if(g){this.lineTo(i.x,i.y)}else{this.moveTo(i.x,i.y)}g=!g;j=i;e++;if(e>=f.length){e=0}}}this.moveTo(d.x,d.y)}else{this.lineTo(d.x,d.y)}this.prePoint=d;if(this.beginPoint==null){this.beginPoint=d}},curve:function(e){if(typeof this.webkitLineDash!="undefined"&&typeof this.lineDashOffset=="undefined"&&this.lineWidth!=0){var g=this.webkitLineDash; - var d=this.prePoint;var i=Utils.measureDistance(d,e);var n=0;var b=1/i;var l=d;var f=0;var h=true;var c=0;while(n<1){n+=b;if(n>1){n=1}var k={x:d.x*Math.pow((1-n),3)+e.x1*n*Math.pow((1-n),2)*3+e.x2*Math.pow(n,2)*(1-n)*3+e.x*Math.pow(n,3),y:d.y*Math.pow((1-n),3)+e.y1*n*Math.pow((1-n),2)*3+e.y2*Math.pow(n,2)*(1-n)*3+e.y*Math.pow(n,3)};var a=Utils.measureDistance(l,k);if(a>=g[f]||n>=1){if(h){var m=c+(n-c)/2;var j={x:d.x*Math.pow((1-m),3)+e.x1*m*Math.pow((1-m),2)*3+e.x2*Math.pow(m,2)*(1-m)*3+e.x*Math.pow(m,3),y:d.y*Math.pow((1-m),3)+e.y1*m*Math.pow((1-m),2)*3+e.y2*Math.pow(m,2)*(1-m)*3+e.y*Math.pow(m,3)};this.lineTo(j.x,j.y);this.lineTo(k.x,k.y)}else{this.moveTo(k.x,k.y)}h=!h;l=k;c=n;f++;if(f>=g.length){f=0}}}this.moveTo(e.x,e.y)}else{this.bezierCurveTo(e.x1,e.y1,e.x2,e.y2,e.x,e.y)}this.prePoint=e;if(this.beginPoint==null){this.beginPoint=e}},quadraticCurve:function(e){if(typeof this.webkitLineDash!="undefined"&&typeof this.lineDashOffset=="undefined"&&this.lineWidth!=0){var g=this.webkitLineDash;var d=this.prePoint;var i=Utils.measureDistance(d,e);var n=0;var b=1/i;var l=d;var f=0;var h=true;var c=0;while(n<1){n+=b;if(n>1){n=1}var k={x:d.x*Math.pow((1-n),2)+e.x1*n*(1-n)*2+e.x*Math.pow(n,2),y:d.y*Math.pow((1-n),2)+e.y1*n*(1-n)*2+e.y*Math.pow(n,2)};var a=Utils.measureDistance(l,k);if(a>=g[f]||n>=1){if(h){var m=c+(n-c)/2;var j={x:d.x*Math.pow((1-m),2)+e.x1*m*(1-m)*2+e.x*Math.pow(m,2),y:d.y*Math.pow((1-m),2)+e.y1*m*(1-m)*2+e.y*Math.pow(m,2)};this.lineTo(j.x,j.y);this.lineTo(k.x,k.y)}else{this.moveTo(k.x,k.y)}h=!h;l=k;c=n;f++;if(f>=g.length){f=0}}}this.moveTo(e.x,e.y)}else{this.quadraticCurveTo(e.x1,e.y1,e.x,e.y)}this.prePoint=e;if(this.beginPoint==null){this.beginPoint=e}},close:function(){if(typeof this.webkitLineDash!="undefined"&&typeof this.lineDashOffset=="undefined"&&this.lineWidth!=0){var f=this.webkitLineDash;var c=this.prePoint;var d=this.beginPoint;var h=Utils.measureDistance(c,d);var k=0;var b=1/h;var j=c;var e=0;var g=true;while(k<1){k+=b;if(k>1){k=1}var i={x:(1-k)*c.x+k*d.x,y:(1-k)*c.y+k*d.y};var a=Utils.measureDistance(j,i);if(a>=f[e]||k>=1){if(g){this.lineTo(i.x,i.y)}else{this.moveTo(i.x,i.y)}g=!g;j=i;e++;if(e>=f.length){e=0}}}}this.closePath()}},setLineDash:function(d,c){if(!d.setLineDash){d.setLineDash=function(){}}d.setLineDash(c);d.mozDash=c;d.webkitLineDash=c},renderShapePath:function(f,e,h){var g;if(h&&e.drawIcon){g=e.drawIcon(e.props.w,e.props.h)}else{g=e.getPath()}this.renderPath(f,e,g,h)},renderPath:function(m,o,i,t){for(var q=0;q=Designer.config.panelItemWidth||l.h>=Designer.config.panelItemWidth){if(h.props.w>=h.props.h){l.w=Designer.config.panelItemWidth-h.lineStyle.lineWidth*2;l.h=parseInt(h.props.h/h.props.w*l.w)}else{l.h=Designer.config.panelItemHeight-h.lineStyle.lineWidth*2;l.w=parseInt(h.props.w/h.props.h*l.h)}}h.props=l;i.save();i.lineJoin="round";i.globalAlpha=h.shapeStyle.alpha;var j=(Designer.config.panelItemWidth-l.w)/2;var k=(Designer.config.panelItemHeight-l.h)/2;i.translate(j,k);i.translate(l.w/2,l.h/2);i.rotate(l.angle);i.translate(-(l.w/2),-(l.h/2));this.renderShapePath(i,h,true,function(){Designer.painter.drawPanelItem(n,m)});this.renderMarkers(i,h,true);i.restore()},handleShapeConfigData:function(dataArray,q,attributesJsonArray){var temp1;for(var i=q.dataAttributes.length-1;i>=0;i--){temp1=q.dataAttributes[i];var hor=temp1.horizontal;var ver=temp1.vertical;if(temp1.hasOwnProperty("attributesJsonArray")){var temp2=temp1.dataShowConfig;if(temp2!=undefined){temp2.value=[]}break}}var key=q.name;for(var i=0;i0){for(var j=0;j=0&&(cfgContent+"").trim().length>0){cfgContent="("+temp.attrName+")"+cfgContent}if(attrType=="relation"&&cfgContent.length==0){cfgContent=""}else{if(attrType=="relation"&&cfgContent.length>0){var shapeIdAttrId=q.id+"_"+attrId;var relationData=relationShapeModelObject;var relationValue="";for(var j=0;j0){for(i=0;i=0)){tempCommonShapeConfig.push(commonShapeConfig[i])}}}}if(tempCommonShapeConfig.length>0){dataArray=specialShapeConfig.concat(tempCommonShapeConfig)}else{dataArray=specialShapeConfig}this.handleShapeConfigData(dataArray,q,attributesJsonArray)}}var o=$("#"+q.id);if(o.length==0){var v=$("#designer_canvas");o=$("
").appendTo(v)}var t=Utils.getShapeBox(q);var w=(t.w+20).toScale();var s=(t.h+20).toScale();o.find(".shape_canvas").attr({width:w,height:s});o.css({left:(t.x-10).toScale()+"px",top:(t.y-10).toScale()+"px",width:w,height:s});var n=o.find(".shape_canvas")[0].getContext("2d");n.clearRect(0,0,q.props.w+20,q.props.h+20);n.scale(Designer.config.scale,Designer.config.scale);n.translate(10,10);n.translate(q.props.x-t.x,q.props.y-t.y);n.translate(q.props.w/2,q.props.h/2);n.rotate(q.props.angle);n.translate(-(q.props.w/2),-(q.props.h/2));var x=q.lineStyle;n.globalAlpha=q.shapeStyle.alpha;n.lineJoin="round";this.renderShapePath(n,q);this.renderMarkers(n,q);var m=q.getPath();var p=Utils.copy(m[m.length-1]);p.fillStyle={type:"none"};p.lineStyle={lineWidth:0};var u=[p];this.renderPath(n,q,u);this.renderText(q,t);this.renderDataAttributes(q,t);Designer.painter.renderShapeLink(o,q);Designer.painter.renderSahpeAttachment(o,q);if(q.attributesJsonArray!=undefined&&q.attributesJsonArray.length>0){o.find(".shape_danger").remove();o.find(".shape_regulate").remove();var A=false;var z=false;for(var r in q.attributesJsonArray){var l=q.attributesJsonArray[r];if(l!=undefined&&l.key=="danger"&&l.value!=undefined&&l.value!=""&&relationShapesObject!=undefined){if(typeof l.value=="object"&&l.value.constructor==Array){for(var m=0;m").appendTo(o)}}},fillShape:function(n,i,h){i.save();if(h.type=="solid"){i.fillStyle="rgb("+h.color+")";i.fill()}else{if(h.type=="gradient"){var j;if(h.gradientType=="linear"){j=GradientHelper.createLinearGradient(n,i,h)}else{j=GradientHelper.createRadialGradient(n,i,h)}i.fillStyle=j;i.fill()}else{if(h.type=="image"){var m=h.fileId;var k=$(".shape_img[src='"+m+"']");if(k.length==0){k=$("").appendTo("#shape_img_container");k.bind("load.drawshape",function(){var b=(Designer.config.panelItemWidth-n.props.w)/2;var a=(Designer.config.panelItemHeight-n.props.h)/2;i.translate(b,a);l(k);i.restore();$(this).attr("loaded","1")});k.attr("src",m)}else{if(k.attr("loaded")=="0"){k.bind("load.drawshape",function(){var b=0;var a=0;i.translate(b,a);l(k);i.restore()})}else{l(k)}}}}}i.restore();function l(r){i.save();i.clip();if(h.display=="fit"){var d=r.width();var q=r.height();var a=d/q;var e=n.props.w/n.props.h;if(a>e){var g=n.props.w;var b=0;var s=g/a;var c=n.props.h/2-s/2;i.drawImage(r[0],b,c,g,s)}else{var s=n.props.h;var c=0;var g=s*a;var b=n.props.w/2-g/2;i.drawImage(r[0],b,c,g,s)}}else{if(h.display=="stretch"){i.drawImage(r[0],0,0,n.props.w,n.props.h)}else{if(h.display=="original"){var d=r.width();var q=r.height();var b=n.props.w/2-d/2;var c=n.props.h/2-q/2;i.drawImage(r[0],b,c,d,q)}else{if(h.display=="tile"){var b=0;var d=r.width();var q=r.height();while(be){var s=n.props.h;var c=0;var g=s*a;var b=n.props.w/2-g/2;i.drawImage(r[0],b,c,g,s)}else{var g=n.props.w;var b=0;var s=g/a;var c=n.props.h/2-s/2;i.drawImage(r[0],b,c,g,s)}}}}}}}i.restore()}},renderText:function(z,r){var B=$("#"+z.id);var v=B.find(".text_canvas[forshape="+z.id+"]");if(v.length==0){v=$("").appendTo(B);v.bind("focus",function(){$(this).blur()})}v.attr("readonly","readonly");if(z.text==null||z.text.trim()==""){v.css({height:"0px",width:"0px"}).hide();return}var C=z.fontStyle;var G={"line-height":Math.round(C.size*1.25)+"px","font-size":C.size+"px","font-family":C.fontFamily,"font-weight":C.bold?"bold":"normal","font-style":C.italic?"italic":"normal","text-align":C.textAlign,color:"rgb("+C.color+")","text-decoration":C.underline?"underline":"none",opacity:z.shapeStyle.alpha};v.css(G);v.show();var s=z.getTextBlock();if(z.fontStyle.orientation=="horizontal"){var D={x:s.x+s.w/2,y:s.y+s.h/2};s={x:D.x-s.h/2,y:D.y-s.w/2,w:s.h,h:s.w}}v.css({width:s.w});v.height(0);v.val(z.text);v.scrollTop(99999);var E=v.scrollTop();var y=0;if(C.vAlign=="middle"){y=(s.y+s.h/2-E/2)}else{if(z.fontStyle.vAlign=="bottom"){y=(s.y+s.h-E)}else{y=s.y}}var t={x:s.x+s.w/2,y:y+E/2};var w=z.props.angle;if(w!=0){var H={x:z.props.w/2,y:z.props.h/2};t=Utils.getRotated(H,t,w)}if(C.orientation=="horizontal"){w=(Math.PI*1.5+w)%(Math.PI*2)}var F=Math.round(w/(Math.PI*2)*360);var x="rotate("+F+"deg) scale("+Designer.config.scale+")";var A=s.w;var u=E;v.css({width:A,height:u,left:(t.x+(z.props.x-r.x)+10).toScale()-s.w/2,top:(t.y+(z.props.y-r.y)+10).toScale()-E/2,"-webkit-transform":x,"-ms-transform":x,"-o-transform":x,"-moz-transform":x,transform:x})},calculateTextLines:function(D,i,z){var E=i.w;var w=i.h;var J=[];var H=D.split(/\n/);for(var x=0;xE){for(var I=0;IE){J.push(F);F=j[I]}else{F=p}}}else{var p=F+j;var G=z.measureText(p).width;if(G>E){J.push(F);F=j}else{F=p}}}if(F!=""){J.push(F)}}}return J},renderMarkers:function(n,r,v){if(r.attribute&&r.attribute.markers&&r.attribute.markers.length>0){var u=r.attribute.markers;var i=Schema.config.markerSize;var q=4;if(v){i=10}var t=r.attribute.markerOffset;if(v){t=5}var w=u.length*i+(u.length-1)*q;var p=r.props.w/2-w/2;for(var s=0;s0){for(var n=0;n").appendTo($("#"+i.id));var b=H[0].getContext("2d");var w="12px ";w+=i.fontStyle.fontFamily;b.font=w;var D=b.measureText(y).width;var a=20;if(x!=""){D+=20}var E,F;if(h=="mostleft"){E=-D-2}else{if(h=="leftedge"){E=-D/2}else{if(h=="left"){E=2}else{if(h=="center"){E=(i.props.w-D)/2}else{if(h=="right"){E=i.props.w-D-2;if(h=="rightedge"){E=i.props.w-D/2}else{E=i.props.w+2}}}}}}if(I=="mosttop"){F=-a}else{if(I=="topedge"){F=-a/2}else{if(I=="top"){F=0}else{if(I=="middle"){F=(i.props.h-a)/2}else{if(I=="bottom"){F=i.props.h-a}else{if(I=="bottomedge"){F=i.props.h-a/2}else{F=i.props.h}}}}}}var g={x:E,y:F,w:D,h:a};var G=Utils.getRotatedBox(g,i.props.angle,n);H.attr({width:G.w.toScale(),height:G.h.toScale()});b.font=w;var d=(G.x+(i.props.x-k.x)+10).toScale();var e=(G.y+(i.props.y-k.y)+10).toScale();if(h!="mostleft"||h=="left"||h!="right"){H.css({left:d,top:e})}b.scale(Designer.config.scale,Designer.config.scale);b.translate(G.w/2,G.h/2);b.rotate(i.props.angle);b.translate(-G.w/2,-G.h/2);b.translate((G.w-g.w)/2,(G.h-g.h)/2);b.globalAlpha=i.shapeStyle.alpha;if(c.type=="link"){b.fillStyle="#4183C4"}else{b.fillStyle="#333"}if(c.showType=="text"){b.fillStyle="#696969"}if(c.showType=="attr"){b.fillStyle="#191970"}b.textBaseline="middle";if(D>i.props.w){var tempShapeWidth=i.props.w;if(tempShapeWidth<100){tempShapeWidth=100}H[0].width=tempShapeWidth+10;H[0].height=Math.ceil(D/tempShapeWidth)*10+15;for(var v=0;v1){H.css({left:15,top:e})}if(h=="right"&&I!="mosttop"&&I!="bottom"){d=tempShapeWidth/4;H.css({left:d,top:e})}}else{if(h=="mostleft"){d=-D;H.css({left:d,top:e})}if(h=="right"){d=i.props.w-D;H.css({left:d,top:e})}b.fillText(y,0,a/2)}if(x!=""){if(x.indexOf("&#x")>=0){var icon=x.split("|")[0];var iconColor=x.split("|")[1];b.font="19px awsui-iconfont";icon=eval("('"+icon.replace("&#x","\\u").replace(";","")+"')");b.fillStyle=iconColor;b.fillText(icon,0,a/2);iconCavCode=H[0].toDataURL("image/png");c.iconCavCode=iconCavCode}else{var J="/images/data-attr/"+x+".png";var f=$(".shape_img[src='"+J+"']");if(f.length==0){f=$("").appendTo("#shape_img_container")}if(f.attr("loaded")=="true"){b.drawImage(f[0],g.w-20,0,20,20)}else{f.bind("load.drawshape",function(){$(this).attr("loaded","true");b.drawImage(f[0],g.w-20,0,20,20)})}}}b.beginPath();b.rect(0,0,D,a);b.closePath()}},renderLinker:function(h,k){if(k){h.points=Utils.getLinkerPoints(h)}if(h.linkerType=="curve"||h.linkerType=="broken"){if(!h.points||h.points.length==0){h.points=Utils.getLinkerPoints(h)}}var q=h.points;var o=Utils.copy(h.from);var a=Utils.copy(h.to);if(h.attribute&&h.attribute.collapseBy){$("#"+h.id).hide();return}else{$("#"+h.id).show()}var p=Utils.getEndpointAngle(h,"from");var d=Utils.getEndpointAngle(h,"to");var b=Utils.getLinkerLineStyle(h.lineStyle);l(o,h,b.beginArrowStyle,p);l(a,h,b.endArrowStyle,d);var B=a.x;var x=a.y;var y=o.x;var w=o.y;if(a.xy){y=n.x}}if(n.yw){w=n.y}}}var f={x:B,y:x,w:y-B,h:w-x};var C=$("#"+h.id);if(C.length==0){var g=$("#designer_canvas");C=$("
").appendTo(g)}if(!Model.getShapeById(h.id)){C.css("z-index",Model.orderList.length+1)}var A=C.find(".shape_canvas");A.attr({width:(f.w+20).toScale(),height:(f.h+20).toScale()});C.css({left:(f.x-10).toScale(),top:(f.y-10).toScale(),width:(f.w+20).toScale(),height:(f.h+20).toScale()});var m=A[0].getContext("2d");m.scale(Designer.config.scale,Designer.config.scale);m.translate(10,10);var s=Utils.getLinkerLineStyle(h.lineStyle);m.lineWidth=s.lineWidth; - m.strokeStyle="rgb("+s.lineColor+")";m.fillStyle="rgb("+s.lineColor+")";m.save();var z={x:o.x-f.x,y:o.y-f.y};var c={x:a.x-f.x,y:a.y-f.y};m.save();if(s.lineStyle=="dashed"){this.setLineDash(m,[s.lineWidth*5,s.lineWidth*2])}else{if(s.lineStyle=="dot"){this.setLineDash(m,[s.lineWidth,s.lineWidth*1.5])}else{if(s.lineStyle=="dashdot"){this.setLineDash(m,[s.lineWidth*5,s.lineWidth*2,s.lineWidth,s.lineWidth*2])}}}m.lineJoin="round";m.beginPath();this.actions.move.call(m,z);if(h.linkerType=="curve"){var v=q[0];var u=q[1];var t={x1:v.x-f.x,y1:v.y-f.y,x2:u.x-f.x,y2:u.y-f.y,x:c.x,y:c.y};this.actions.curve.call(m,t)}else{for(var r=0;r").appendTo(m)}var n=l.fontStyle;var p="scale("+Designer.config.scale+")";var r={"line-height":Math.round(n.size*1.25)+"px","font-size":n.size+"px","font-family":n.fontFamily,"font-weight":n.bold?"bold":"normal","font-style":n.italic?"italic":"normal","text-align":n.textAlign,color:"rgb("+n.color+")","text-decoration":n.underline?"underline":"none","-webkit-transform":p,"-ms-transform":p,"-o-transform":p,"-moz-transform":p,transform:p};q.css(r);if(l.text==null||l.text==""){q.hide();return}q.show();var k=l.text.replace(//g,">").replace(/\n/g,"
");q.html(k+"
");var j=this.getLinkerMidpoint(l);var o=m.position();q.css({left:j.x.toScale()-o.left-q.width()/2,top:j.y.toScale()-o.top-q.height()/2})},getLinkerMidpoint:function(z){var w={};if(z.linkerType=="normal"){w={x:0.5*z.from.x+0.5*z.to.x,y:0.5*z.from.y+0.5*z.to.y}}else{if(z.linkerType=="curve"){var d=z.from;var q=z.points[0];var v=z.points[1];var x=z.to; - w={x:d.x*0.125+q.x*0.375+v.x*0.375+x.x*0.125,y:d.y*0.125+q.y*0.375+v.y*0.375+x.y*0.125}}else{var u=[];u.push(z.from);u=u.concat(z.points);u.push(z.to);var r=0;for(var A=1;As){var p=(s-B)/y;w={x:(1-p)*q.x+p*v.x,y:(1-p)*q.y+p*v.y};break}B=t}}}return w},controlStatus:{resizeDir:[],rotatable:true},drawControls:function(m){var n=$("#shape_controls");if(n.length==0){var r=$("#designer_canvas");n=$("
").appendTo(r);n.append("");n.append("
");n.append("
");n.append("
");n.append("
");n.append("
");n.append("
");n.append("
");n.append("
");Designer.op.shapeResizable();n.append("");Designer.op.shapeRotatable();n.append("
");Designer.op.groupShapeChangable();$(".shape_controller").css({"border-color":Designer.config.anchorColor,width:Designer.config.anchorSize-2,height:Designer.config.anchorSize-2})}$(".shape_controller").css({"z-index":Model.orderList.length});$(".change_shape_icon").hide();n.show();var p=0;var i;var q;if(m.length==1){var l=Model.getShapeById(m[0]);i=l.props;p=l.props.angle;q=l.resizeDir;if(l.groupName&&SchemaGroup.groupExists(l.groupName)){$(".change_shape_icon").show()}}else{i=Utils.getControlBox(m);q=["tl","tr","br","bl"]}var t=true;for(var o=0;o1)){q=[]}}this.controlStatus.rotatable=t;this.controlStatus.resizeDir=q;this.rotateControls(i,p);return n},rotateControls:function(R,E){var O=$("#shape_controls");var N=Utils.getRotatedBox(R,E);var i=N.w.toScale();var Q=N.h.toScale();O.css({left:N.x.toScale(),top:N.y.toScale(),width:i,height:Q,"z-index":Model.orderList.length});var P=i+20;var K=Q+20;var S=$("#controls_bounding");S.attr({width:P,height:K});var J=S[0].getContext("2d");J.lineJoin="round";if(this.controlStatus.resizeDir.length==0){J.lineWidth=2;J.strokeStyle=Designer.config.selectorColor;J.globalAlpha=0.8}else{J.lineWidth=1;J.strokeStyle=Designer.config.selectorColor;J.globalAlpha=0.5}J.save();J.clearRect(0,0,P,K);J.translate(P/2,K/2);J.rotate(E);J.translate(-P/2,-K/2);J.translate(9.5,9.5);var W={x:Math.round((R.x-N.x).toScale()),y:Math.round((R.y-N.y).toScale()),w:Math.floor(R.w.toScale()+1),h:Math.floor(R.h.toScale()+1)};J.strokeRect(W.x,W.y,W.w,W.h);J.restore();var A=0-Designer.config.anchorSize/2;var G={};R=Utils.toScale(R);N=Utils.toScale(N);var D={x:(R.x+R.w/2),y:R.y+R.h/2};O.children(".shape_controller").hide();for(var H=0;H=0){U=R.x}else{if(L.indexOf("r")>=0){U=R.x+R.w}else{U=R.x+R.w/2}}if(L.indexOf("t")>=0){V=R.y}else{if(L.indexOf("b")>=0){V=R.y+R.h}else{V=R.y+R.h/2}}var T=Utils.getRotated(D,{x:U,y:V},E);X.css({left:T.x-N.x+A,top:T.y-N.y+A})}var M=Math.PI/8;O.children(".shape_controller").removeClass("s n e w");if(E>M&&E<=M*3){O.children("div[resizeDir=tl]").addClass("n");O.children("div[resizeDir=tr]").addClass("e");O.children("div[resizeDir=br]").addClass("s");O.children("div[resizeDir=bl]").addClass("w");O.children("div[resizeDir=l]").addClass("n w");O.children("div[resizeDir=r]").addClass("s e");O.children("div[resizeDir=b]").addClass("s w");O.children("div[resizeDir=t]").addClass("n e")}else{if(E>M*3&&E<=M*5){O.children("div[resizeDir=tl]").addClass("n e");O.children("div[resizeDir=tr]").addClass("s e");O.children("div[resizeDir=br]").addClass("s w");O.children("div[resizeDir=bl]").addClass("n w");O.children("div[resizeDir=l]").addClass("n");O.children("div[resizeDir=r]").addClass("s");O.children("div[resizeDir=b]").addClass("w");O.children("div[resizeDir=t]").addClass("e")}else{if(E>M*5&&E<=M*7){O.children("div[resizeDir=tl]").addClass("e");O.children("div[resizeDir=tr]").addClass("s");O.children("div[resizeDir=br]").addClass("w");O.children("div[resizeDir=bl]").addClass("n");O.children("div[resizeDir=l]").addClass("n e");O.children("div[resizeDir=r]").addClass("s w");O.children("div[resizeDir=b]").addClass("n w");O.children("div[resizeDir=t]").addClass("s e")}else{if(E>M*7&&E<=M*9){O.children("div[resizeDir=tl]").addClass("s e");O.children("div[resizeDir=tr]").addClass("s w"); - O.children("div[resizeDir=br]").addClass("n w");O.children("div[resizeDir=bl]").addClass("n e");O.children("div[resizeDir=l]").addClass("e");O.children("div[resizeDir=r]").addClass("w");O.children("div[resizeDir=b]").addClass("n");O.children("div[resizeDir=t]").addClass("s")}else{if(E>M*9&&E<=M*11){O.children("div[resizeDir=tl]").addClass("s");O.children("div[resizeDir=tr]").addClass("w");O.children("div[resizeDir=br]").addClass("n");O.children("div[resizeDir=bl]").addClass("e");O.children("div[resizeDir=l]").addClass("s e");O.children("div[resizeDir=r]").addClass("n w");O.children("div[resizeDir=b]").addClass("n e");O.children("div[resizeDir=t]").addClass("s w")}else{if(E>M*11&&E<=M*13){O.children("div[resizeDir=tl]").addClass("s w");O.children("div[resizeDir=tr]").addClass("n w");O.children("div[resizeDir=br]").addClass("n e");O.children("div[resizeDir=bl]").addClass("s e");O.children("div[resizeDir=l]").addClass("s");O.children("div[resizeDir=r]").addClass("n");O.children("div[resizeDir=b]").addClass("e");O.children("div[resizeDir=t]").addClass("w")}else{if(E>M*13&&E<=M*15){O.children("div[resizeDir=tl]").addClass("w");O.children("div[resizeDir=tr]").addClass("n");O.children("div[resizeDir=br]").addClass("e");O.children("div[resizeDir=bl]").addClass("s");O.children("div[resizeDir=l]").addClass("s w");O.children("div[resizeDir=r]").addClass("n e");O.children("div[resizeDir=b]").addClass("s e");O.children("div[resizeDir=t]").addClass("n w")}else{O.children("div[resizeDir=tl]").addClass("n w");O.children("div[resizeDir=tr]").addClass("n e");O.children("div[resizeDir=br]").addClass("s e");O.children("div[resizeDir=bl]").addClass("s w");O.children("div[resizeDir=l]").addClass("w");O.children("div[resizeDir=r]").addClass("e");O.children("div[resizeDir=b]").addClass("s");O.children("div[resizeDir=t]").addClass("n")}}}}}}}if(this.controlStatus.rotatable){var B=O.find(".shape_rotater");B.show();var C={x:R.x+R.w/2,y:R.y-20};var F=Utils.getRotated(D,C,E);B.css({top:F.y-20-N.y,left:F.x-20.5-N.x});var I=B[0].getContext("2d");I.lineWidth=1;I.strokeStyle=Designer.config.selectorColor;I.fillStyle="white";I.save();I.clearRect(0,0,41,40);I.translate(20.5,20);I.rotate(E);I.translate(-20.5,-20);I.beginPath();I.moveTo(20.5,20);I.lineTo(20.5,40);I.stroke();I.beginPath();I.arc(20.5,20,Designer.config.rotaterSize/2,0,Math.PI*2);I.closePath();I.fill();I.stroke();I.restore()}else{O.find(".shape_rotater").hide()}},renderShapeLink:function(o,q){o.find(".shape_link_point").remove();if(q.link){var y=$("").appendTo(o);y.on("mousedown.link",function(I){I.stopPropagation();var c=Model.getShapeById($(this).parent().attr("id"));myshapeLink=c;if(c!=undefined){var k=c.props.x;var j=c.props.y;var B=c.props.w;var H=c.props.h;var b=$("#link-dialog-normal_contextmenu");b.empty();var D=[];for(var G=0;G0&&window.opener){var a=parent.window.$("#appId").val();var K={sid:$("#sid").val(),cmd:"com.actionsoft.apps.coe.pal_pl_repository_designer_viewer_link_perm",uuids:d,filePerms:filePerms};if(window.opener){K.modelType="used"}else{if(a!=undefined&&a!="com.actionsoft.apps.coe.pal"&&a!=""){K.modelType="published"}}awsui.ajax.request({url:"./jd",method:"POST",data:K,async:false,ok:function(L){var N=[];var M=L.data.uuids;for(var e=0;e"+C.name+"";if(role=="owner"){F+='
删除
"}F+="";b.append(F)}}}var g=Utils.getShapeByPosition(k,j,false);var J=Designer.clipboard.elements.length;if(g==null){if(J>0){b.children("li[ac=paste]").show();b.children(".devi_clip").show()}}else{var c=g.shape;b.children("li[ac=cut]").show()}b.css({display:"block","z-index":Model.orderList.length+3,left:k+B+10,top:j+H});$(document).on("mousedown.link",":not(#link-dialog-normal_contextmenu li):not(#link-dialog-normal_contextmenu ul):not(#link-dialog-normal_contextmenu a):not(#link-dialog-normal_contextmenu div)",function(h){if(this.id=="link-dialog-normal_contextmenu"){return false - }b.hide()})}I.stopPropagation()})}},renderSahpeAttachment:function(o,q){o.find(".shape_attachment_point").remove();var selflist=[];var relatelist=[];var reqComplete=false;var reqMethod_renderSahpeAttachment=function(isAsync){$.ajax({method:"POST",async:isAsync,url:"./jd?sid="+encodeURIComponent(sid)+"&cmd=com.actionsoft.apps.coe.pal_processlevel_upfile_load",data:{pl_uuid:ruuid,uuids:q.id},success:function(msg){selflist=msg.data.list;$.ajax({method:"POST",async:isAsync,url:"./jd?sid="+encodeURIComponent(sid)+"&cmd=com.actionsoft.apps.coe.pal_processlevel_relation_upfile_load",data:{pl_uuid:ruuid,shape_uuid:q.id},success:function(msg){relatelist=msg.data.list;reqComplete=true}})}})};reqMethod_renderSahpeAttachment(true);var startTime=new Date().getTime();var intervalClr=window.setInterval(function(){var endTime=new Date().getTime();if(endTime-startTime>5000||reqComplete==true){window.clearInterval(intervalClr);if((selflist&&selflist.length>0)||(relatelist&&relatelist.length>0)){var y=$("
"+""+"
").appendTo(o);y.on("mousedown.attachment",function(I){I.stopPropagation();reqMethod_renderSahpeAttachment(false);var c=Model.getShapeById($(this).parent().attr("id"));myshapeLink=c;if(c!=undefined){var k=c.props.x;var j=c.props.y;var B=c.props.w;var H=c.props.h;var b=$("#attachment-dialog-normal_contextmenu");b.empty();b.append('');for(var s=0;s<2;s++){var attalist=selflist;var attaTypeName="附件";if(s==0){}else{attalist=relatelist;attaTypeName="关联附件"}if(attalist.length>0){b.append('
  • '+attaTypeName+"
  • ");for(var f=0;f'+atta.fileName+"";if(downloadPerm){F+='
    下载
    "}F+="";b.append(F)}}}if(selflist.length==0&&relatelist.length==0){b.append('
  • '+"无附件"+"
  • ")}var g=Utils.getShapeByPosition(k,j,false);var J=Designer.clipboard.elements.length;if(g==null){if(J>0){b.children("li[ac=paste]").show();b.children(".devi_clip").show()}}else{var c=g.shape;b.children("li[ac=cut]").show()}b.css({display:"block","z-index":Model.orderList.length+3,left:k+B+10,top:j+H});$(document).on("mousedown.attachment",":not(#attachment-dialog-normal_contextmenu span):not(#attachment-dialog-normal_contextmenu li):not(#attachment-dialog-normal_contextmenu ul):not(#attachment-dialog-normal_contextmenu a):not(#attachment-dialog-normal_contextmenu div)",function(h){if(this.id=="attachment-dialog-normal_contextmenu"){return false}b.hide()})}I.stopPropagation()})}}},100)},}};var Model={define:{},persistence:{},orderList:[],maxZIndex:0,linkerMap:{map:{},add:function(c,d){if(!this.map[c]){this.map[c]=[]}if(this.map[c].indexOf(d)<0){this.map[c].push(d)}},remove:function(c,d){if(this.map[c]){Utils.removeFromArray(this.map[c],d)}},empty:function(){this.map={}}},groupMap:{map:{},add:function(d,c){this.map[d]=c},push:function(d,c){if(!this.map[d]){this.map[d]=[]}this.map[d].push(c)},remove:function(b){delete this.map[b]},empty:function(){this.map={}}},create:function(l,h,j){var m=Utils.newId();var o=Utils.copy(Schema.shapes[l]);o.id=m;o.props.x=h;o.props.y=j;o.props.zindex=Model.maxZIndex+1;o.props=$.extend(true,{},Schema.shapeDefaults.props,o.props);for(var k=0;k0){for(var n in Model.define.localAttribute[o.name]){i.attributesJsonArray.push(Utils.copy(Model.define.localAttribute[o.name][n]))}}}}Designer.events.push("create",o);return o},add:function(d,c){this.addMulti([d],c)},addMulti:function(f,h){if(typeof h=="undefined"){h=true}var g=[];for(var i=0;i0){for(var x=0;x0){this.updateMulti(z)}MessageSource.commit();return true},updatePage:function(f,h){var e=$.extend(Model.define.page,f);var g={page:Utils.copy(Model.persistence.page),update:Utils.copy(e)};Model.persistence.page=Utils.copy(e);MessageSource.send("updatePage",g);Designer.initialize.initCanvas()},updateLocalAttribute:function(e){var c=$.extend(Model.define.localAttribute,e);var f={localAttribute:Utils.copy(Model.persistence.localAttribute),update:Utils.copy(c)};Model.persistence.localAttribute=Utils.copy(c);MessageSource.send("updateLocalAttribute",f)},getShapeById:function(b){return this.define.elements[b]},getPersistenceById:function(b){return this.persistence.elements[b]},build:function(){this.orderList=[];this.linkerMap.empty();for(var h in Model.define.elements){var g=Model.getShapeById(h);this.orderList.push({id:g.id,zindex:g.props.zindex});if(g.name=="linker"){if(g.from.id!=null){this.linkerMap.add(g.from.id,g.id)}if(g.to.id!=null){this.linkerMap.add(g.to.id,g.id)}}if(g.group){this.groupMap.push(g.group,g.id)}}this.orderList.sort(function i(a,b){return a.zindex-b.zindex});for(var j=0;j0){f=this.orderList[this.orderList.length-1].zindex}this.maxZIndex=f},getShapeLinkers:function(b){return this.linkerMap.map[b]},getGroupShapes:function(b){return this.groupMap.map[b]},changeShape:function(e,f){var d=Schema.shapes[f];e.name=f;e.title=d.shapeName;e.attribute=d.attribute;e.dataAttributes=d.dataAttributes;e.path=d.path;e.textBlock=d.textBlock;e.anchors=d.anchors;Schema.initShapeFunctions(e);Designer.painter.renderShape(e)}};var Utils={getDomById:function(b){return document.getElementById(b)},newId:function(){var c=Math.random();var d=(c+new Date().getTime());return d.toString(16).replace(".","")},getShapeByPosition:function(V,W,ab){var at=[];for(var x=Model.orderList.length-1;x>=0;x--){var S=Model.orderList[x].id;var i=$("#"+S);var am=Model.getShapeById(S);var ak=i.position();var ac=V-ak.left;var ad=W-ak.top;var R={x:ak.left,y:ak.top,w:i.width(),h:i.height()};var y=i.find(".shape_canvas")[0];var av=y.getContext("2d");var aB=this.pointInRect(V,W,R);if(am.name=="linker"){if(!aB){continue}if(ab){continue}var U=10;U=U.toScale();var ae={x:V-U,y:W-U,w:U*2,h:U*2};if(this.pointInRect(am.to.x.toScale(),am.to.y.toScale(),ae)){var al={type:"linker_point",point:"end",shape:am};at.push(al);continue}else{if(this.pointInRect(am.from.x.toScale(),am.from.y.toScale(),ae)){var al={type:"linker_point",point:"from",shape:am};at.push(al);continue}else{var aj=i.find(".text_canvas");var ah=aj.position();var ae={x:ah.left,y:ah.top,w:aj.width(),h:aj.height()};if(this.pointInRect(ac,ad,ae)){var al={type:"linker_text",shape:am};at.push(al);continue}U=7;U=U.toScale();var ag=this.pointInLinker({x:V.restoreScale(),y:W.restoreScale()},am,U);if(ag>-1){var al={type:"linker",shape:am,pointIndex:ag};at.push(al);continue}}}}else{if(aB&&am.locked&&!ab){if(av.isPointInPath(ac,ad)){var al={type:"shape",shape:am};at.push(al)}continue}var U=7;if(aB){U=U.toScale();var ae={x:V-U,y:W-U,w:U*2,h:U*2};var Z={x:am.props.x+am.props.w/2,y:am.props.y+am.props.h/2};var ao=am.getAnchors();var al=null;for(var aw=0;aw0){var ai=af.position();var X=ac-ai.left;var Y=ad-ai.top;var ar=af[0].getContext("2d");if(ar.isPointInPath(X,Y)){al={type:"dataAttribute",shape:am,attribute:ap};break}}}}if(al!=null){at.push(al);continue}}if(!aB){continue}if(av.isPointInPath(ac,ad)){if(ab){var ao=am.getAnchors();if(ao&&ao.length){var al={type:"shape",shape:am};at.push(al);continue}else{continue}}else{var al={type:"shape",shape:am};at.push(al);continue}}else{if(!am.attribute||typeof am.attribute.linkable=="undefined"||am.attribute.linkable){var an=Utils.getPointAngle(S,V.restoreScale(),W.restoreScale(),U);if(an!=null){var al=null;var aC={angle:an};for(var aa=1;aa<=U;aa++){if(an==0){aC.x=ac+aa;aC.y=ad}else{if(an1&&ab){al=at[0]}else{if(at.length>1){var ax=at[0];if(ax.type=="bounding"&&ax.type!="linker_point"&&ax.type!="linker"){return ax}var ag=[];var aA=[];var aq=[];for(var x=0;x0&&aA.length>0){for(var x=0;x0){aA.sort(function az(a,b){if(Utils.isSelected(a.shape.id)&&!Utils.isSelected(b.shape.id)){return -1}else{if(!Utils.isSelected(a.shape.id)&&Utils.isSelected(b.shape.id)){return 1}else{return b.shape.props.zindex-a.shape.props.zindex}}});al=aA[0]}if(al==null&&ag.length>0){ag.sort(function az(a,b){if(Utils.isSelected(a.shape.id)&&!Utils.isSelected(b.shape.id)){return -1}else{if(!Utils.isSelected(a.shape.id)&&Utils.isSelected(b.shape.id)){return 1}else{return b.shape.props.zindex-a.shape.props.zindex}}});al=ag[0]}if(al==null){al=at[0]}}}return al},checkCross:function(k,m,n,o){var j=false;var l=(m.x-k.x)*(o.y-n.y)-(m.y-k.y)*(o.x-n.x);if(l!=0){var p=((k.y-n.y)*(o.x-n.x)-(k.x-n.x)*(o.y-n.y))/l;var d=((k.y-n.y)*(m.x-k.x)-(k.x-n.x)*(m.y-k.y))/l;if((p>=0)&&(p<=1)&&(d>=0)&&(d<=1)){j=true}}return j},rectCross:function(m,n){var q=m.x;var o=m.x+m.w;var k=m.y;var s=m.y+m.h;var r=n.x;var p=n.x+n.w;var l=n.y;var t=n.y+n.h;if(((q=f.x&&d<=f.x+f.w&&e>=f.y&&e<=f.y+f.h){return true}return false},pointInLinker:function(q,t,s){var o=this.getLinkerLinePoints(t);var v={x:q.x-s,y:q.y};var w={x:q.x+s,y:q.y};var x={x:q.x,y:q.y-s};var m={x:q.x,y:q.y+s};for(var u=1;uj.x2){j.x2=m.x+m.w}if(j.y2==null||m.y+m.h>j.y2){j.y2=m.y+m.h}}var n={x:j.x1,y:j.y1,w:j.x2-j.x1,h:j.y2-j.y1}; - return n},getShapesBounding:function(h){var i={x1:null,y1:null,x2:null,y2:null};for(var l=0;li.x2){i.x2=k.x+k.w}if(i.y2==null||k.y+k.h>i.y2){i.y2=k.y+k.h}}var j={x:i.x1,y:i.y1,w:i.x2-i.x1,h:i.y2-i.y1};return j},getShapeContext:function(c){var d=Utils.getDomById(c);return d.getElementsByTagName("canvas")[0].getContext("2d")},selectIds:[],selectShape:function(s,w){if(typeof s=="string"){var o=s;s=[];s.push(o)}if(s.length<=0){return}var r=Utils.mergeArray([],s);for(var u=0;u0&&!i){var v=Designer.painter.drawControls(z)}if(typeof w=="undefined"){w=true}if(this.selectCallback&&w){this.selectCallback()}Designer.events.push("selectChanged");this.showLinkerCursor()},selectCallback:null,unselect:function(){var h=this.selectIds;this.selectIds=[];for(var e=0;e=0&&!this.isLocked(b)){return true}return false},isLocked:function(b){if(Model.getShapeById(b).locked){return true}else{return false}},linkerCursorTimer:null,showLinkerCursor:function(){this.hideLinkerCursor();var C=Utils.getSelectedIds();if(C.length==1){var J=Model.getShapeById(C[0]);if(J.name!="linker"){var H=Model.linkerMap.map[J.id];if(H&&H.length){var B=[];for(var z=0;z").appendTo("#designer_canvas");var m=j.linker;var i=(m.lineStyle.lineWidth+2).toScale();if(i<5){i=5}var n=i/2;j.half=n;j.dom=k;k.css({width:i,height:i,"-webkit-border-radius":n,"-moz-border-radius":n,"-ms-border-radius":n,"-o-border-radius":n,"border-radius":n,"z-index":$("#"+m.id).css("z-index")})}this.linkerCursorTimer=setInterval(function(){for(var w=0;w=c.maxT){c.t=0;c.dom.show()}var y=c.t;if(t.linkerType=="broken"){for(var v=1; - v=b.t&&y=1){c.dom.hide()}}},30)},hideLinkerCursor:function(){if(this.linkerCursorTimer){clearInterval(this.linkerCursorTimer)}$(".linker_cursor").remove()},showLinkerControls:function(){this.hideLinkerControls();var e=Utils.getSelectedIds();var h=null;if(e.length==1){var f=Model.getShapeById(e[0]);if(f.name=="linker"&&f.linkerType=="curve"){h=f}}if(h==null){return}function g(r,s){var t=null;var b=null;if(s=="from"){t=r.from;b=r.points[0]}else{t=r.to;b=r.points[1]}var q=Utils.measureDistance(t,b).toScale()-6;var c={x:(0.5*t.x+0.5*b.x).toScale(),y:(0.5*t.y+0.5*b.y).toScale()};var u=Utils.getAngle(t,b)+Math.PI/2;var a=$("
    ").appendTo("#designer_canvas");var d=$("
    ").appendTo("#designer_canvas");var v=Math.round(u/(Math.PI*2)*360);var p="rotate("+v+"deg)";a.css({left:c.x,top:c.y-q/2,height:q,"z-index":Model.orderList.length,"-webkit-transform":p,"-ms-transform":p,"-o-transform":p,"-moz-transform":p,transform:p});d.css({left:b.x.toScale()-4,top:b.y.toScale()-4,"z-index":Model.orderList.length});d.attr("ty",s);d.unbind().bind("mousedown",function(j){r=Model.getShapeById(r.id);var i=null;if(s=="from"){i=r.points[0]}else{i=r.points[1]}j.stopPropagation();d.addClass("moving");Designer.op.changeState("changing_curve");$(document).bind("mousemove.change_curve",function(l){var k=Utils.getRelativePos(l.pageX,l.pageY,$("#designer_canvas"));i.x=k.x;i.y=k.y;Designer.painter.renderLinker(r);Model.define.elements[r.id]=r;Utils.showLinkerControls();$(".linker_control_point[ty="+d.attr("ty")+"]").addClass("moving");$(document).unbind("mouseup.changed_curve").bind("mouseup.changed_curve",function(m){Model.update(r);$(document).unbind("mouseup.changed_curve")})});$(document).unbind("mouseup.change_curve").bind("mouseup.change_curve",function(k){$(document).unbind("mouseup.change_curve");$(document).unbind("mousemove.change_curve");$(".linker_control_point").removeClass("moving");Designer.op.resetState()})});return d}g(h,"from");g(h,"to")},hideLinkerControls:function(){$(".linker_control_line").remove();$(".linker_control_point").remove()},showAnchors:function(n){if($(".shape_contour[forshape="+n.id+"]").length>0){return}var q=$("
    ").appendTo($("#designer_canvas"));q.css({left:n.props.x.toScale(),top:n.props.y.toScale(),"z-index":Model.orderList.length+1});if(!Utils.isSelected(n.id)){q.addClass("hovered_contour")}var t=Designer.config.anchorSize-2;var u={"border-color":Designer.config.anchorColor,"border-radius":Designer.config.anchorSize/2,width:t,height:t};var v=n.getAnchors();var o={x:n.props.w/2,y:n.props.h/2};var r=n.props.angle;for(var m=0;m").appendTo(q);var s=this.getRotated(o,p,r);u.left=s.x.toScale()-Designer.config.anchorSize/2;u.top=s.y.toScale()-Designer.config.anchorSize/2;l.css(u)}},hideAnchors:function(){$(".hovered_contour").remove()},removeAnchors:function(){$(".shape_contour").remove()},showLockers:function(s){var m=$("#"+s.id);var q=m.position();function t(){var c=$("").appendTo(m);var a=c[0].getContext("2d");a.strokeStyle="#777";a.lineWidth=1;var b=9;a.beginPath();a.moveTo(2,2);a.lineTo(b,b);a.moveTo(2,b);a.lineTo(b,2);a.stroke();return c}function r(b){var a=t();a.css({left:b.x.toScale()-q.left-5,top:b.y.toScale()-q.top-5})}if(s.name!="linker"){var u=s.props;var v={x:u.x+u.w/2,y:u.y+u.h/2};var l=this.getRotated(v,{x:u.x,y:u.y},s.props.angle);r(l);var n=this.getRotated(v,{x:u.x+u.w,y:u.y},s.props.angle);r(n);var o=this.getRotated(v,{x:u.x+u.w,y:u.y+u.h},s.props.angle);r(o);var p=this.getRotated(v,{x:u.x,y:u.y+u.h},s.props.angle);r(p)}else{r(s.from);r(s.to)}},removeLockers:function(){$(".shape_locker").remove()},measureDistance:function(g,h){var e=h.y-g.y;var f=h.x-g.x;return Math.sqrt(Math.pow(e,2)+Math.pow(f,2))},removeFromArray:function(f,d){var e=f.indexOf(d);if(e>=0){f.splice(e,1)}return f},addToArray:function(f,d){var e=f.indexOf(d);if(e<0){f.push(d)}return f},mergeArray:function(e,f){for(var h=0;h=d/4&&c=d/4*3&&c=d/4*5&&c=W.x-K&&V.x<=W.x+W.w+K){var P;if(V.xaa.y){X=y;V=aa;S=false}else{X=aa;V=y;S=true}var W=Model.getShapeById(X.id).props;var E=Model.getShapeById(V.id).props;if(V.x>=W.x-K&&V.x<=W.x+W.w+K){var Q=X.y+K;var P;if(V.xaa.x){X=y;V=aa;S=false}else{X=aa;V=y;S=true}var W=Model.getShapeById(X.id).props;var E=Model.getShapeById(V.id).props;if(V.y>=W.y-K&&V.y<=W.y+W.h+K){var P=X.x+K;var Q;if(V.y=W.y-K&&V.y<=W.y+W.h+K){var P=X.x-K;var Q;if(V.y=W.x&&E.x<=ad){var x=W.x+W.w/2;if(V.xU?ad+K:U+K}if(E.yX.x){var P=X.x+R/2;O.push({x:P,y:X.y});O.push({x:P,y:V.y})}else{var F=W.y+W.h;var N=E.y+E.h;var P=X.x+K;var Q;if(N>=W.y&&E.y<=F){var x=W.y+W.h/2;if(V.yN?F+K:N+K}if(E.x+E.w>X.x){P=E.x+E.w+K}}else{if(V.yX.x&&V.y>X.y){O.push({x:V.x,y:X.y})}else{if(V.x>X.x&&E.x>X.x){var P;if(E.x-X.xW.y+W.h){var F=W.y+W.h;var P=X.x+K;var Q;if(V.y-FX.x){P=U+K}else{P=X.x+K}var Q;if(V.yX.y){O.push({x:V.x,y:X.y})}else{if(V.x=X.x&&V.y>W.y+W.h){var F=W.y+W.h;var P=X.x-K;var Q;if(V.y-FX.x&&V.yX.x&&E.x>X.x){var P;if(E.x-X.xX.x){P=U+K}else{P=X.x+K}var Q;if(V.y>W.y+W.h){Q=V.y+K}else{Q=W.y+W.h+K}O.push({x:P,y:X.y});O.push({x:P,y:Q});O.push({x:V.x,y:Q})}}}}else{if((ab==3&&ac==4)||(ab==4&&ac==3)){if(ab==4){X=y;V=aa;S=false}else{X=aa;V=y;S=true}var W=Model.getShapeById(X.id).props;var E=Model.getShapeById(V.id).props;var U=E.x+E.w;if(V.x=X.x&&V.yW.y+W.h){Q=V.y+K}else{Q=W.y+W.h+K}O.push({x:P,y:X.y});O.push({x:P,y:Q});O.push({x:V.x,y:Q})}}}}}}}}}}}}}if(S){O.reverse()}}else{if(y.id!=null||aa.id!=null){var X,V,S,M;if(y.id!=null){X=y;V=aa;S=false;M=y.angle}else{X=aa;V=y;S=true;M=aa.angle}var Z=Model.getShapeById(X.id).props;if(M>=J/4&&M=I){O.push({x:X.x,y:V.y})}else{var x=I/2;O.push({x:X.x,y:X.y-x});O.push({x:V.x,y:X.y-x})}}else{O.push({x:X.x,y:X.y-K});if(R>=I){if(V.x>=Z.x-K&&V.x<=Z.x+Z.w+K){var L=Z.x+Z.w/2;if(V.x=Z.x-K&&V.x<=Z.x+Z.w+K){var L=Z.x+Z.w/2;if(V.x=J/4*3&&MX.x){if(R>=I){var x=R/2;O.push({x:X.x+x,y:X.y});O.push({x:X.x+x,y:V.y})}else{O.push({x:V.x,y:X.y})}}else{O.push({x:X.x+K,y:X.y});if(R>=I){if(V.y>=Z.y-K&&V.y<=Z.y+Z.h+K){var L=Z.y+Z.h/2;if(V.y=Z.y-K&&V.y<=Z.y+Z.h+K){var L=Z.y+Z.h/2;if(V.y=J/4*5&&MX.y){if(R>=I){O.push({x:X.x,y:V.y})}else{var x=I/2;O.push({x:X.x,y:X.y+x});O.push({x:V.x,y:X.y+x})}}else{O.push({x:X.x,y:X.y+K});if(R>=I){if(V.x>=Z.x-K&&V.x<=Z.x+Z.w+K){var L=Z.x+Z.w/2;if(V.x=Z.x-K&&V.x<=Z.x+Z.w+K){var L=Z.x+Z.w/2;if(V.x=I){var x=R/2;O.push({x:X.x-x,y:X.y});O.push({x:X.x-x,y:V.y})}else{O.push({x:V.x,y:X.y})}}else{O.push({x:X.x-K,y:X.y});if(R>=I){if(V.y>=Z.y-K&&V.y<=Z.y+Z.h+K){var L=Z.y+Z.h/2;if(V.y=Z.y-K&&V.y<=Z.y+Z.h+K){var L=Z.y+Z.h/2;if(V.y=I){var x=(aa.x-y.x)/2;O.push({x:y.x+x,y:y.y});O.push({x:y.x+x,y:aa.y})}else{var x=(aa.y-y.y)/2;O.push({x:y.x,y:y.y+x});O.push({x:aa.x,y:y.y+x})}}}}else{if(G.linkerType=="curve"){var y=G.from;var aa=G.to;var Y=this.measureDistance(y,aa);var T=Y*0.4;function H(e,d){if(e.id!=null){return{x:e.x-T*Math.cos(e.angle),y:e.y-T*Math.sin(e.angle)}}else{var c=Math.abs(e.y-d.y);var f=Math.abs(e.x-d.x);var b=Math.atan(c/f);var a={};if(e.x<=d.x){a.x=e.x+T*Math.cos(b)}else{a.x=e.x-T*Math.cos(b)}if(e.y<=d.y){a.y=e.y+T*Math.sin(b)}else{a.y=e.y-T*Math.sin(b) - }return a}}O.push(H(y,aa));O.push(H(aa,y))}}return O},getLinkerLinePoints:function(i){var f=[];if(i.linkerType!="curve"){f.push(i.from);f=f.concat(i.points)}else{var j=0.05;var g=0;while(g<=1){var h={x:(1-g)*(1-g)*(1-g)*i.from.x+3*(1-g)*(1-g)*g*i.points[0].x+3*(1-g)*g*g*i.points[1].x+g*g*g*i.to.x,y:(1-g)*(1-g)*(1-g)*i.from.y+3*(1-g)*(1-g)*g*i.points[0].y+3*(1-g)*g*g*i.points[1].y+g*g*g*i.to.y};f.push(h);g+=j}}f.push(i.to);return f},getLinkerBox:function(l){var i=this.getLinkerLinePoints(l);var o=i[0].x;var p=i[0].y;var q=i[0].x;var r=i[0].y;for(var n=0;nq){q=k.x}}if(k.yr){r=k.y}}}var m={x:o,y:p,w:q-o,h:r-p};return m},getShapeBox:function(e){var d=e.props;var f=e.props.angle;return this.getRotatedBox(d,f)},getRotatedBox:function(p,r,u){if(r==0){return p}else{if(!u){u={x:p.x+p.w/2,y:p.y+p.h/2}}var l=this.getRotated(u,{x:p.x,y:p.y},r);var m=this.getRotated(u,{x:p.x+p.w,y:p.y},r);var n=this.getRotated(u,{x:p.x+p.w,y:p.y+p.h},r);var o=this.getRotated(u,{x:p.x,y:p.y+p.h},r);var q=Math.min(l.x,m.x,n.x,o.x);var t=Math.max(l.x,m.x,n.x,o.x);var s=Math.min(l.y,m.y,n.y,o.y);var v=Math.max(l.y,m.y,n.y,o.y);return{x:q,y:s,w:t-q,h:v-s}}},getRotated:function(n,h,j){var k=this.measureDistance(n,h);if(k==0||j==0){return h}var m=Math.atan(Math.abs(h.x-n.x)/Math.abs(n.y-h.y));if(h.x>=n.x&&h.y>=n.y){m=Math.PI-m}else{if(h.x<=n.x&&h.y>=n.y){m=Math.PI+m}else{if(h.x<=n.x&&h.y<=n.y){m=Math.PI*2-m}}}m=m%(Math.PI*2);var l=(m+j)%(Math.PI*2);var i={x:n.x+Math.sin(l)*k,y:n.y-Math.cos(l)*k};return i},getShapeAnchorInLinker:function(H){var A=H.getAnchors();var G=[];var t={x:H.props.x+H.props.w/2,y:H.props.y+H.props.h/2};for(var v=0;v=0;w--){var z=Model.orderList[w].id;var i=Model.getShapeById(z);if(i.name!="linker"){continue}var B=i;var u=null;F=3;for(var v=0;v-1){if(u==null){u={linker:B,anchors:[],type:"line"}}u.anchors.push(J)}}}if(u!=null){C.push(u)}}return C},getEndpointAngle:function(m,k){var i;if(k=="from"){i=m.from}else{i=m.to}var n;if(m.linkerType=="normal"){if(k=="from"){n=m.to}else{n=m.from}}else{if(m.linkerType=="broken"){if(k=="from"){n=m.points[0]}else{n=m.points[m.points.length-1]}}else{var l=12;var h;var j=Utils.measureDistance(m.from,m.to);if(k=="from"){h=l/j}else{h=1-l/j}n={x:(1-h)*(1-h)*(1-h)*m.from.x+3*(1-h)*(1-h)*h*m.points[0].x+3*(1-h)*h*h*m.points[1].x+h*h*h*m.to.x,y:(1-h)*(1-h)*(1-h)*m.from.y+3*(1-h)*(1-h)*h*m.points[0].y+3*(1-h)*h*h*m.points[1].y+h*h*h*m.to.y}}}return this.getAngle(n,i)},getAngle:function(f,e){var d=Math.atan(Math.abs(f.y-e.y)/Math.abs(f.x-e.x));if(e.x<=f.x&&e.y>f.y){d=Math.PI-d}else{if(e.x=f.x&&e.y0){for(var o=0;o0){for(var e=0;e=0;c--){var f=Model.orderList[c].id; - if(e.id!=f&&!Utils.isSelected(f)&&l.indexOf(f)<0){var d=Model.getShapeById(f);if(!d.attribute||typeof d.attribute.container=="undefined"||d.attribute.container==false){if(!Utils.isFamilyShape(d,e)){var a=Utils.getShapeBox(d);if(Utils.rectInRect(a,e.props)){b.push(d);l.push(f)}}}}}return b}return h},getAttachedShapes:function(p){var r=[];for(var m=0;m=0;o--){var i=Model.orderList[o].id;var n=Model.getShapeById(i);if(n.attachTo==j.id&&!Utils.isSelected(i)&&r.indexOf(i)<0){q.push(n)}}l=l.concat(q)}}return l},copy:function(b){return $.extend(true,{},b)},rangeChildren:function(s){var v=[];if(s.children&&s.children.length>0){if(s.name=="verticalPool"){var h=[];var y=[];for(var u=0;u-1){continue}v.push(m[i])}}x.props.x=q;Designer.painter.renderShape(x);v.push(x);q+=x.props.w}y.sort(function(a,b){return a.props.y-b.props.y});var r=s.props.y+40;for(var u=0;u-1){continue}v.push(m[i])}}x.props.y=r;Designer.painter.renderShape(x);v.push(x);r+=x.props.h}y.sort(function(a,b){return a.props.x-b.props.x});var q=s.props.x+40;for(var u=0;u=0;c--){var g=Model.orderList[c].id;var d=Model.getShapeById(g);if(d.attribute&&d.attribute.collapseBy==f.id&&a.indexOf(g)<0){h.push(d)}}k=k.concat(h)}}return k},getCollapsedShapesById:function(e){var a=[];for(var c=Model.orderList.length-1;c>=0;c--){var d=Model.orderList[c].id;var b=Model.getShapeById(d);if(b.attribute&&b.attribute.collapseBy==e){a.push(b)}}return a},getShapeLineStyle:function(a,b){if(b==false||!Model.define.theme||!Model.define.theme.shape){return $.extend({},Schema.shapeDefaults.lineStyle,a)}else{return $.extend({},Schema.shapeDefaults.lineStyle,Model.define.theme.shape.lineStyle,a)}},getLinkerLineStyle:function(a,b){if(b==false||!Model.define.theme||!Model.define.theme.linker){return $.extend({},Schema.linkerDefaults.lineStyle,a)}else{return $.extend({},Schema.linkerDefaults.lineStyle,Model.define.theme.linker.lineStyle,a)}},getShapeFontStyle:function(b,a){if(a==false||!Model.define.theme||!Model.define.theme.shape){return $.extend({},Schema.shapeDefaults.fontStyle,b)}else{return $.extend({},Schema.shapeDefaults.fontStyle,Model.define.theme.shape.fontStyle,b)}},getLinkerFontStyle:function(b,a){if(a==false||!Model.define.theme||!Model.define.theme.linker){return $.extend({},Schema.linkerDefaults.fontStyle,b)}else{return $.extend({},Schema.linkerDefaults.fontStyle,Model.define.theme.linker.fontStyle,b)}},getShapeFillStyle:function(a,b){if(b==false||!Model.define.theme||!Model.define.theme.shape){return $.extend({},Schema.shapeDefaults.fillStyle,a)}else{return $.extend({},Schema.shapeDefaults.fillStyle,Model.define.theme.shape.fillStyle,a)}},containsChinese:function(a){if(escape(a).indexOf("%u")>=0){return true}else{return false}},filterXss:function(a){a=a.toString();a=a.replace(//g,">");a=a.replace(/%3E/g,">");a=a.replace(/'/g,"'");a=a.replace(/"/g,""");return a}};var GradientHelper={createLinearGradient:function(m,j,k){var q=m.props; - var p;var n;var o;if(q.w>q.h){p={x:0,y:q.h/2};n={x:q.w,y:q.h/2};o=(k.angle+Math.PI/2)%(Math.PI*2)}else{p={x:q.w/2,y:0};n={x:q.w/2,y:q.h};o=k.angle}if(o!=0){var r={x:q.w/2,y:q.h/2};p=Utils.getRotated(r,p,o);n=Utils.getRotated(r,n,o);if(p.x<0){p.x=0}if(p.x>m.props.w){p.x=m.props.w}if(p.y<0){p.y=0}if(p.y>m.props.h){p.y=m.props.h}if(n.x<0){n.x=0}if(n.x>m.props.w){n.x=m.props.w}if(n.y<0){n.y=0}if(n.y>m.props.h){n.y=m.props.h}}var l=j.createLinearGradient(p.x,p.y,n.x,n.y);l.addColorStop(0,"rgb("+k.beginColor+")");l.addColorStop(1,"rgb("+k.endColor+")");return l},createRadialGradient:function(l,h,g){var i=l.props;var k=i.h;if(i.w255){p=255}var g=Math.round(o+(255-o)/255*m);if(g>255){g=255}var b=Math.round(l+(255-l)/255*m);if(b>255){b=255}return p+","+g+","+b},getDarkerColor:function(q){var m=60;var n=q.split(",");var r=parseInt(n[0]);var o=parseInt(n[1]);var l=parseInt(n[2]);var p=Math.round(r-r/255*m);if(p<0){p=0}var g=Math.round(o-o/255*m);if(g<0){g=0}var b=Math.round(l-l/255*m);if(b<0){b=0}return p+","+g+","+b}};var MessageSource={batchSize:0,messages:[],withUndo:true,withMessage:true,withDock:true,undoStack:{stack:[],push:function(c,d){this.stack.push(c);if(typeof d=="undefined"){d=true}if(d){MessageSource.redoStack.stack=[]}Designer.events.push("undoStackChanged",this.stack.length)},pop:function(){var c=this.stack.length;if(c==0){return null}var d=this.stack[c-1];this.stack.splice(c-1,1);MessageSource.redoStack.push(d);Designer.events.push("undoStackChanged",this.stack.length);return d}},redoStack:{stack:[],push:function(b){this.stack.push(b);Designer.events.push("redoStackChanged",this.stack.length)},pop:function(){var c=this.stack.length;if(c==0){return null}var d=this.stack[c-1];this.stack.splice(c-1,1);MessageSource.undoStack.push(d,false);Designer.events.push("redoStackChanged",this.stack.length);return d}},beginBatch:function(){this.batchSize++},commit:function(){this.batchSize--;this.submit()},submit:function(){if(this.batchSize==0&&this.messages.length!=0){if(this.withDock){Dock.update(true)}if(this.withMessage==false){this.messages=[];return}if(this.withUndo){this.undoStack.push(this.messages)}if(chartId!=""){var c=JSON.stringify(this.messages);if(role!="trial"){$("#saving_tip").text("<@i18n resource='diagraming.saving'/>")}var d={action:"command",messages:c,ignore:"messages",name:userName};CLB.send(d,function(){if(role!="trial"){$("#saving_tip").text("<@i18n resource='diagraming.saved'/>")}})}this.messages=[]}},send:function(c,d){this.messages.push({action:c,content:d});this.submit()},receive:function(b){this.doWithoutMessage(function(){MessageSource.executeMessages(b,true);Utils.showLinkerControls();Utils.showLinkerCursor()})},undo:function(){var b=this.undoStack.pop();if(b==null){return}this.doWithoutUndo(function(){MessageSource.beginBatch();for(var k=0;k

    "+e.text+"

    ")}$(".panel_title").unbind().bind("click",function(){$(this).parent().toggleClass("panel_collapsed")});for(var u in Schema.shapes){var g=Schema.shapes[u];if(g.attribute.visible&&g.category!="standard"){if((g.category=="process_bpmn2"||g.category=="process.bpmn2"||g.category=="bpmn")&&checkRunningTimeShape(g)){continue}if(!g.groupName){c(g)}else{var h=SchemaGroup.getGroup(g.groupName);if(h[0]==u){c(g,g.groupName)}}}}function c(i,n){i=Utils.copy(i);var m="
    ";var o=$(m).appendTo("#panel_"+i.category);if(n){o.append("
    ")}var l=o.children()[0];o.bind("mouseenter",function(){if($(this).hasClass("readonly")){return}var t=$("#shape_thumb");t.children("div").text(i.title);var s=t.children("canvas")[0].getContext("2d");var q={x:0,y:0,w:i.props.w,h:i.props.h,angle:i.props.angle};var C=160;var r=160;s.clearRect(0,0,C,r);if(i.props.w>=i.props.h){if(i.props.w>C){q.w=C;q.h=parseInt(i.props.h/i.props.w*q.w)}}else{if(i.props.h>r){q.h=r;q.w=parseInt(i.props.w/i.props.h*q.h)}}t.children("canvas").attr({width:C+20,height:q.h+20});t.show();i.props=q;s.save();if(i.name!="text"&&i.name!="umlText"){s.globalAlpha=i.shapeStyle.alpha;var w=(C+20-q.w)/2;var v=10;s.translate(w,v);s.translate(q.w/2,q.h/2);s.rotate(q.angle);s.translate(-(q.w/2),-(q.h/2));Designer.painter.renderShapePath(s,i,true);Designer.painter.renderMarkers(s,i,true)}else{s.translate(C/2+10,q.h/2+10);s.textBaseline="middle";s.textAlign="center";var p="";if(i.fontStyle.italic){p+="italic "}else{p+="normal "}if(i.fontStyle.bold){p+="bold "}else{p+="normal "}p+=i.fontStyle.size+"pt ";p+=i.fontStyle.fontFamily;s.font=p;s.fillStyle="rgb("+i.fontStyle.color+")";s.fillText(i.text,0,0)}s.restore();var x=o.offset().top-$("#designer_header").outerHeight()+o.height()/2-t.outerHeight()/2;if(x<5){x=5}else{if(x+t.outerHeight()>$("#designer_viewport").height()-5){x=$("#designer_viewport").height()-5-t.outerHeight()}}t.css("top",x)}).bind("mouseleave",function(){$("#shape_thumb").hide()});Designer.painter.drawPanelItem(l,i.name)}a();function a(){$(".panel_box").die().live("mousedown",function(i){var q=$(this);if(q.hasClass("readonly")){return}var l=q.attr("shapeName");var s=[];Designer.op.changeState("creating_from_panel");var m=null;var r=null;var p=$("#designer_canvas");var n=k(l);$("#designer").bind("mousemove.creating",function(t){f(n,t)});$("#canvas_container").bind("mousemove.create",function(I){var z=Utils.getRelativePos(I.pageX,I.pageY,p);if(m==null){m=b(l,z.x,z.y);r=$("#"+m.id);r.attr("class","shape_box_creating")}r.css({left:z.x-r.width()/2+"px",top:z.y-r.height()/2+"px","z-index":Model.orderList.length});m.props.x=z.x.restoreScale()-m.props.w/2;m.props.y=z.y.restoreScale()-m.props.h/2;var w=m.props;var v=Designer.op.snapLine(w,[m.id],true,m);if(v.attach){m.attachTo=v.attach.id}else{delete m.attachTo}r.css({left:(m.props.x-10).toScale()+"px",top:(m.props.y-10).toScale()+"px","z-index":Model.orderList.length});s=Utils.getShapeAnchorInLinker(m);Designer.op.hideLinkPoint();for(var A=0;A").appendTo("#designer");i=$("").appendTo(m)}m.css({left:"0px",top:"0px",width:$(".panel_container").width(),height:$("#shape_panel").outerHeight()});Designer.painter.drawPanelItem(i[0],l);return i}function f(i,l){$("#creating_shape_container").show();var m=Utils.getRelativePos(l.pageX,l.pageY,$("#creating_shape_container"));i.css({left:m.x-Designer.config.panelItemWidth/2,top:m.y-Designer.config.panelItemHeight/2})}function b(n,p,o){var m=Utils.newId();var i=Schema.shapes[n];var r=p.restoreScale()-i.props.w/2;var q=o.restoreScale()-i.props.h/2;var l=Model.create(n,r,q);Designer.painter.renderShape(l);return l}}},hotkey:{init:function(){var a=null;$(document).unbind("keydown.hotkey").bind("keydown.hotkey",function(g){if(g.ctrlKey&&g.keyCode==65){Designer.selectAll();g.preventDefault()}else{if(g.keyCode==46||g.keyCode==8){Designer.op.removeShape();g.preventDefault()}else{if(g.ctrlKey&&g.keyCode==90){MessageSource.undo();g.preventDefault()}else{if(g.ctrlKey&&g.keyCode==89){MessageSource.redo();g.preventDefault()}else{if(g.ctrlKey&&!g.shiftKey&&g.keyCode==67){Designer.clipboard.copy();g.preventDefault()}else{if(g.ctrlKey&&g.keyCode==88){Designer.clipboard.cut();g.preventDefault()}else{if(g.ctrlKey&&g.keyCode==86){Designer.clipboard.paste();g.preventDefault()}else{if(g.ctrlKey&&g.keyCode==68){Designer.clipboard.duplicate();g.preventDefault()}else{if(g.ctrlKey&&g.shiftKey&&g.keyCode==66){Designer.clipboard.brush();g.preventDefault()}else{if(g.ctrlKey&&g.keyCode==190){Designer.zoomIn();g.preventDefault()}else{if(g.ctrlKey&&g.keyCode==188){Designer.zoomOut();g.preventDefault()}else{if(g.keyCode>=37&&g.keyCode<=40){if(a==null){var u=Utils.getSelected();var h=Utils.getFamilyShapes(u);u=u.concat(h);var c=Utils.getContainedShapes(u);u=u.concat(c);var b=Utils.getAttachedShapes(u);u=u.concat(b);var k=Utils.getOutlinkers(u);a=u.concat(k)}if(a.length>0){g.preventDefault();var l=10;if(g.ctrlKey){l=1}Utils.hideLinkerCursor();if(g.keyCode==37){Designer.op.moveShape(a,{x:-l,y:0})}else{if(g.keyCode==38){Designer.op.moveShape(a,{x:0,y:-l})}else{if(g.keyCode==39){Designer.op.moveShape(a,{x:l,y:0})}else{if(g.keyCode==40){Designer.op.moveShape(a,{x:0,y:l})}}}}$(document).unbind("keyup.moveshape").bind("keyup.moveshape",function(){Model.updateMulti(a);a=null;$(document).unbind("keyup.moveshape");Designer.op.hideTip();Utils.showLinkerCursor()})}}else{if(g.keyCode==221&&g.ctrlKey){var i="front";if(g.shiftKey){i="forward"}Designer.layerShapes(i)}else{if(g.keyCode==219&&g.ctrlKey){var i="back";if(g.shiftKey){i="backward"}Designer.layerShapes(i)}else{if(g.keyCode==71&&g.ctrlKey){g.preventDefault();if(g.shiftKey){Designer.ungroup()}else{Designer.group()}}else{if(g.keyCode==76&&g.ctrlKey){g.preventDefault();if(g.shiftKey){Designer.unlockShapes()}else{Designer.lockShapes()}}else{if(g.keyCode==18){Designer.op.changeState("drag_canvas")}else{if(g.keyCode==27){if(!Designer.op.state){Utils.unselect();$(".menu.list").hide();$(".menu").hide();$(".color_picker").hide()}else{if(Designer.op.state=="creating_free_text"||Designer.op.state=="creating_free_linker"){Designer.op.resetState()}}}else{if(g.keyCode==84&&!g.ctrlKey){$(".menu.list").hide();Designer.op.changeState("creating_free_text")}else{if(g.keyCode==73&&!g.ctrlKey){$(".menu.list").hide();UI.showImageSelect(function(n,m,e){UI.insertImage(n,m,e)});$("#designer_contextmenu").hide()}else{if(g.keyCode==76&&!g.ctrlKey){$(".menu.list").hide();Designer.op.changeState("creating_free_linker");$("#designer_contextmenu").hide()}else{if(g.keyCode==66&&g.ctrlKey){var f=Utils.getSelectedIds();if(f.length>0){var d=Model.getShapeById(f[0]);Designer.setFontStyle({bold:!d.fontStyle.bold});UI.update()}}else{if(g.keyCode==73&&g.ctrlKey){var f=Utils.getSelectedIds();if(f.length>0){var d=Model.getShapeById(f[0]);Designer.setFontStyle({italic:!d.fontStyle.italic});UI.update()}}else{if(g.keyCode==85&&g.ctrlKey){var f=Utils.getSelectedIds();if(f.length>0){var d=Model.getShapeById(f[0]);Designer.setFontStyle({underline:!d.fontStyle.underline});UI.update()}g.preventDefault()}else{if(g.keyCode==32&&!g.ctrlKey){var f=Utils.getSelectedIds();if(f.length==1){var d=Model.getShapeById(f[0]);Designer.op.editShapeText(d)}g.preventDefault()}else{if(g.keyCode==121){g.preventDefault();Dock.enterPresentation()}}}}}}}}}}}}}}}}}}}}}}}}}}});$("input,textarea,select").die().live("keydown.hotkey",function(b){b.stopPropagation()})},cancel:function(){$(document).unbind("keydown.hotkey")}},contextMenu:{init:function(){$("#designer_contextmenu").unbind("mousedown").bind("mousedown",function(a){a.stopPropagation()});$("#designer_contextmenu").find("li:not(.devider)").unbind("click").bind("click",function(){var a=$(this);if(!a.menuitem("isDisabled")&&a.children(".extend_menu").length==0){Designer.contextMenu.execAction(a);Designer.contextMenu.hide()}});$("#canvas_container").unbind("contextmenu").bind("contextmenu",function(c){c.preventDefault();var b=$("#designer_canvas");var a=Utils.getRelativePos(c.pageX,c.pageY,b);Designer.contextMenu.show(a.x,a.y)})},destroy:function(){$("#canvas_container").unbind("contextmenu");this.hide()},menuPos:{x:0,y:0,shape:null},show:function(h,g){this.menuPos.x=h;this.menuPos.y=g;var c=$("#designer_contextmenu");var a=Utils.getShapeByPosition(h,g,false);c.children().hide();c.children("li[ac=selectall]").show();c.children(".devi_selectall").show();c.children("li[ac=drawline]").show();var b=Designer.clipboard.elements.length;if(a==null){if(b>0){c.children("li[ac=paste]").show();c.children(".devi_clip").show()}}else{var e=a.shape;this.menuPos.shape=e;if(e.locked){if(b>0){c.children("li[ac=paste]").show();c.children(".devi_clip").show()}c.children("li[ac=unlock]").show();c.children(".devi_shape").show()}else{c.children("li[ac=cut]").show();c.children("li[ac=copy]").show();c.children("li[ac=duplicate]").show();if(b>0){c.children("li[ac=paste]").show()}c.children(".devi_clip").show();c.children("li[ac=front]").show();c.children("li[ac=back]").show();c.children("li[ac=lock]").show();var f=Utils.getSelectedIds();var d=f.length;if(d>=2){c.children("li[ac=group]").show();$("#ctxmenu_align").show()}var i=Utils.getSelectedGroups().length;if(i>=1){c.children("li[ac=ungroup]").show()}c.children(".devi_shape").show();if(d==1&&e.name!="linker"&&e.link){c.children("li[ac=changelink]").show()}if(e.name=="linker"||e.attribute.editable){c.children("li[ac=edit]").show()}c.children("li[ac=delete]").show();c.children(".devi_del").show()}}c.css({display:"block","z-index":Model.orderList.length+3,left:h,top:g});$(document).bind("mousedown.ctxmenu",function(){Designer.contextMenu.hide()})},hide:function(){$("#designer_contextmenu").hide();$(document).unbind("mousedown.ctxmenu")},execAction:function(b){var c=b.attr("ac");if(c=="cut"){Designer.clipboard.cut()}else{if(c=="copy"){Designer.clipboard.copy()}else{if(c=="paste"){Designer.clipboard.paste(this.menuPos.x,this.menuPos.y)}else{if(c=="duplicate"){Designer.clipboard.duplicate()}else{if(c=="front"){Designer.layerShapes("front")}else{if(c=="back"){Designer.layerShapes("back")}else{if(c=="lock"){Designer.lockShapes()}else{if(c=="unlock"){Designer.unlockShapes()}else{if(c=="group"){Designer.group()}else{if(c=="ungroup"){Designer.ungroup()}else{if(c=="align_shape"){var a=b.attr("al");Designer.alignShapes(a)}else{if(c=="edit"){Designer.op.editShapeText(this.menuPos.shape)}else{if(c=="delete"){Designer.op.removeShape()}else{if(c=="selectall"){Designer.selectAll()}else{if(c=="drawline"){Designer.op.changeState("creating_free_linker")}else{if(c=="changelink"){UI.showInsertLink()}}}}}}}}}}}}}}}}}},init:function(){this.initialize.initLayout();this.initialize.initModel();this.initialize.initCanvas();this.initialize.initShapes();this.hotkey.init();this.contextMenu.init();Designer.op.init();this.initialize.initialized=true;Designer.events.push("initialized");$("#designer_layout").on("scroll",function(){$(document).trigger("mouseup.multiselect")})},op:{init:function(){var b=$("#designer_canvas");var a=$("#canvas_container");a.unbind("mousemove.operate").bind("mousemove.operate",function(d){if(Designer.op.state!=null){return}Designer.op.destroy();var c=Utils.getRelativePos(d.pageX,d.pageY,b);var e=Utils.getShapeByPosition(c.x,c.y);if(e!=null){if(e.type=="dataAttribute"){}else{if(e.type=="linker"){a.css("cursor","pointer");Designer.op.shapeSelectable(e.shape);var g=e.shape;var f=e.pointIndex;if(g.linkerType=="broken"&&f>1&&f<=g.points.length){Designer.op.brokenLinkerChangable(g,f-1)}else{if(g.from.id==null&&g.to.id==null){a.css("cursor","move");Designer.op.shapeDraggable()}}Designer.op.linkerEditable(g)}else{if(e.type=="linker_point"){a.css("cursor","move");Designer.op.shapeSelectable(e.shape);Designer.op.linkerDraggable(e.shape,e.point);Designer.op.linkerEditable(e.shape)}else{if(e.type=="linker_text"){a.css("cursor","text");Designer.op.shapeSelectable(e.shape);Designer.op.linkerEditable(e.shape)}else{if(e.type=="shape"){if(e.shape.locked){a.css("cursor","default");Designer.op.shapeSelectable(e.shape)}else{a.css("cursor","move");Designer.op.shapeSelectable(e.shape);Designer.op.shapeEditable(e.shape);Designer.op.shapeDraggable();if(e.shape.link){}}}else{a.css("cursor","crosshair");Designer.op.shapeSelectable(e.shape);Designer.op.shapeLinkable(e.shape,e.linkPoint)}if(e.shape.parent){Utils.showAnchors(Model.getShapeById(e.shape.parent))}else{Utils.showAnchors(e.shape)}}}}}}else{a.css("cursor","default");Designer.op.shapeMultiSelectable()}})},cancel:function(){$("#canvas_container").unbind("mousemove.operate").css("cursor","default");this.destroy()},destroy:function(){$("#designer_canvas").unbind("mousedown.drag").unbind("dblclick.edit").unbind("mousedown.draglinker").unbind("mousedown.select").unbind("mousedown.brokenLinker").unbind("dblclick.edit_linker");$("#canvas_container").unbind("mousedown.link").unbind("mousedown.create_text").unbind("mousedown.drag_canvas");$("#designer_layout").unbind("mousedown.multiselect");Utils.hideAnchors();$("#link_spot").hide()},state:null,changeState:function(a){this.state=a;if(a=="creating_free_text"){this.destroy();$("#canvas_container").css("cursor","crosshair");this.textCreatable()}else{if(a=="creating_free_linker"){this.destroy();$("#canvas_container").css("cursor","crosshair");this.shapeLinkable()}else{if(a=="drag_canvas"){this.destroy();this.canvasDraggable()}else{if(a=="changing_curve"){this.destroy()}}}}},resetState:function(){this.state=null;$("#canvas_container").css("cursor","default")},shapeSelectable:function(a){var b=$("#designer_canvas");b.bind("mousedown.select",function(c){Designer.op.changeState("seelcting_shapes");var d=a.id;var e=[];if(c.ctrlKey){var e=Utils.getSelectedIds();if(Utils.isSelected(d)){Utils.removeFromArray(e,d)}else{e.push(d)}Utils.unselect();if(e.length>0){Utils.selectShape(e)}}else{if(Utils.selectIds.indexOf(d)<0){Utils.unselect();Utils.selectShape(d)}}$(document).bind("mouseup.select",function(){Designer.op.resetState();b.unbind("mousedown.select");$(document).unbind("mouseup.select")})})},shapeDraggable:function(){var b=$("#designer_canvas");var a=$("#canvas_container");b.bind("mousedown.drag",function(h){Utils.hideLinkerCursor();Utils.hideLinkerControls();Designer.op.changeState("dragging");var l=Utils.getRelativePos(h.pageX,h.pageY,b);var o=Utils.getSelected();var m=true;if(o.length==1&&o[0].name=="linker"){m=false}var f=null;if(m){f=Utils.getShapesBounding(o)}var e=Utils.getFamilyShapes(o);o=o.concat(e);var c=Utils.getContainedShapes(o);o=o.concat(c);var A=Utils.getAttachedShapes(o);o=o.concat(A);var g=[];if(m){for(var p=0;pi.width-i.padding){Designer.setPageStyle({width:q.x+q.w+i.padding+30});$("#page_size_w").spinner("value",q.x+q.w+i.padding+30)}if(q.y+q.h>i.height-i.padding){Designer.setPageStyle({height:q.y+q.h+i.padding+30});$("#page_size_h").spinner("value",q.x+q.w+i.padding+30)}}if(isAutoSave=="0"){$("#saving_tip").css("color","rgb(255, 0, 0)");$("#saving_tip").text("文件已修改,未保存")}})})},shapeResizable:function(){$(".shape_controller").bind("mousedown",function(aj){if(!isAdmin&&isCustomDefine=="1"){var ag=Utils.getSelected();var m=true;for(var B=0;B=0){y.x=q.x+q.w}else{if(o.indexOf("r")>=0){y.x=q.x}else{y.x=q.x+q.w/2}}if(o.indexOf("t")>=0){y.y=q.y+q.h}else{if(o.indexOf("b")>=0){y.y=q.y}else{y.y=q.y+q.h/2}}y=Utils.getRotated(A,y,q.angle);function w(p,i){if(p.id==null){if(i){return{type:"box",x:(p.x-q.x)/q.w,y:(p.y-q.y)/q.h}}else{return{type:"fixed"}}}else{if(Utils.isSelected(p.id)){var C=Model.getShapeById(p.id);var D={x:C.props.x+C.props.w/2,y:C.props.y+C.props.h/2};var E=Utils.getRotated(D,p,-C.props.angle);return{type:"shape",x:(E.x-C.props.x)/C.props.w,y:(E.y-C.props.y)/C.props.h}}else{return{type:"fixed"}}}}var d=[];var ai={};var a=[];var r=Utils.getAttachedShapes(s);s=s.concat(r);var t=[];for(var v=0;v0){for(var g=0;g=0){C.w=N.x-y.x}else{if(o.indexOf("l")>=0){C.w=y.x-N.x}}if(o.indexOf("b")>=0){C.h=N.y-y.y}else{if(o.indexOf("t")>=0){C.h=y.y-N.y}}if(W.ctrlKey&&o.length==2){if(q.w>=q.h){C.h=q.h/q.w*C.w;if(C.h=0){T.x=y.x+C.w}else{if(o.indexOf("l")>=0){T.x=y.x-C.w}else{T.x=y.x}}if(o.indexOf("b")>=0){T.y=y.y+C.h}else{if(o.indexOf("t")>=0){T.y=y.y-C.h}else{T.y=y.y}}var J=Utils.getRotated(y,T,q.angle);var L={x:0.5*y.x+0.5*J.x,y:0.5*y.y+0.5*J.y};var R=Utils.getRotated(L,y,-q.angle);if(o.indexOf("r")>=0){C.x=R.x}else{if(o.indexOf("l")>=0){C.x=R.x-C.w}else{C.x=R.x-C.w/2}}if(o.indexOf("b")>=0){C.y=R.y}else{if(o.indexOf("t")>=0){C.y=R.y-C.h}else{C.y=R.y-C.h/2}}if(C.angle==0){var i=d[0];var P=Designer.op.snapResizeLine(C,t,o)}Utils.removeAnchors();for(var S=0;S"+H}Designer.op.showTip(H);$(document).unbind("mouseup.resize_ok").bind("mouseup.resize_ok",function(){if(x.length>0){d=d.concat(x)}Model.updateMulti(d);$(document).unbind("mouseup.resize_ok")})});$(document).bind("mouseup.resize",function(){h.css("cursor","default");Designer.op.resetState();h.unbind("mousemove.resize");$(document).unbind("mouseup.resize");var C=Utils.getSelected()[0];if(C){var p=C.props;var i=Model.define.page;if(p.x+p.w>i.width-i.padding){Designer.setPageStyle({width:p.x+p.w+i.padding+10})}if(p.y+p.h>i.height-i.padding){Designer.setPageStyle({height:p.y+p.h+i.padding+10})}}Designer.op.hideTip();Utils.showLinkerCursor();Designer.op.hideSnapLine()})})},shapeRotatable:function(){$(".shape_rotater").bind("mousemove",function(b){var a=$(this);var d=b.pageX-a.offset().left;var c=b.pageY-a.offset().top;var f=a[0].getContext("2d");a.unbind("mousedown");a.removeClass("rotate_enable");if(f.isPointInPath(d,c)){a.addClass("rotate_enable");a.bind("mousedown",function(k){Utils.hideLinkerCursor();if($("#shape_text_edit").length){$("#shape_text_edit").trigger("blur")}k.stopPropagation();Designer.op.changeState("rotating");var e=Utils.getSelectedIds();var i;var y;if(e.length==1){var g=Model.getShapeById(e[0]);i=g.props;y=g.props.angle}else{i=Utils.getControlBox(e);y=0}var m={x:i.x+i.w/2,y:i.y+i.h/2};var h=Utils.toScale(m);var n=$("#designer_canvas");var p=Utils.getSelected();var q=Utils.getAttachedShapes(p);p=p.concat(q);var l=Utils.getOutlinkers(p);p=p.concat(l);var o=y;$(document).bind("mousemove.rotate",function(w){var v=Utils.getRelativePos(w.pageX,w.pageY,n);var D=Math.atan(Math.abs(v.x-h.x)/Math.abs(h.y-v.y));if(v.x>=h.x&&v.y>=h.y){D=Math.PI-D}else{if(v.x<=h.x&&v.y>=h.y){D=Math.PI+D}else{if(v.x<=h.x&&v.y<=h.y){D=Math.PI*2-D}}}D=D%(Math.PI*2);var x=Math.PI/36;var t=Math.round(D/x);D=x*t;if(D==o){return}o=D;Designer.op.showTip(t*5%360+"°");Designer.painter.rotateControls(i,D);Utils.removeAnchors();var z=D-y;for(var E=0;E0){for(var u in Model.define.localAttribute[l]){m.attributesJsonArray.push(Utils.copy(Model.define.localAttribute[l][u]))}}for(var e=0;e0){p=p.concat(o)}Model.updateMulti(p)}})})},shapeMultiSelectable:function(){var a=$("#designer_canvas");var b=$("#designer_layout");b.unbind("mousedown.multiselect").bind("mousedown.multiselect",function(d){var c=null;if(!d.ctrlKey){Utils.unselect()}var e=Utils.getRelativePos(d.pageX,d.pageY,a);Designer.op.changeState("multi_selecting");b.bind("mousemove.multiselect",function(g){if(c==null){c=$("
    ").appendTo(a)}var f=Utils.getRelativePos(g.pageX,g.pageY,a);var h={"z-index":Model.orderList.length,left:f.x,top:f.y};if(f.x>e.x){h.left=e.x}if(f.y>e.y){h.top=e.y}h.width=Math.abs(f.x-e.x);h.height=Math.abs(f.y-e.y);c.css(h)});$(document).unbind("mouseup.multiselect").bind("mouseup.multiselect",function(h){if(c!=null){var f={x:c.position().left.restoreScale(),y:c.position().top.restoreScale(),w:c.width().restoreScale(),h:c.height().restoreScale()};var i=Utils.getShapesByRange(f);if(h.ctrlKey){var g=Utils.getSelectedIds();Utils.mergeArray(i,g)}Utils.unselect();Utils.selectShape(i);c.remove()}Designer.op.resetState();$(document).unbind("mouseup.multiselect");b.unbind("mousemove.multiselect")});b.unbind("mousedown.multiselect")})},shapeEditable:function(a){var b=$("#designer_canvas");if(a.attribute.editable==false){return}b.unbind("dblclick.edit").bind("dblclick.edit",function(){Designer.op.editShapeText(a);b.unbind("dblclick.edit")})},editShapeText:function(g){if(g.name=="linker"){this.editLinkerText(g);return}var d=$("#shape_text_edit");if(d.length==0){d=$("").appendTo("#designer_canvas")}var c=$("#shape_text_ruler");if(c.length==0){c=$("").appendTo("#designer_canvas")}$(".text_canvas[forshape="+g.id+"]").hide();var b=g.fontStyle;var f=g.getTextBlock();if(b.orientation=="horizontal"){var a={x:f.x+f.w/2,y:f.y+f.h/2};f={x:a.x-f.h/2,y:a.y-f.w/2,w:f.h,h:f.w}}var h={width:f.w+"px","z-index":Model.orderList.length+2,"line-height":Math.round(b.size*1.25)+"px","font-size":b.size+"px","font-family":b.fontFamily,"font-weight":b.bold?"bold":"normal","font-style":b.italic?"italic":"normal","text-align":b.textAlign,color:"rgb("+b.color+")","text-decoration":b.underline?"underline":"none"};d.css(h);c.css(h);d.show();f.x+=g.props.x;f.y+=g.props.y;d.val(g.text);$("#shape_text_edit").unbind().bind("keyup",function(){var q=$(this).val();c.val(q);c.scrollTop(99999);var i=c.scrollTop();d.css({height:i});var k={x:f.x+f.w/2,y:f.y+f.h/2};var l=0;var n=0;var s=f.h;if(g.fontStyle.vAlign=="middle"){if(i>s){s=i;l=(k.y-s/2);n=0}else{l=(k.y-f.h/2);n=(f.h-i)/2;s=f.h-n}}else{if(g.fontStyle.vAlign=="bottom"){if(i>s){s=i;l=(k.y+f.h/2-s);n=0}else{l=(k.y-f.h/2);n=f.h-i;s=f.h-n}}else{l=(k.y-f.h/2);n=0;if(i>s){s=i}else{s=f.h}}}var r=n+s;var p={x:f.x+f.w/2,y:l+r/2};var o=g.props.angle;if(o!=0){var t={x:g.props.x+g.props.w/2,y:g.props.y+g.props.h/2};p=Utils.getRotated(t,p,o)}if(b.orientation=="horizontal"){o=(Math.PI*1.5+o)%(Math.PI*2)}var y=Math.round(o/(Math.PI*2)*360);var m="rotate("+y+"deg) scale("+Designer.config.scale+")";d.css({width:f.w,height:s,"padding-top":n,left:p.x.toScale()-f.w/2-2,top:p.y.toScale()-r/2-2,"-webkit-transform":m,"-ms-transform":m,"-o-transform":m,"-moz-transform":m,transform:m})}).bind("keydown",function(k){var l=$(this);if(k.keyCode==13&&k.ctrlKey){e();return false}else{if(k.keyCode==27){l.unbind().remove();$(".text_canvas[forshape="+g.id+"]").show()}else{if(k.keyCode==66&&k.ctrlKey){var m=!g.fontStyle.bold;g.fontStyle.bold=m;Model.update(g);var i=m?"bold":"normal";$(this).css("font-weight",i);c.css("font-weight",i);UI.update()}else{if(k.keyCode==73&&k.ctrlKey){var m=!g.fontStyle.italic;g.fontStyle.italic=m;Model.update(g);var i=m?"italic":"normal";$(this).css("font-style",i);c.css("font-style",i);UI.update()}else{if(k.keyCode==85&&k.ctrlKey){var m=!g.fontStyle.underline;g.fontStyle.underline=m;Model.update(g);var i=m?"underline":"none";$(this).css("text-decoration",i);c.css("text-decoration",i);k.preventDefault();UI.update()}}}}}}).bind("blur",function(i){e()}).bind("mousemove",function(i){i.stopPropagation()}).bind("mousedown",function(i){i.stopPropagation()}).bind("mouseenter",function(i){Designer.op.destroy()});$("#shape_text_edit").trigger("keyup");d.select();function e(){var i=$("#shape_text_edit").val();if($("#shape_text_edit").length&&$("#shape_text_edit").is(":visible")){if(i!=g.text){g.text=i;Model.update(g)}Designer.painter.renderShape(g);$("#shape_text_edit").remove()}}},shapeLinkable:function(a,d){var b=$("#designer_canvas");var e=$("#canvas_container");e.unbind("mousedown.link").bind("mousedown.link",function(k){Designer.op.changeState("linking_from_shape");var h=null;var i=null;var g;if(!a){var f=Utils.getRelativePos(k.pageX,k.pageY,b);g={x:f.x.restoreScale(),y:f.y.restoreScale(),id:null,angle:null}}else{g=d;g.id=a.id}e.bind("mousemove.link",function(l){e.css("cursor","default");var o=Utils.getRelativePos(l.pageX,l.pageY,b);if(i==null){i=c(g,o);Designer.events.push("linkerCreating",i)}Designer.op.moveLinker(i,"to",o.x,o.y);$(document).unbind("mouseup.droplinker").bind("mouseup.droplinker",function(){if(Math.abs(o.x-g.x)>20||Math.abs(o.y-g.y)>20){Model.add(i);Designer.events.push("linkerCreated",i);if(i.to.id==null&&i.from.id!=null){Designer.op.linkDashboard(i)}Utils.showLinkerCursor()}else{$("#"+i.id).remove()}$(document).unbind("mouseup.droplinker")})});$(document).bind("mouseup.link",function(){Designer.op.hideLinkPoint();Designer.op.resetState();e.unbind("mousedown.link");e.unbind("mousemove.link");$(document).unbind("mouseup.link")})});function c(g,f){var h=Utils.newId();var i=Utils.copy(Schema.linkerDefaults);i.from=g;i.to={id:null,x:f.x,y:f.y,angle:null};i.props={zindex:Model.maxZIndex+1};i.id=h;return i}},linkerEditable:function(b){var a=$("#designer_canvas");a.unbind("dblclick.edit_linker").bind("dblclick.edit_linker",function(){Designer.op.editLinkerText(b);a.unbind("dblclick.edit_linker")})},editLinkerText:function(h){Designer.contextMenu.hide();var g=Designer.painter.getLinkerMidpoint(h);var c=$("#"+h.id).find(".text_canvas");var e=$("#linker_text_edit");if(e.length==0){e=$("").appendTo("#designer_canvas")}$("#"+h.id).find(".text_canvas").hide();var b=h.fontStyle;var a="scale("+Designer.config.scale+")";var d=Math.round(b.size*1.25);e.css({"z-index":Model.orderList.length,"line-height":d+"px","font-size":b.size+"px","font-family":b.fontFamily,"font-weight":b.bold?"bold":"normal","font-style":b.italic?"italic":"normal","text-align":b.textAlign,color:"rgb("+b.color+")","text-decoration":b.underline?"underline":"none","-webkit-transform":a,"-ms-transform":a,"-o-transform":a,"-moz-transform":a,transform:a});e.val(h.text).show().select();e.unbind().bind("keyup",function(){var i=$(this).val();var k=i.replace(//g,">").replace(/\n/g,"
    ");c.html(k+"
    ");var l=c.width();if(l<50){l=50}var m=c.height();if(m1){f=true}d.bind("mousemove.draglinker",function(i){d.css("cursor","default");var h=Utils.getRelativePos(i.pageX,i.pageY,a);Designer.op.moveLinker(b,c,h.x,h.y);if(f){Designer.painter.drawControls(g)}$(document).unbind("mouseup.droplinker").bind("mouseup.droplinker",function(){$(document).unbind("mouseup.droplinker");Model.update(b);Utils.showLinkerControls()})});$(document).bind("mouseup.draglinker",function(){Designer.op.hideLinkPoint();Designer.op.resetState();a.unbind("mousedown.draglinker");d.unbind("mousemove.draglinker");$(document).unbind("mouseup.draglinker");Utils.showLinkerControls()})})},linkClickable:function(b,a){var c=$("#link_spot");if(c.length==0){c=$("").appendTo("#designer_canvas")}if(b.trim().toLowerCase().indexOf("http")==-1){b="http://"+b}c.show().css({left:a.x-50,top:a.y-50,"z-index":Model.orderList.length+1})},textCreatable:function(){var b=$("#designer_canvas");var a=$("#canvas_container");a.unbind("mousedown.create_text").bind("mousedown.create_text",function(d){var f=null;if(!d.ctrlKey){Utils.unselect()}var e=Utils.getRelativePos(d.pageX,d.pageY,b);var c=null;a.bind("mousemove.create_text",function(g){if(f==null){f=$("
    ").appendTo(b)}var h=Utils.getRelativePos(g.pageX,g.pageY,b);c={"z-index":Model.orderList.length,left:h.x-1,top:h.y-1};if(h.x>e.x){c.left=e.x-1}if(h.y>e.y){c.top=e.y-1}c.width=Math.abs(h.x-e.x-2);c.height=Math.abs(h.y-e.y-2);f.css(c)});$(document).unbind("mouseup.create_text").bind("mouseup.create_text",function(h){if(c!=null&&c.width>=20&&c.height>=20){var g=Model.create("standardText",c.left.restoreScale(),c.top.restoreScale());g.props.w=c.width.restoreScale();g.props.h=c.height.restoreScale();Model.add(g);Designer.painter.renderShape(g);Designer.op.editShapeText(g);Utils.unselect();Utils.selectShape(g.id)}f.remove();Designer.op.resetState();$(document).unbind("mouseup.create_text");a.unbind("mousemove.create_text")});a.unbind("mousedown.create_text")})},canvasDragTimeout:null,canvasDraggable:function(){var a=$("#canvas_container");a.css("cursor","url(../apps/_bpm.platform/js/designer/themes/default/images/diagraming/cursor_hand.png) 8 8, auto");if(this.canvasDragTimeout){clearTimeout(this.canvasDragTimeout)}this.canvasDragTimeout=setTimeout(function(){a.unbind("mousedown.drag_canvas");Designer.op.resetState();a.unbind("mousemove.drag_canvas");$(document).unbind("mouseup.drag_canvas")},500);a.unbind("mousedown.drag_canvas").bind("mousedown.drag_canvas",function(d){var c=$("#designer_layout").scrollTop();var b=$("#designer_layout").scrollLeft();a.bind("mousemove.drag_canvas",function(f){var e=f.pageX-d.pageX;var g=f.pageY-d.pageY;$("#designer_layout").scrollLeft(b-e);$("#designer_layout").scrollTop(c-g)});$(document).unbind("mouseup.drag_canvas").bind("mouseup.drag_canvas",function(e){a.unbind("mousemove.drag_canvas");$(document).unbind("mouseup.drag_canvas")})});$(document).unbind("keyup.drag_canvas").bind("keyup.drag_canvas",function(b){a.unbind("mousedown.drag_canvas");Designer.op.resetState();$(document).unbind("mouseup.drag_canvas");b.preventDefault();clearTimeout(this.canvasDragTimeout);a.unbind("mousemove.drag_canvas")})},canvasFreeDraggable:function(){var a=$("#canvas_container");a.css("cursor","url(../apps/_bpm.platform/js/designer/themes/default/images/diagraming/cursor_hand.png) 8 8, auto");a.unbind("mousedown.drag_canvas").bind("mousedown.drag_canvas",function(d){var c=$("#designer_layout").scrollTop();var b=$("#designer_layout").scrollLeft();a.bind("mousemove.drag_canvas",function(f){var e=f.pageX-d.pageX;var g=f.pageY-d.pageY;$("#designer_layout").scrollLeft(b-e);$("#designer_layout").scrollTop(c-g)});$(document).unbind("mouseup.drag_canvas").bind("mouseup.drag_canvas",function(e){a.unbind("mousemove.drag_canvas");$(document).unbind("mouseup.drag_canvas")})})},moveShape:function(u,l){var e=[];for(var k=0;k=0){r.from.x+=O.x;r.from.y+=O.y;n=true}if(c.id!=null&&e.indexOf(c.id)>=0){r.to.x+=O.x;r.to.y+=O.y;s=true}}else{if(g.id==null||e.indexOf(g.id)>=0){r.from.x+=O.x;r.from.y+=O.y;n=true}if(c.id==null||e.indexOf(c.id)>=0){r.to.x+=O.x;r.to.y+=O.y;s=true}}if(n&&s){for(var m=0;m0){var h=Utils.getSelectedIds();Designer.painter.drawControls(h)}else{var q=$("#shape_controls");q.css({left:parseFloat(q.css("left"))+l.x,top:parseFloat(q.css("top"))+l.y})}var o=$("#shape_controls").position();if(o&&Utils.getSelected().length>0){Designer.op.showTip("X: "+Math.round(o.left.restoreScale())+"  Y: "+Math.round(o.top.restoreScale()))}function a(p){p.props.x+=O.x;p.props.y+=O.y;var i=$("#"+p.id);i.css({left:parseFloat(i.css("left"))+l.x,top:parseFloat(i.css("top"))+l.y})}},moveLinker:function(q,i,k,h){var b=null;var r=null;var c=Utils.getShapeByPosition(k,h,true);Designer.op.hideLinkPoint();if(c!=null){var a=c.shape;Utils.showAnchors(a);r=a.id;if(c.type=="bounding"){b=c.linkPoint;Designer.op.showLinkPoint(Utils.toScale(b))}else{if(c.type=="shape"){var n;var g;if(i=="from"){n={x:q.to.x,y:q.to.y};g=q.to.id}else{n={x:q.from.x,y:q.from.y};g=q.from.id}if(a.id==g){Designer.op.hideLinkPoint();b={x:k.restoreScale(),y:h.restoreScale()};b.angle=null;r=null}else{var s=a.getAnchors();var o=-1;var M;var p={x:a.props.x+a.props.w/2,y:a.props.y+a.props.h/2};for(var l=0;l=q.to.x-6&&b.x<=q.to.x+6){q.from.x=q.to.x}if(b.y>=q.to.y-6&&b.y<=q.to.y+6){q.from.y=q.to.y}}}else{q.to.x=b.x;q.to.y=b.y;q.to.id=r;q.to.angle=b.angle;if(r==null){if(b.x>=q.from.x-6&&b.x<=q.from.x+6){q.to.x=q.from.x}if(b.y>=q.from.y-6&&b.y<=q.from.y+6){q.to.y=q.from.y}}}Designer.painter.renderLinker(q,true)},showLinkPoint:function(b){var a=$("").appendTo($("#designer_canvas"));var c=a[0].getContext("2d");c.translate(1,1);c.lineWidth=1;c.globalAlpha=0.3;c.strokeStyle=Designer.config.anchorColor;c.fillStyle=Designer.config.anchorColor;c.beginPath();c.moveTo(0,15);c.bezierCurveTo(0,-5,30,-5,30,15);c.bezierCurveTo(30,35,0,35,0,15);c.closePath();c.fill();c.stroke();a.css({left:b.x-16,top:b.y-16,"z-index":Model.orderList.length}).show()},hideLinkPoint:function(){$(".link_point_canvas").hide()},brokenLinkerChangable:function(b,a){var e=$("#canvas_container");var f=$("#designer_canvas");var d=b.points[a-1];var c=b.points[a];if(d.x==c.x){e.css("cursor","e-resize")}else{e.css("cursor","n-resize")}f.bind("mousedown.brokenLinker",function(h){Designer.op.changeState("changing_broken_linker");var g=Utils.getRelativePos(h.pageX,h.pageY,f);var i=Utils.getSelectedIds();e.bind("mousemove.brokenLinker",function(l){var k=Utils.getRelativePos(l.pageX,l.pageY,f);var m={x:k.x-g.x,y:k.y-g.y};m=Utils.restoreScale(m);if(d.x==c.x){d.x+=m.x;c.x+=m.x}else{d.y+=m.y;c.y+=m.y}Designer.painter.renderLinker(b);if(i.length>1){Designer.painter.drawControls(i)}g=k;$(document).unbind("mouseup.changed").bind("mouseup.changed",function(){Model.update(b);$(document).unbind("mouseup.changed")})});$(document).bind("mouseup.brokenLinker",function(){Designer.op.resetState();e.unbind("mousemove.brokenLinker");f.unbind("mousedown.brokenLinker");$(document).unbind("mouseup.brokenLinker")})})},removeShape:function(){var d=Utils.getSelected();if(d.length>0){Utils.unselect();var e=Utils.getAttachedShapes(d);d=d.concat(e);var c=[];for(var b=0;b0){var shapeIds=[];for(var index=0;index0){$.ajax({url:"./jd?sid="+$("#sid").val()+"&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_search",data:{shapeIds:shapeIds.join(","),fileId:ruuid},success:function(msg){if(typeof(msg)=="string"){msg=eval("("+msg+")")}var relationShapes=msg.data.relationShapes;if(relationShapes.length>0){var options={title:"提示",content:"图形["+relationShapes+"]被关联,确定删除吗?",onConfirm:function(){Model.remove(d)}};$.confirm(options)}else{Model.remove(d)}}})}else{Model.remove(d)}}}},showTip:function(a){var c=$("#designer_op_tip");if(c.length==0){c=$("
    ").appendTo("#designer_canvas")}c.stop().html(a);var d=$("#shape_controls");var b=d.position();c.css({top:b.top+d.height()+5,left:b.left+d.width()/2-c.outerWidth()/2,"z-index":Model.orderList.length}).show()},hideTip:function(){$("#designer_op_tip").fadeOut(100)},snapLine:function(k,l,h,E){var f=k.y;var t=k.y+k.h/2;var F=k.y+k.h;var D=k.x;var g=k.x+k.w/2;var c=k.x+k.w;var C=2;var H={v:null,h:null,attach:null};var d=null;if(h){d=E}else{d=Model.getShapeById(l[0])}if(l.length==1&&d.groupName=="boundaryEvent"){for(var s=Model.orderList.length-1;s>=0;s--){var m=Model.orderList[s].id;var A=Model.getShapeById(m);if(A.name!="linker"&&A.id!=d.id){var n=A.props;if(H.attach==null&&n.angle==0&&(A.groupName=="task"||A.groupName=="callActivity"||A.groupName=="subProcess")){var v={x:n.x-C,y:n.y-C,w:n.w+C*2,h:n.h+C*2};if(Utils.pointInRect(g,t,v)){var z=n.y;var G=n.y+n.h;var q=n.x;var r=n.x+n.w;var e=false;var ab=false;if(z>=t-C&&z<=t+C){k.y=z-k.h/2;ab=true}else{if(G>=t-C&&G<=t+C){k.y=G-k.h/2;ab=true}}if(q>=g-C&&q<=g+C){k.x=q-k.w/2;e=true}else{if(r>=g-C&&r<=g+C){k.x=r-k.w/2;e=true}}if(e||ab){H.attach=A}}}}}}if(H.attach==null){for(var s=Model.orderList.length-1;s>=0;s--){var m=Model.orderList[s].id;var A=Model.getShapeById(m);if(A.name=="linker"||l.indexOf(m)>=0||A.parent){continue}var n=A.props;if(H.h==null){var z=n.y;var x=n.y+n.h/2;var G=n.y+n.h;if(x>=t-C&&x<=t+C){H.h={type:"middle",y:x};k.y=x-k.h/2}else{if(z>=f-C&&z<=f+C){H.h={type:"top",y:z};k.y=z}else{if(G>=F-C&&G<=F+C){H.h={type:"bottom",y:G};k.y=G-k.h}else{if(G>=f-C&&G<=f+C){H.h={type:"top",y:G};k.y=G}else{if(z>=F-C&&z<=F+C){H.h={type:"bottom",y:z};k.y=z-k.h}}}}}}if(H.v==null){var q=n.x;var o=n.x+n.w/2;var r=n.x+n.w;if(o>=g-C&&o<=g+C){H.v={type:"center",x:o};k.x=o-k.w/2}else{if(q>=D-C&&q<=D+C){H.v={type:"left",x:q};k.x=q}else{if(r>=c-C&&r<=c+C){H.v={type:"right",x:r};k.x=r-k.w}else{if(r>=D-C&&r<=D+C){H.v={type:"left",x:r};k.x=r}else{if(q>=c-C&&q<=c+C){H.v={type:"right",x:q};k.x=q-k.w}}}}}}if(H.h!=null&&H.v!=null){break}}}this.hideSnapLine();var B=$("#designer_canvas");if(H.attach!=null){var b=$("#designer_op_snapline_attach");if(b.length==0){b=$("
    ").appendTo(B)}var u=H.attach;var w=u.lineStyle.lineWidth;b.css({width:(u.props.w+w).toScale(),height:(u.props.h+w).toScale(),left:(u.props.x-w/2).toScale()-2,top:(u.props.y-w/2).toScale()-2,"z-index":$("#"+u.id).css("z-index")}).show()}if(H.h!=null){var y=$("#designer_op_snapline_h");if(y.length==0){y=$("
    ").appendTo(B)}y.css({width:B.width()+Designer.config.pageMargin*2,left:-Designer.config.pageMargin,top:Math.round(H.h.y.toScale()),"z-index":Model.orderList.length+1}).show()}if(H.v!=null){var a=$("#designer_op_snapline_v");if(a.length==0){a=$("
    ").appendTo(B)}a.css({height:B.height()+Designer.config.pageMargin*2,top:-Designer.config.pageMargin,left:Math.round(H.v.x.toScale()),"z-index":Model.orderList.length+1}).show()}return H},snapResizeLine:function(n,q,o){var m=n.y;var W=n.y+n.h/2;var g=n.y+n.h;var f=n.x;var w=n.x+n.w/2;var v=n.x+n.w;var e=2;var k={v:null,h:null};for(var t=Model.orderList.length-1;t>=0;t--){var x=Model.orderList[t].id;var b=Model.getShapeById(x);if(b.name=="linker"||q.indexOf(x)>=0||b.parent){continue}var r=b.props;if(k.h==null&&(o.indexOf("t")>=0||o.indexOf("b")>=0)){var c=r.y;var a=r.y+r.h/2;var h=r.y+r.h;if(a>=W-e&&a<=W+e){k.h={type:"middle",y:a};if(o.indexOf("t")>=0){n.h=(g-a)*2;n.y=g-n.h}else{n.h=(a-n.y)*2}}else{if(o.indexOf("t")>=0&&c>=m-e&&c<=m+e){k.h={type:"top",y:c};n.y=c;n.h=g-c}else{if(o.indexOf("b")>=0&&h>=g-e&&h<=g+e){k.h={type:"bottom",y:h};n.h=h-m}else{if(o.indexOf("t")>=0&&h>=m-e&&h<=m+e){k.h={type:"top",y:h};n.y=h;n.h=g-h}else{if(o.indexOf("b")>=0&&c>=g-e&&c<=g+e){k.h={type:"bottom",y:c};n.h=c-n.y}}}}}}if(k.v==null&&(o.indexOf("l")>=0||o.indexOf("r")>=0)){var z=r.x;var y=r.x+r.w/2;var s=r.x+r.w;if(y>=w-e&&y<=w+e){k.v={type:"center",x:y};if(o.indexOf("l")>=0){n.w=(v-y)*2;n.x=v-n.w}else{n.w=(y-n.x)*2}}else{if(o.indexOf("l")>=0&&z>=f-e&&z<=f+e){k.v={type:"left",x:z};n.x=z;n.w=v-z}else{if(o.indexOf("r")>=0&&s>=v-e&&s<=v+e){k.v={type:"right",x:s};n.w=s-n.x}else{if(o.indexOf("l")>=0&&s>=f-e&&s<=f+e){k.v={type:"left",x:s};n.x=s;n.w=v-s}else{if(o.indexOf("r")>=0&&z>=v-e&&z<=v+e){k.v={type:"right",x:z};n.w=z-n.x}}}}}}if(k.h!=null&&k.v!=null){break}}this.hideSnapLine();var d=$("#designer_canvas");if(k.h!=null){var u=$("#designer_op_snapline_h");if(u.length==0){u=$("
    ").appendTo(d)}u.css({width:d.width()+Designer.config.pageMargin*2,left:-Designer.config.pageMargin,top:Math.round(k.h.y.toScale()),"z-index":Model.orderList.length+1}).show()}if(k.v!=null){var l=$("#designer_op_snapline_v");if(l.length==0){l=$("
    ").appendTo(d)}l.css({height:d.height()+Designer.config.pageMargin*2,top:-Designer.config.pageMargin,left:Math.round(k.v.x.toScale()),"z-index":Model.orderList.length+1}).show()}return k},hideSnapLine:function(){$("#designer_op_snapline_h").hide();$("#designer_op_snapline_v").hide();$("#designer_op_snapline_attach").hide()},linkDashboard:function(b){var f=Model.getShapeById(b.from.id);var i=f.category;if($("#panel_"+i).length!=0){var c=$("#shape_dashboard_"+i);if(c.length==0){c=$("").appendTo("#designer_canvas");function a(k,n){var m="
    ";var o=$(m).appendTo(c);if(n){o.append("")}var l=o.children()[0];Designer.painter.drawPanelItem(l,k.name)}for(var g in Schema.shapes){var d=Schema.shapes[g];if((d.category=="process_bpmn2"||d.category=="process.bpmn2"||d.category=="bpmn")&&checkRunningTimeShape(d)){continue}if(d.category==i){var u=d.attribute;if(u.visible&&u.linkable){if(!d.groupName){a(d)}else{var h=SchemaGroup.getGroup(d.groupName);if(h[0]==d.name){a(d,d.groupName)}}}}}c.bind("mousemove",function(k){k.stopPropagation()}).bind("mousedown",function(k){k.stopPropagation()})}c.css({left:b.to.x.toScale(),top:b.to.y.toScale(),"z-index":Model.orderList.length}).show();c.find(".link_shape_icon").unbind().bind("mousedown",function(m){m.stopPropagation();var l=$(this).attr("group");var o=$(this).parent().position();var n=c.position();var k=o.left+n.left+$(this).parent().outerWidth()-10;var p=o.top+n.top+$(this).parent().outerHeight();Designer.op.groupDashboard(l,k,p,function(q){e(q);c.hide();$(document).unbind("mousedown.dashboard")})}).bind("click",function(k){k.stopPropagation()});c.children(".dashboard_box").unbind().bind("click",function(){c.hide();$(document).unbind("mousedown.dashboard");var l=$(this);var k=l.attr("shapeName");e(k)});initRunningDashboard(c);$(document).bind("mousedown.dashboard",function(){c.hide();$(document).unbind("mousedown.dashboard")});function e(r){var w=Schema.shapes[r];var s=Utils.getEndpointAngle(b,"to");var x=Utils.getAngleDir(s);var q=w.getAnchors();var l;if(x==1){var v=null;for(var m=0;mp){p=t.x;l=t}}}else{if(x==3){var o=null;for(var m=0;mo){o=t.y;l=t}}}else{if(x==4){var k=null;for(var m=0;m").appendTo("#designer_canvas");var g=SchemaGroup.getGroup(f);for(var a=0;a").appendTo(d);var k=b.children("canvas")[0];Designer.painter.drawPanelItem(k,c.name)}}d.bind("mousedown",function(i){i.stopPropagation()})}d.css({left:w,top:e,"z-index":Model.orderList.length+1}).show();$(".dashboard_box").unbind().bind("click",function(){var i=$(this).attr("shapeName");l(i);d.hide();$(document).unbind("mousedown.group_dashboard")});$(document).bind("mousedown.group_dashboard",function(){d.hide();$(document).unbind("mousedown.group_dashboard")});return d},showPanelGroup:function(d,f,n){f.stopPropagation();var A=$("#group_dashboard_"+d);$(".group_dashboard").hide();if(A.length==0){A=$("").appendTo("#designer");var e=SchemaGroup.getGroup(d);for(var l=0;l").appendTo(A);var h=m.children("canvas")[0];Designer.painter.drawPanelItem(h,a.name)}}A.css("position","fixed")}var c=$(n).parent();var k=c.offset();A.show();var b=k.top+c.height();if(b+A.outerHeight()>$(window).height()){b=$(window).height()-A.outerHeight()}A.css({left:k.left-7,top:b});$(document).bind("mousedown.group_board",function(){A.hide();$(document).unbind("mousedown.group_board")})},changeShapeProps:function(d,g){function f(o){if(typeof g.x!="undefined"){o.x+=(g.x-d.props.x)}if(typeof g.y!="undefined"){o.y+=(g.y-d.props.y)}if(typeof g.w!="undefined"||typeof g.h!="undefined"||typeof g.angle!="undefined"){var n=$.extend({},d.props,g);var m={x:d.props.x+d.props.w/2,y:d.props.y+d.props.h/2};var i=Utils.getRotated(m,o,-d.props.angle);var q=d.props.w;var l=d.props.h;if(typeof g.w!="undefined"){o.x=d.props.x+(i.x-d.props.x)/d.props.w*g.w;q=g.w}else{o.x=i.x}if(typeof g.h!="undefined"){o.y=d.props.y+(i.y-d.props.y)/d.props.h*g.h;l=g.h}else{o.y=i.y}var p={x:d.props.x+q/2,y:d.props.y+l/2};var k=Utils.getRotated(p,o,n.angle);o.x=k.x;o.y=k.y}if(typeof g.angle!="undefined"){o.angle+=g.angle-d.props.angle}}var a=[];var b=Model.getShapeLinkers(d.id);if(b&&b.length>0){for(var e=0;e").appendTo("#designer_viewport")}a.html("选择目标图形并使用格式刷样式
    Esc取消").show();$(document).unbind("keydown.cancelbrush").bind("keydown.cancelbrush",function(f){if(f.keyCode==27){$("#bar_brush").button("unselect");a.hide();$(document).unbind("keydown.cancelbrush");Utils.selectCallback=null;$("#bar_brush").button("disable")}});Utils.selectCallback=function(){var f=Utils.getSelected();for(var g=0;g1){l=1}var n={x:(1-l)*t.x+l*s.x,y:(1-l)*t.y+l*s.y};var v=Utils.measureDistance(m,n);if(v>=q[r]||l>=1){if(p){this.lineTo(n.x,n.y)}else{this.moveTo(n.x,n.y)}p=!p;m=n;r++;if(r>=q.length){r=0}}}this.moveTo(s.x,s.y)}else{this.lineTo(s.x,s.y)}this.prePoint=s;if(this.beginPoint==null){this.beginPoint=s}},curve:function(x){if(typeof this.webkitLineDash!="undefined"&&typeof this.lineDashOffset=="undefined"&&this.lineWidth!=0){var v=this.webkitLineDash;var y=this.prePoint;var t=Utils.measureDistance(y,x);var o=0;var A=1/t;var q=y;var w=0;var u=true;var z=0;while(o<1){o+=A;if(o>1){o=1}var r={x:y.x*Math.pow((1-o),3)+x.x1*o*Math.pow((1-o),2)*3+x.x2*Math.pow(o,2)*(1-o)*3+x.x*Math.pow(o,3),y:y.y*Math.pow((1-o),3)+x.y1*o*Math.pow((1-o),2)*3+x.y2*Math.pow(o,2)*(1-o)*3+x.y*Math.pow(o,3)};var B=Utils.measureDistance(q,r);if(B>=v[w]||o>=1){if(u){var p=z+(o-z)/2;var s={x:y.x*Math.pow((1-p),3)+x.x1*p*Math.pow((1-p),2)*3+x.x2*Math.pow(p,2)*(1-p)*3+x.x*Math.pow(p,3),y:y.y*Math.pow((1-p),3)+x.y1*p*Math.pow((1-p),2)*3+x.y2*Math.pow(p,2)*(1-p)*3+x.y*Math.pow(p,3)};this.lineTo(s.x,s.y);this.lineTo(r.x,r.y)}else{this.moveTo(r.x,r.y)}u=!u;q=r;z=o;w++;if(w>=v.length){w=0}}}this.moveTo(x.x,x.y)}else{this.bezierCurveTo(x.x1,x.y1,x.x2,x.y2,x.x,x.y)}this.prePoint=x;if(this.beginPoint==null){this.beginPoint=x}},quadraticCurve:function(x){if(typeof this.webkitLineDash!="undefined"&&typeof this.lineDashOffset=="undefined"&&this.lineWidth!=0){var v=this.webkitLineDash;var y=this.prePoint;var t=Utils.measureDistance(y,x);var o=0;var A=1/t;var q=y;var w=0;var u=true;var z=0;while(o<1){o+=A;if(o>1){o=1}var r={x:y.x*Math.pow((1-o),2)+x.x1*o*(1-o)*2+x.x*Math.pow(o,2),y:y.y*Math.pow((1-o),2)+x.y1*o*(1-o)*2+x.y*Math.pow(o,2)};var B=Utils.measureDistance(q,r);if(B>=v[w]||o>=1){if(u){var p=z+(o-z)/2;var s={x:y.x*Math.pow((1-p),2)+x.x1*p*(1-p)*2+x.x*Math.pow(p,2),y:y.y*Math.pow((1-p),2)+x.y1*p*(1-p)*2+x.y*Math.pow(p,2)};this.lineTo(s.x,s.y);this.lineTo(r.x,r.y)}else{this.moveTo(r.x,r.y)}u=!u;q=r;z=o;w++;if(w>=v.length){w=0}}}this.moveTo(x.x,x.y)}else{this.quadraticCurveTo(x.x1,x.y1,x.x,x.y)}this.prePoint=x;if(this.beginPoint==null){this.beginPoint=x}},close:function(){if(typeof this.webkitLineDash!="undefined"&&typeof this.lineDashOffset=="undefined"&&this.lineWidth!=0){var q=this.webkitLineDash;var t=this.prePoint;var s=this.beginPoint;var o=Utils.measureDistance(t,s);var l=0;var u=1/o;var m=t;var r=0;var p=true;while(l<1){l+=u;if(l>1){l=1}var n={x:(1-l)*t.x+l*s.x,y:(1-l)*t.y+l*s.y};var v=Utils.measureDistance(m,n);if(v>=q[r]||l>=1){if(p){this.lineTo(n.x,n.y)}else{this.moveTo(n.x,n.y)}p=!p;m=n;r++;if(r>=q.length){r=0}}}}this.closePath()}},setLineDash:function(a,b){if(!a.setLineDash){a.setLineDash=function(){}}a.setLineDash(b);a.mozDash=b;a.webkitLineDash=b},renderShapePath:function(c,d,a){var b;if(a&&d.drawIcon){b=d.drawIcon(d.props.w,d.props.h)}else{b=d.getPath()}this.renderPath(c,d,b,a)},renderPath:function(f,d,h,k){for(var b=0;b=Designer.config.panelItemWidth||b.h>=Designer.config.panelItemWidth){if(f.props.w>=f.props.h){b.w=Designer.config.panelItemWidth-f.lineStyle.lineWidth*2;b.h=parseInt(f.props.h/f.props.w*b.w)}else{b.h=Designer.config.panelItemHeight-f.lineStyle.lineWidth*2;b.w=parseInt(f.props.w/f.props.h*b.h)}}f.props=b;e.save();e.lineJoin="round";e.globalAlpha=f.shapeStyle.alpha;var d=(Designer.config.panelItemWidth-b.w)/2;var c=(Designer.config.panelItemHeight-b.h)/2;e.translate(d,c);e.translate(b.w/2,b.h/2);e.rotate(b.angle);e.translate(-(b.w/2),-(b.h/2));this.renderShapePath(e,f,true,function(){Designer.painter.drawPanelItem(g,a)});this.renderMarkers(e,f,true);e.restore()},handleShapeConfigData:function(A,f,e){var B;for(var l=f.dataAttributes.length-1;l>=0;l--){B=f.dataAttributes[l];var u=B.horizontal;var b=B.vertical;if(B.hasOwnProperty("attributesJsonArray")){var x=B.dataShowConfig;if(x!=undefined){x.value=[]}break}}var z=f.name;for(var l=0;l0){for(var k=0;k=0&&(o+"").trim().length>0){o="("+r.attrName+")"+o}if(w=="relation"&&o.length==0){o=""}else{if(w=="relation"&&o.length>0){var p=f.id+"_"+d;var a=relationShapeModelObject;var y="";for(var k=0;k0){for(O=0;O=0)){E.push(M[O])}}}}if(E.length>0){S=N.concat(E)}else{S=N}this.handleShapeConfigData(S,F,D)}}var I=$("#"+F.id);if(I.length==0){var f=$("#designer_canvas");I=$("
    ").appendTo(f)}var h=Utils.getShapeBox(F);var e=(h.w+20).toScale();var k=(h.h+20).toScale();I.find(".shape_canvas").attr({width:e,height:k});I.css({left:(h.x-10).toScale()+"px",top:(h.y-10).toScale()+"px",width:e,height:k});var J=I.find(".shape_canvas")[0].getContext("2d");J.clearRect(0,0,F.props.w+20,F.props.h+20);J.scale(Designer.config.scale,Designer.config.scale);J.translate(10,10);J.translate(F.props.x-h.x,F.props.y-h.y);J.translate(F.props.w/2,F.props.h/2);J.rotate(F.props.angle);J.translate(-(F.props.w/2),-(F.props.h/2));var d=F.lineStyle;J.globalAlpha=F.shapeStyle.alpha;J.lineJoin="round";this.renderShapePath(J,F);this.renderMarkers(J,F);var K=F.getPath();var H=Utils.copy(K[K.length-1]);H.fillStyle={type:"none"};H.lineStyle={lineWidth:0};var g=[H];this.renderPath(J,F,g);this.renderText(F,h);this.renderDataAttributes(F,h);Designer.painter.renderShapeLink(I,F);Designer.painter.renderSahpeAttachment(I,F);if(F.attributesJsonArray!=undefined&&F.attributesJsonArray.length>0){I.find(".shape_danger").remove();I.find(".shape_regulate").remove();var G=false;var b=false;for(var C in F.attributesJsonArray){var L=F.attributesJsonArray[C];if(L!=undefined&&L.key=="danger"&&L.value!=undefined&&L.value!=""&&relationShapesObject!=undefined){if(typeof L.value=="object"&&L.value.constructor==Array){for(var K=0;K").appendTo(I)}}},fillShape:function(g,e,f){e.save();if(f.type=="solid"){e.fillStyle="rgb("+f.color+")";e.fill()}else{if(f.type=="gradient"){var d;if(f.gradientType=="linear"){d=GradientHelper.createLinearGradient(g,e,f)}else{d=GradientHelper.createRadialGradient(g,e,f)}e.fillStyle=d;e.fill()}else{if(f.type=="image"){var a=f.fileId;var c=$(".shape_img[src='"+a+"']");if(c.length==0){c=$("").appendTo("#shape_img_container");c.bind("load.drawshape",function(){var h=(Designer.config.panelItemWidth-g.props.w)/2;var i=(Designer.config.panelItemHeight-g.props.h)/2;e.translate(h,i);b(c);e.restore();$(this).attr("loaded","1")});c.attr("src",a)}else{if(c.attr("loaded")=="0"){c.bind("load.drawshape",function(){var h=0;var i=0;e.translate(h,i);b(c);e.restore()})}else{b(c)}}}}}e.restore();function b(h){e.save();e.clip();if(f.display=="fit"){var n=h.width();var i=h.height();var v=n/i;var m=g.props.w/g.props.h;if(v>m){var k=g.props.w;var p=0;var y=k/v;var o=g.props.h/2-y/2;e.drawImage(h[0],p,o,k,y)}else{var y=g.props.h;var o=0;var k=y*v;var p=g.props.w/2-k/2;e.drawImage(h[0],p,o,k,y)}}else{if(f.display=="stretch"){e.drawImage(h[0],0,0,g.props.w,g.props.h)}else{if(f.display=="original"){var n=h.width();var i=h.height();var p=g.props.w/2-n/2;var o=g.props.h/2-i/2;e.drawImage(h[0],p,o,n,i)}else{if(f.display=="tile"){var p=0;var n=h.width();var i=h.height();while(pm){var y=g.props.h;var o=0;var k=y*v;var p=g.props.w/2-k/2;e.drawImage(h[0],p,o,k,y)}else{var k=g.props.w;var p=0;var y=k/v;var o=g.props.h/2-y/2;e.drawImage(h[0],p,o,k,y)}}}}}}}e.restore()}},renderText:function(f,b){var d=$("#"+f.id);var l=d.find(".text_canvas[forshape="+f.id+"]");if(l.length==0){l=$("").appendTo(d);l.bind("focus",function(){$(this).blur()})}l.attr("readonly","readonly");if(f.text==null||f.text.trim()==""){l.css({height:"0px",width:"0px"}).hide();return}var c=f.fontStyle;var n={"line-height":Math.round(c.size*1.25)+"px","font-size":c.size+"px","font-family":c.fontFamily,"font-weight":c.bold?"bold":"normal","font-style":c.italic?"italic":"normal","text-align":c.textAlign,color:"rgb("+c.color+")","text-decoration":c.underline?"underline":"none",opacity:f.shapeStyle.alpha};l.css(n);l.show();var I=f.getTextBlock();if(f.fontStyle.orientation=="horizontal"){var a={x:I.x+I.w/2,y:I.y+I.h/2};I={x:a.x-I.h/2,y:a.y-I.w/2,w:I.h,h:I.w}}l.css({width:I.w});l.height(0);l.val(f.text);l.scrollTop(99999);var q=l.scrollTop();var g=0;if(c.vAlign=="middle"){g=(I.y+I.h/2-q/2)}else{if(f.fontStyle.vAlign=="bottom"){g=(I.y+I.h-q)}else{g=I.y}}var p={x:I.x+I.w/2,y:g+q/2};var i=f.props.angle;if(i!=0){var k={x:f.props.w/2,y:f.props.h/2};p=Utils.getRotated(k,p,i)}if(c.orientation=="horizontal"){i=(Math.PI*1.5+i)%(Math.PI*2)}var o=Math.round(i/(Math.PI*2)*360);var h="rotate("+o+"deg) scale("+Designer.config.scale+")";var e=I.w;var m=q;l.css({width:e,height:m,left:(p.x+(f.props.x-b.x)+10).toScale()-I.w/2,top:(p.y+(f.props.y-b.y)+10).toScale()-q/2,"-webkit-transform":h,"-ms-transform":h,"-o-transform":h,"-moz-transform":h,transform:h})},calculateTextLines:function(n,u,a){var m=u.w;var g=u.h;var b=[];var f=n.split(/\n/);for(var e=0;em){for(var d=0;dm){b.push(l);l=t[d]}else{l=s}}}else{var s=l+t;var k=a.measureText(s).width;if(k>m){b.push(l);l=t}else{l=s}}}if(l!=""){b.push(l)}}}return b},renderMarkers:function(e,a,k){if(a.attribute&&a.attribute.markers&&a.attribute.markers.length>0){var l=a.attribute.markers;var f=Schema.config.markerSize;var b=4;if(k){f=10}var m=a.attribute.markerOffset;if(k){m=5}var h=l.length*f+(l.length-1)*b;var c=a.props.w/2-h/2;for(var y=0;y0){for(var n=0;n").appendTo($("#"+i.id));var b=H[0].getContext("2d");var w="12px ";w+=i.fontStyle.fontFamily;b.font=w;var D=b.measureText(y).width;var a=20;if(x!=""){D+=20}var E,F;if(h=="mostleft"){E=-D-2}else{if(h=="leftedge"){E=-D/2}else{if(h=="left"){E=2}else{if(h=="center"){E=(i.props.w-D)/2}else{if(h=="right"){E=i.props.w-D-2;if(h=="rightedge"){E=i.props.w-D/2}else{E=i.props.w+2}}}}}}if(I=="mosttop"){F=-a}else{if(I=="topedge"){F=-a/2}else{if(I=="top"){F=0}else{if(I=="middle"){F=(i.props.h-a)/2}else{if(I=="bottom"){F=i.props.h-a}else{if(I=="bottomedge"){F=i.props.h-a/2}else{F=i.props.h}}}}}}var g={x:E,y:F,w:D,h:a};var G=Utils.getRotatedBox(g,i.props.angle,n);H.attr({width:G.w.toScale(),height:G.h.toScale()});b.font=w;var d=(G.x+(i.props.x-k.x)+10).toScale();var e=(G.y+(i.props.y-k.y)+10).toScale();if(h!="mostleft"||h=="left"||h!="right"){H.css({left:d,top:e})}b.scale(Designer.config.scale,Designer.config.scale);b.translate(G.w/2,G.h/2);b.rotate(i.props.angle);b.translate(-G.w/2,-G.h/2);b.translate((G.w-g.w)/2,(G.h-g.h)/2);b.globalAlpha=i.shapeStyle.alpha;if(c.type=="link"){b.fillStyle="#4183C4"}else{b.fillStyle="#333"}if(c.showType=="text"){b.fillStyle="#696969"}if(c.showType=="attr"){b.fillStyle="#191970"}b.textBaseline="middle";if(D>i.props.w){var tempShapeWidth=i.props.w;if(tempShapeWidth<100){tempShapeWidth=100}H[0].width=tempShapeWidth+10;H[0].height=Math.ceil(D/tempShapeWidth)*10+15;for(var v=0;v1){H.css({left:15,top:e})}if(h=="right"&&I!="mosttop"&&I!="bottom"){d=tempShapeWidth/4;H.css({left:d,top:e})}}else{if(h=="mostleft"){d=-D;H.css({left:d,top:e})}if(h=="right"){d=i.props.w-D;H.css({left:d,top:e})}b.fillText(y,0,a/2)}if(x!=""){if(x.indexOf("&#x")>=0){var icon=x.split("|")[0];var iconColor=x.split("|")[1];b.font="19px awsui-iconfont";icon=eval("('"+icon.replace("&#x","\\u").replace(";","")+"')");b.fillStyle=iconColor;b.fillText(icon,0,a/2);iconCavCode=H[0].toDataURL("image/png");c.iconCavCode=iconCavCode}else{var J="/images/data-attr/"+x+".png";var f=$(".shape_img[src='"+J+"']");if(f.length==0){f=$("").appendTo("#shape_img_container")}if(f.attr("loaded")=="true"){b.drawImage(f[0],g.w-20,0,20,20)}else{f.bind("load.drawshape",function(){$(this).attr("loaded","true");b.drawImage(f[0],g.w-20,0,20,20)})}}}b.beginPath();b.rect(0,0,D,a);b.closePath()}},renderLinker:function(Y,W){if(W){Y.points=Utils.getLinkerPoints(Y)}if(Y.linkerType=="curve"||Y.linkerType=="broken"){if(!Y.points||Y.points.length==0){Y.points=Utils.getLinkerPoints(Y)}}var P=Y.points;var S=Utils.copy(Y.from);var af=Utils.copy(Y.to);if(Y.attribute&&Y.attribute.collapseBy){$("#"+Y.id).hide();return}else{$("#"+Y.id).show()}var R=Utils.getEndpointAngle(Y,"from");var ac=Utils.getEndpointAngle(Y,"to");var ae=Utils.getLinkerLineStyle(Y.lineStyle);V(S,Y,ae.beginArrowStyle,R);V(af,Y,ae.endArrowStyle,ac);var O=af.x;var F=af.y;var E=S.x;var G=S.y;if(af.xE){E=T.x}}if(T.yG){G=T.y}}}var aa={x:O,y:F,w:E-O,h:G-F};var M=$("#"+Y.id);if(M.length==0){var Z=$("#designer_canvas");M=$("
    ").appendTo(Z)}if(!Model.getShapeById(Y.id)){M.css("z-index",Model.orderList.length+1)}var Q=M.find(".shape_canvas");Q.attr({width:(aa.w+20).toScale(),height:(aa.h+20).toScale()});M.css({left:(aa.x-10).toScale(),top:(aa.y-10).toScale(),width:(aa.w+20).toScale(),height:(aa.h+20).toScale()});var U=Q[0].getContext("2d");U.scale(Designer.config.scale,Designer.config.scale);U.translate(10,10);var L=Utils.getLinkerLineStyle(Y.lineStyle);U.lineWidth=L.lineWidth;U.strokeStyle="rgb("+L.lineColor+")";U.fillStyle="rgb("+L.lineColor+")";U.save();var i={x:S.x-aa.x,y:S.y-aa.y};var ad={x:af.x-aa.x,y:af.y-aa.y};U.save();if(L.lineStyle=="dashed"){this.setLineDash(U,[L.lineWidth*5,L.lineWidth*2])}else{if(L.lineStyle=="dot"){this.setLineDash(U,[L.lineWidth,L.lineWidth*1.5])}else{if(L.lineStyle=="dashdot"){this.setLineDash(U,[L.lineWidth*5,L.lineWidth*2,L.lineWidth,L.lineWidth*2])}}}U.lineJoin="round";U.beginPath();this.actions.move.call(U,i);if(Y.linkerType=="curve"){var H=P[0];var I=P[1];var J={x1:H.x-aa.x,y1:H.y-aa.y,x2:I.x-aa.x,y2:I.y-aa.y,x:ad.x,y:ad.y};this.actions.curve.call(U,J)}else{for(var N=0;N").appendTo(f)}var e=g.fontStyle;var c="scale("+Designer.config.scale+")";var a={"line-height":Math.round(e.size*1.25)+"px","font-size":e.size+"px","font-family":e.fontFamily,"font-weight":e.bold?"bold":"normal","font-style":e.italic?"italic":"normal","text-align":e.textAlign,color:"rgb("+e.color+")","text-decoration":e.underline?"underline":"none","-webkit-transform":c,"-ms-transform":c,"-o-transform":c,"-moz-transform":c,transform:c};b.css(a);if(g.text==null||g.text==""){b.hide();return}b.show();var h=g.text.replace(//g,">").replace(/\n/g,"
    ");b.html(h+"
    ");var i=this.getLinkerMidpoint(g);var d=f.position();b.css({left:i.x.toScale()-d.left-b.width()/2,top:i.y.toScale()-d.top-b.height()/2})},getLinkerMidpoint:function(h){var l={};if(h.linkerType=="normal"){l={x:0.5*h.from.x+0.5*h.to.x,y:0.5*h.from.y+0.5*h.to.y}}else{if(h.linkerType=="curve"){var g=h.from;var b=h.points[0];var m=h.points[1];var k=h.to;l={x:g.x*0.125+b.x*0.375+m.x*0.375+k.x*0.125,y:g.y*0.125+b.y*0.375+m.y*0.375+k.y*0.125}}else{var n=[];n.push(h.from);n=n.concat(h.points);n.push(h.to);var a=0;for(var f=1;fC){var c=(C-e)/i;l={x:(1-c)*b.x+c*m.x,y:(1-c)*b.y+c*m.y};break}e=o}}}return l},controlStatus:{resizeDir:[],rotatable:true},drawControls:function(f){var e=$("#shape_controls");if(e.length==0){var a=$("#designer_canvas");e=$("
    ").appendTo(a);e.append("");e.append("
    ");e.append("
    ");e.append("
    ");e.append("
    ");e.append("
    ");e.append("
    ");e.append("
    ");e.append("
    ");Designer.op.shapeResizable();e.append("");Designer.op.shapeRotatable();e.append("
    ");Designer.op.groupShapeChangable();$(".shape_controller").css({"border-color":Designer.config.anchorColor,width:Designer.config.anchorSize-2,height:Designer.config.anchorSize-2})}$(".shape_controller").css({"z-index":Model.orderList.length});$(".change_shape_icon").hide();e.show();var c=0;var h;var b;if(f.length==1){var g=Model.getShapeById(f[0]);h=g.props;c=g.props.angle;b=g.resizeDir;if(g.groupName&&SchemaGroup.groupExists(g.groupName)){$(".change_shape_icon").show()}}else{h=Utils.getControlBox(f);b=["tl","tr","br","bl"]}var k=true;for(var d=0;d1)){b=[]}}this.controlStatus.rotatable=k;this.controlStatus.resizeDir=b;this.rotateControls(h,c);return e},rotateControls:function(g,v){var l=$("#shape_controls");var m=Utils.getRotatedBox(g,v);var Y=m.w.toScale();var h=m.h.toScale();l.css({left:m.x.toScale(),top:m.y.toScale(),width:Y,height:h,"z-index":Model.orderList.length});var k=Y+20;var p=h+20;var f=$("#controls_bounding");f.attr({width:k,height:p});var q=f[0].getContext("2d");q.lineJoin="round";if(this.controlStatus.resizeDir.length==0){q.lineWidth=2;q.strokeStyle=Designer.config.selectorColor;q.globalAlpha=0.8}else{q.lineWidth=1;q.strokeStyle=Designer.config.selectorColor;q.globalAlpha=0.5}q.save();q.clearRect(0,0,k,p);q.translate(k/2,p/2);q.rotate(v);q.translate(-k/2,-p/2);q.translate(9.5,9.5);var b={x:Math.round((g.x-m.x).toScale()),y:Math.round((g.y-m.y).toScale()),w:Math.floor(g.w.toScale()+1),h:Math.floor(g.h.toScale()+1)};q.strokeRect(b.x,b.y,b.w,b.h);q.restore();var z=0-Designer.config.anchorSize/2;var t={};g=Utils.toScale(g);m=Utils.toScale(m);var w={x:(g.x+g.w/2),y:g.y+g.h/2};l.children(".shape_controller").hide();for(var s=0;s=0){d=g.x}else{if(o.indexOf("r")>=0){d=g.x+g.w}else{d=g.x+g.w/2}}if(o.indexOf("t")>=0){c=g.y}else{if(o.indexOf("b")>=0){c=g.y+g.h}else{c=g.y+g.h/2}}var e=Utils.getRotated(w,{x:d,y:c},v);a.css({left:e.x-m.x+z,top:e.y-m.y+z})}var n=Math.PI/8;l.children(".shape_controller").removeClass("s n e w");if(v>n&&v<=n*3){l.children("div[resizeDir=tl]").addClass("n");l.children("div[resizeDir=tr]").addClass("e");l.children("div[resizeDir=br]").addClass("s");l.children("div[resizeDir=bl]").addClass("w");l.children("div[resizeDir=l]").addClass("n w");l.children("div[resizeDir=r]").addClass("s e");l.children("div[resizeDir=b]").addClass("s w");l.children("div[resizeDir=t]").addClass("n e")}else{if(v>n*3&&v<=n*5){l.children("div[resizeDir=tl]").addClass("n e");l.children("div[resizeDir=tr]").addClass("s e");l.children("div[resizeDir=br]").addClass("s w");l.children("div[resizeDir=bl]").addClass("n w");l.children("div[resizeDir=l]").addClass("n");l.children("div[resizeDir=r]").addClass("s");l.children("div[resizeDir=b]").addClass("w");l.children("div[resizeDir=t]").addClass("e")}else{if(v>n*5&&v<=n*7){l.children("div[resizeDir=tl]").addClass("e");l.children("div[resizeDir=tr]").addClass("s");l.children("div[resizeDir=br]").addClass("w");l.children("div[resizeDir=bl]").addClass("n");l.children("div[resizeDir=l]").addClass("n e");l.children("div[resizeDir=r]").addClass("s w");l.children("div[resizeDir=b]").addClass("n w");l.children("div[resizeDir=t]").addClass("s e")}else{if(v>n*7&&v<=n*9){l.children("div[resizeDir=tl]").addClass("s e");l.children("div[resizeDir=tr]").addClass("s w");l.children("div[resizeDir=br]").addClass("n w");l.children("div[resizeDir=bl]").addClass("n e");l.children("div[resizeDir=l]").addClass("e");l.children("div[resizeDir=r]").addClass("w");l.children("div[resizeDir=b]").addClass("n");l.children("div[resizeDir=t]").addClass("s")}else{if(v>n*9&&v<=n*11){l.children("div[resizeDir=tl]").addClass("s");l.children("div[resizeDir=tr]").addClass("w");l.children("div[resizeDir=br]").addClass("n");l.children("div[resizeDir=bl]").addClass("e");l.children("div[resizeDir=l]").addClass("s e");l.children("div[resizeDir=r]").addClass("n w");l.children("div[resizeDir=b]").addClass("n e");l.children("div[resizeDir=t]").addClass("s w")}else{if(v>n*11&&v<=n*13){l.children("div[resizeDir=tl]").addClass("s w");l.children("div[resizeDir=tr]").addClass("n w");l.children("div[resizeDir=br]").addClass("n e");l.children("div[resizeDir=bl]").addClass("s e");l.children("div[resizeDir=l]").addClass("s");l.children("div[resizeDir=r]").addClass("n");l.children("div[resizeDir=b]").addClass("e");l.children("div[resizeDir=t]").addClass("w")}else{if(v>n*13&&v<=n*15){l.children("div[resizeDir=tl]").addClass("w");l.children("div[resizeDir=tr]").addClass("n");l.children("div[resizeDir=br]").addClass("e");l.children("div[resizeDir=bl]").addClass("s");l.children("div[resizeDir=l]").addClass("s w");l.children("div[resizeDir=r]").addClass("n e");l.children("div[resizeDir=b]").addClass("s e");l.children("div[resizeDir=t]").addClass("n w")}else{l.children("div[resizeDir=tl]").addClass("n w");l.children("div[resizeDir=tr]").addClass("n e");l.children("div[resizeDir=br]").addClass("s e");l.children("div[resizeDir=bl]").addClass("s w");l.children("div[resizeDir=l]").addClass("w");l.children("div[resizeDir=r]").addClass("e");l.children("div[resizeDir=b]").addClass("s");l.children("div[resizeDir=t]").addClass("n")}}}}}}}if(this.controlStatus.rotatable){var y=l.find(".shape_rotater");y.show();var x={x:g.x+g.w/2,y:g.y-20};var u=Utils.getRotated(w,x,v);y.css({top:u.y-20-m.y,left:u.x-20.5-m.x});var r=y[0].getContext("2d");r.lineWidth=1;r.strokeStyle=Designer.config.selectorColor;r.fillStyle="white";r.save();r.clearRect(0,0,41,40);r.translate(20.5,20);r.rotate(v);r.translate(-20.5,-20);r.beginPath();r.moveTo(20.5,20);r.lineTo(20.5,40);r.stroke();r.beginPath();r.arc(20.5,20,Designer.config.rotaterSize/2,0,Math.PI*2);r.closePath();r.fill();r.stroke();r.restore()}else{l.find(".shape_rotater").hide()}},renderShapeLink:function(b,a){b.find(".shape_link_point").remove();if(a.link){var c=$("").appendTo(b);c.on("mousedown.link",function(i){i.stopPropagation();var x=Model.getShapeById($(this).parent().attr("id"));myshapeLink=x;if(x!=undefined){var s=x.props.x;var t=x.props.y;var r=x.props.w;var l=x.props.h;var y=$("#link-dialog-normal_contextmenu");y.empty();var p=[];for(var m=0;m0&&window.opener){var z=parent.window.$("#appId").val();var e={sid:$("#sid").val(),cmd:"com.actionsoft.apps.coe.pal_pl_repository_designer_viewer_link_perm",uuids:w,filePerms:filePerms};if(window.opener){e.modelType="used"}else{if(z!=undefined&&z!="com.actionsoft.apps.coe.pal"&&z!=""){e.modelType="published"}}awsui.ajax.request({url:"./jd",method:"POST",data:e,async:false,ok:function(d){var B=[];var C=d.data.uuids;for(var A=0;A"+q.name+"";if(role=="owner"){n+='
    删除
    "}n+="";y.append(n)}}}var u=Utils.getShapeByPosition(s,t,false);var h=Designer.clipboard.elements.length;if(u==null){if(h>0){y.children("li[ac=paste]").show();y.children(".devi_clip").show()}}else{var x=u.shape;y.children("li[ac=cut]").show()}y.css({display:"block","z-index":Model.orderList.length+3,left:s+r+10,top:t+l});$(document).on("mousedown.link",":not(#link-dialog-normal_contextmenu li):not(#link-dialog-normal_contextmenu ul):not(#link-dialog-normal_contextmenu a):not(#link-dialog-normal_contextmenu div)",function(d){if(this.id=="link-dialog-normal_contextmenu"){return false}y.hide()})}i.stopPropagation()})}},renderSahpeAttachment:function(h,f){h.find(".shape_attachment_point").remove();var e=[];var g=[];var a=false;var d=function(i){$.ajax({method:"POST",async:i,url:"./jd?sid="+encodeURIComponent(sid)+"&cmd=com.actionsoft.apps.coe.pal_processlevel_upfile_load",data:{pl_uuid:ruuid,uuids:f.id},success:function(k){e=k.data.list;$.ajax({method:"POST",async:i,url:"./jd?sid="+encodeURIComponent(sid)+"&cmd=com.actionsoft.apps.coe.pal_processlevel_relation_upfile_load",data:{pl_uuid:ruuid,shape_uuid:f.id},success:function(l){g=l.data.list;a=true}})}})};d(true);var c=new Date().getTime();var b=window.setInterval(function(){var i=new Date().getTime();if(i-c>5000||a==true){window.clearInterval(b);if((e&&e.length>0)||(g&&g.length>0)){var k=$("
    "+""+"
    ").appendTo(h);k.on("mousedown.attachment",function(q){q.stopPropagation();d(false);var A=Model.getShapeById($(this).parent().attr("id"));myshapeLink=A;if(A!=undefined){var w=A.props.x;var x=A.props.y;var v=A.props.w;var r=A.props.h;var D=$("#attachment-dialog-normal_contextmenu");D.empty();D.append('');for(var u=0;u<2;u++){var C=e;var E="附件";if(u==0){}else{C=g;E="关联附件"}if(C.length>0){D.append('
  • '+E+"
  • ");for(var z=0;z'+l.fileName+"";if(m){t+='
    下载
    "}t+="";D.append(t)}}}if(e.length==0&&g.length==0){D.append('
  • '+"无附件"+"
  • ")}var y=Utils.getShapeByPosition(w,x,false);var p=Designer.clipboard.elements.length;if(y==null){if(p>0){D.children("li[ac=paste]").show();D.children(".devi_clip").show()}}else{var A=y.shape;D.children("li[ac=cut]").show()}D.css({display:"block","z-index":Model.orderList.length+3,left:w+v+10,top:x+r});$(document).on("mousedown.attachment",":not(#attachment-dialog-normal_contextmenu span):not(#attachment-dialog-normal_contextmenu li):not(#attachment-dialog-normal_contextmenu ul):not(#attachment-dialog-normal_contextmenu a):not(#attachment-dialog-normal_contextmenu div)",function(s){if(this.id=="attachment-dialog-normal_contextmenu"){return false}D.hide()})}q.stopPropagation()})}}},100)},}};var Model={define:{},persistence:{},orderList:[],maxZIndex:0,linkerMap:{map:{},add:function(b,a){if(!this.map[b]){this.map[b]=[]}if(this.map[b].indexOf(a)<0){this.map[b].push(a)}},remove:function(b,a){if(this.map[b]){Utils.removeFromArray(this.map[b],a)}},empty:function(){this.map={}}},groupMap:{map:{},add:function(a,b){this.map[a]=b},push:function(a,b){if(!this.map[a]){this.map[a]=[]}this.map[a].push(b)},remove:function(a){delete this.map[a]},empty:function(){this.map={}}},create:function(b,f,d){var a=Utils.newId();var g=Utils.copy(Schema.shapes[b]);g.id=a;g.props.x=f;g.props.y=d;g.props.zindex=Model.maxZIndex+1;g.props=$.extend(true,{},Schema.shapeDefaults.props,g.props);for(var c=0;c0){for(var p in Model.define.localAttribute[g.name]){e.attributesJsonArray.push(Utils.copy(Model.define.localAttribute[g.name][p]))}}}}Designer.events.push("create",g);return g},add:function(a,b){this.addMulti([a],b)},addMulti:function(e,c){if(typeof c=="undefined"){c=true}var d=[];for(var b=0;b0){for(var l=0;l0){this.updateMulti(h)}MessageSource.commit();return true},updatePage:function(c,a){var d=$.extend(Model.define.page,c);var b={page:Utils.copy(Model.persistence.page),update:Utils.copy(d)};Model.persistence.page=Utils.copy(d);MessageSource.send("updatePage",b);Designer.initialize.initCanvas()},updateLocalAttribute:function(b){var d=$.extend(Model.define.localAttribute,b);var a={localAttribute:Utils.copy(Model.persistence.localAttribute),update:Utils.copy(d)};Model.persistence.localAttribute=Utils.copy(d);MessageSource.send("updateLocalAttribute",a)},getShapeById:function(a){return this.define.elements[a]},getPersistenceById:function(a){return this.persistence.elements[a]},build:function(){this.orderList=[];this.linkerMap.empty();for(var c in Model.define.elements){var d=Model.getShapeById(c);this.orderList.push({id:d.id,zindex:d.props.zindex});if(d.name=="linker"){if(d.from.id!=null){this.linkerMap.add(d.from.id,d.id)}if(d.to.id!=null){this.linkerMap.add(d.to.id,d.id)}}if(d.group){this.groupMap.push(d.group,d.id)}}this.orderList.sort(function b(g,f){return g.zindex-f.zindex});for(var a=0;a0){e=this.orderList[this.orderList.length-1].zindex}this.maxZIndex=e},getShapeLinkers:function(a){return this.linkerMap.map[a]},getGroupShapes:function(a){return this.groupMap.map[a]},changeShape:function(b,a){var c=Schema.shapes[a];b.name=a;b.title=c.shapeName;b.attribute=c.attribute;b.dataAttributes=c.dataAttributes;b.path=c.path;b.textBlock=c.textBlock;b.anchors=c.anchors;Schema.initShapeFunctions(b);Designer.painter.renderShape(b)}};var Utils={getDomById:function(a){return document.getElementById(a)},newId:function(){var b=Math.random();var a=(b+new Date().getTime());return a.toString(16).replace(".","")},getShapeByPosition:function(k,g,K){var p=[];for(var Q=Model.orderList.length-1;Q>=0;Q--){var q=Model.orderList[Q].id;var aa=$("#"+q);var z=Model.getShapeById(q);var B=aa.position();var J=k-B.left;var I=g-B.top;var r={x:B.left,y:B.top,w:aa.width(),h:aa.height()};var P=aa.find(".shape_canvas")[0];var l=P.getContext("2d");var N=this.pointInRect(k,g,r);if(z.name=="linker"){if(!N){continue}if(K){continue}var m=10;m=m.toScale();var H={x:k-m,y:g-m,w:m*2,h:m*2};if(this.pointInRect(z.to.x.toScale(),z.to.y.toScale(),H)){var A={type:"linker_point",point:"end",shape:z};p.push(A);continue}else{if(this.pointInRect(z.from.x.toScale(),z.from.y.toScale(),H)){var A={type:"linker_point",point:"from",shape:z};p.push(A);continue}else{var C=aa.find(".text_canvas");var E=C.position();var H={x:E.left,y:E.top,w:C.width(),h:C.height()};if(this.pointInRect(J,I,H)){var A={type:"linker_text",shape:z};p.push(A);continue}m=7;m=m.toScale();var F=this.pointInLinker({x:k.restoreScale(),y:g.restoreScale()},z,m);if(F>-1){var A={type:"linker",shape:z,pointIndex:F};p.push(A);continue}}}}else{if(N&&z.locked&&!K){if(l.isPointInPath(J,I)){var A={type:"shape",shape:z};p.push(A)}continue}var m=7;if(N){m=m.toScale();var H={x:k-m,y:g-m,w:m*2,h:m*2};var a={x:z.props.x+z.props.w/2,y:z.props.y+z.props.h/2};var v=z.getAnchors();var A=null;for(var h=0;h0){var D=G.position();var e=J-D.left;var c=I-D.top;var s=G[0].getContext("2d");if(s.isPointInPath(e,c)){A={type:"dataAttribute",shape:z,attribute:u};break}}}}if(A!=null){p.push(A);continue}}if(!N){continue}if(l.isPointInPath(J,I)){if(K){var v=z.getAnchors();if(v&&v.length){var A={type:"shape",shape:z};p.push(A);continue}else{continue}}else{var A={type:"shape",shape:z};p.push(A);continue}}else{if(!z.attribute||typeof z.attribute.linkable=="undefined"||z.attribute.linkable){var w=Utils.getPointAngle(q,k.restoreScale(),g.restoreScale(),m);if(w!=null){var A=null;var M={angle:w};for(var L=1;L<=m;L++){if(w==0){M.x=J+L;M.y=I}else{if(w1&&K){A=p[0]}else{if(p.length>1){var f=p[0];if(f.type=="bounding"&&f.type!="linker_point"&&f.type!="linker"){return f}var F=[];var O=[];var t=[];for(var Q=0;Q0&&O.length>0){for(var Q=0;Q0){O.sort(function b(x,i){if(Utils.isSelected(x.shape.id)&&!Utils.isSelected(i.shape.id)){return -1}else{if(!Utils.isSelected(x.shape.id)&&Utils.isSelected(i.shape.id)){return 1}else{return i.shape.props.zindex-x.shape.props.zindex}}});A=O[0]}if(A==null&&F.length>0){F.sort(function b(x,i){if(Utils.isSelected(x.shape.id)&&!Utils.isSelected(i.shape.id)){return -1}else{if(!Utils.isSelected(x.shape.id)&&Utils.isSelected(i.shape.id)){return 1}else{return i.shape.props.zindex-x.shape.props.zindex}}});A=F[0]}if(A==null){A=p[0]}}}return A},checkCross:function(c,a,i,h){var e=false;var b=(a.x-c.x)*(h.y-i.y)-(a.y-c.y)*(h.x-i.x);if(b!=0){var f=((c.y-i.y)*(h.x-i.x)-(c.x-i.x)*(h.y-i.y))/b;var g=((c.y-i.y)*(a.x-c.x)-(c.x-i.x)*(a.y-c.y))/b;if((f>=0)&&(f<=1)&&(g>=0)&&(g<=1)){e=true}}return e},rectCross:function(f,e){var b=f.x;var d=f.x+f.w;var h=f.y;var u=f.y+f.h;var a=e.x;var c=e.x+e.w;var g=e.y;var i=e.y+e.h;if(((b=a.x&&c<=a.x+a.w&&b>=a.y&&b<=a.y+a.h){return true}return false},pointInLinker:function(b,l,y){var d=this.getLinkerLinePoints(l);var i={x:b.x-y,y:b.y};var h={x:b.x+y,y:b.y};var g={x:b.x,y:b.y-y};var f={x:b.x,y:b.y+y};for(var k=1;kd.x2){d.x2=a.x+a.w}if(d.y2==null||a.y+a.h>d.y2){d.y2=a.y+a.h}}var g={x:d.x1,y:d.y1,w:d.x2-d.x1,h:d.y2-d.y1};return g},getShapesBounding:function(e){var d={x1:null,y1:null,x2:null,y2:null};for(var a=0;ad.x2){d.x2=b.x+b.w}if(d.y2==null||b.y+b.h>d.y2){d.y2=b.y+b.h}}var c={x:d.x1,y:d.y1,w:d.x2-d.x1,h:d.y2-d.y1};return c},getShapeContext:function(b){var a=Utils.getDomById(b);return a.getElementsByTagName("canvas")[0].getContext("2d")},selectIds:[],selectShape:function(A,k){if(typeof A=="string"){var d=A;A=[];A.push(d)}if(A.length<=0){return}var a=Utils.mergeArray([],A);for(var m=0;m0&&!e){var l=Designer.painter.drawControls(f)}if(typeof k=="undefined"){k=true}if(this.selectCallback&&k){this.selectCallback()}Designer.events.push("selectChanged");this.showLinkerCursor()},selectCallback:null,unselect:function(){var a=this.selectIds;this.selectIds=[];for(var d=0;d=0&&!this.isLocked(a)){return true}return false},isLocked:function(a){if(Model.getShapeById(a).locked){return true}else{return false}},linkerCursorTimer:null,showLinkerCursor:function(){this.hideLinkerCursor();var r=Utils.getSelectedIds();if(r.length==1){var e=Model.getShapeById(r[0]);if(e.name!="linker"){var k=Model.linkerMap.map[e.id];if(k&&k.length){var s=[];for(var c=0;c").appendTo("#designer_canvas");var a=d.linker;var e=(a.lineStyle.lineWidth+2).toScale();if(e<5){e=5}var g=e/2;d.half=g;d.dom=c;c.css({width:e,height:e,"-webkit-border-radius":g,"-moz-border-radius":g,"-ms-border-radius":g,"-o-border-radius":g,"border-radius":g,"z-index":$("#"+a.id).css("z-index")})}this.linkerCursorTimer=setInterval(function(){for(var r=0;r=m.maxT){m.t=0;m.dom.show()}var n=m.t;if(u.linkerType=="broken"){for(var s=1;s=o.t&&n=1){m.dom.hide()}}},30)},hideLinkerCursor:function(){if(this.linkerCursorTimer){clearInterval(this.linkerCursorTimer)}$(".linker_cursor").remove()},showLinkerControls:function(){this.hideLinkerControls();var d=Utils.getSelectedIds();var a=null;if(d.length==1){var c=Model.getShapeById(d[0]);if(c.name=="linker"&&c.linkerType=="curve"){a=c}}if(a==null){return}function b(e,w){var o=null;var k=null;if(w=="from"){o=e.from;k=e.points[0]}else{o=e.to;k=e.points[1]}var f=Utils.measureDistance(o,k).toScale()-6;var i={x:(0.5*o.x+0.5*k.x).toScale(),y:(0.5*o.y+0.5*k.y).toScale()};var n=Utils.getAngle(o,k)+Math.PI/2;var l=$("
    ").appendTo("#designer_canvas");var h=$("
    ").appendTo("#designer_canvas");var m=Math.round(n/(Math.PI*2)*360);var g="rotate("+m+"deg)";l.css({left:i.x,top:i.y-f/2,height:f,"z-index":Model.orderList.length,"-webkit-transform":g,"-ms-transform":g,"-o-transform":g,"-moz-transform":g,transform:g});h.css({left:k.x.toScale()-4,top:k.y.toScale()-4,"z-index":Model.orderList.length});h.attr("ty",w);h.unbind().bind("mousedown",function(p){e=Model.getShapeById(e.id);var q=null;if(w=="from"){q=e.points[0]}else{q=e.points[1]}p.stopPropagation();h.addClass("moving");Designer.op.changeState("changing_curve");$(document).bind("mousemove.change_curve",function(r){var s=Utils.getRelativePos(r.pageX,r.pageY,$("#designer_canvas"));q.x=s.x;q.y=s.y;Designer.painter.renderLinker(e);Model.define.elements[e.id]=e;Utils.showLinkerControls();$(".linker_control_point[ty="+h.attr("ty")+"]").addClass("moving");$(document).unbind("mouseup.changed_curve").bind("mouseup.changed_curve",function(t){Model.update(e);$(document).unbind("mouseup.changed_curve")})});$(document).unbind("mouseup.change_curve").bind("mouseup.change_curve",function(r){$(document).unbind("mouseup.change_curve");$(document).unbind("mousemove.change_curve");$(".linker_control_point").removeClass("moving");Designer.op.resetState()})});return h}b(a,"from");b(a,"to")},hideLinkerControls:function(){$(".linker_control_line").remove();$(".linker_control_point").remove()},showAnchors:function(e){if($(".shape_contour[forshape="+e.id+"]").length>0){return}var b=$("
    ").appendTo($("#designer_canvas"));b.css({left:e.props.x.toScale(),top:e.props.y.toScale(),"z-index":Model.orderList.length+1});if(!Utils.isSelected(e.id)){b.addClass("hovered_contour")}var k=Designer.config.anchorSize-2;var i={"border-color":Designer.config.anchorColor,"border-radius":Designer.config.anchorSize/2,width:k,height:k};var h=e.getAnchors();var d={x:e.props.w/2,y:e.props.h/2};var a=e.props.angle;for(var f=0;f").appendTo(b);var w=this.getRotated(d,c,a);i.left=w.x.toScale()-Designer.config.anchorSize/2;i.top=w.y.toScale()-Designer.config.anchorSize/2;g.css(i)}},hideAnchors:function(){$(".hovered_contour").remove()},removeAnchors:function(){$(".shape_contour").remove()},showLockers:function(w){var f=$("#"+w.id);var b=f.position();function k(){var n=$("").appendTo(f);var m=n[0].getContext("2d");m.strokeStyle="#777";m.lineWidth=1;var l=9;m.beginPath();m.moveTo(2,2);m.lineTo(l,l);m.moveTo(2,l);m.lineTo(l,2);m.stroke();return n}function a(l){var m=k();m.css({left:l.x.toScale()-b.left-5,top:l.y.toScale()-b.top-5})}if(w.name!="linker"){var i=w.props;var h={x:i.x+i.w/2,y:i.y+i.h/2};var g=this.getRotated(h,{x:i.x,y:i.y},w.props.angle);a(g);var e=this.getRotated(h,{x:i.x+i.w,y:i.y},w.props.angle);a(e);var d=this.getRotated(h,{x:i.x+i.w,y:i.y+i.h},w.props.angle);a(d);var c=this.getRotated(h,{x:i.x,y:i.y+i.h},w.props.angle);a(c)}else{a(w.from);a(w.to)}},removeLockers:function(){$(".shape_locker").remove()},measureDistance:function(b,a){var d=a.y-b.y;var c=a.x-b.x;return Math.sqrt(Math.pow(d,2)+Math.pow(c,2))},removeFromArray:function(a,c){var b=a.indexOf(c);if(b>=0){a.splice(b,1)}return a},addToArray:function(a,c){var b=a.indexOf(c);if(b<0){a.push(c)}return a},mergeArray:function(d,c){for(var a=0;a=a/4&&b=a/4*3&&b=a/4*5&&b=d.x-q&&e.x<=d.x+d.w+q){var l;if(e.xab.y){c=s;e=ab;h=false}else{c=ab;e=s;h=true}var d=Model.getShapeById(c.id).props;var A=Model.getShapeById(e.id).props;if(e.x>=d.x-q&&e.x<=d.x+d.w+q){var k=c.y+q;var l;if(e.xab.x){c=s;e=ab;h=false}else{c=ab;e=s;h=true}var d=Model.getShapeById(c.id).props;var A=Model.getShapeById(e.id).props;if(e.y>=d.y-q&&e.y<=d.y+d.h+q){var l=c.x+q;var k;if(e.y=d.y-q&&e.y<=d.y+d.h+q){var l=c.x-q;var k;if(e.y=d.x&&A.x<=B){var t=d.x+d.w/2;if(e.xf?B+q:f+q}if(A.yc.x){var l=c.x+i/2;m.push({x:l,y:c.y});m.push({x:l,y:e.y})}else{var z=d.y+d.h;var n=A.y+A.h;var l=c.x+q;var k;if(n>=d.y&&A.y<=z){var t=d.y+d.h/2;if(e.yn?z+q:n+q}if(A.x+A.w>c.x){l=A.x+A.w+q}}else{if(e.yc.x&&e.y>c.y){m.push({x:e.x,y:c.y})}else{if(e.x>c.x&&A.x>c.x){var l;if(A.x-c.xd.y+d.h){var z=d.y+d.h;var l=c.x+q;var k;if(e.y-zc.x){l=f+q}else{l=c.x+q}var k;if(e.yc.y){m.push({x:e.x,y:c.y})}else{if(e.x=c.x&&e.y>d.y+d.h){var z=d.y+d.h;var l=c.x-q;var k;if(e.y-zc.x&&e.yc.x&&A.x>c.x){var l;if(A.x-c.xc.x){l=f+q}else{l=c.x+q}var k;if(e.y>d.y+d.h){k=e.y+q}else{k=d.y+d.h+q}m.push({x:l,y:c.y});m.push({x:l,y:k});m.push({x:e.x,y:k})}}}}else{if((D==3&&C==4)||(D==4&&C==3)){if(D==4){c=s;e=ab;h=false}else{c=ab;e=s;h=true}var d=Model.getShapeById(c.id).props;var A=Model.getShapeById(e.id).props;var f=A.x+A.w;if(e.x=c.x&&e.yd.y+d.h){k=e.y+q}else{k=d.y+d.h+q}m.push({x:l,y:c.y});m.push({x:l,y:k});m.push({x:e.x,y:k})}}}}}}}}}}}}}if(h){m.reverse()}}else{if(s.id!=null||ab.id!=null){var c,e,h,o;if(s.id!=null){c=s;e=ab;h=false;o=s.angle}else{c=ab;e=s;h=true;o=ab.angle}var a=Model.getShapeById(c.id).props;if(o>=r/4&&o=u){m.push({x:c.x,y:e.y})}else{var t=u/2;m.push({x:c.x,y:c.y-t});m.push({x:e.x,y:c.y-t})}}else{m.push({x:c.x,y:c.y-q});if(i>=u){if(e.x>=a.x-q&&e.x<=a.x+a.w+q){var p=a.x+a.w/2;if(e.x=a.x-q&&e.x<=a.x+a.w+q){var p=a.x+a.w/2;if(e.x=r/4*3&&oc.x){if(i>=u){var t=i/2;m.push({x:c.x+t,y:c.y});m.push({x:c.x+t,y:e.y})}else{m.push({x:e.x,y:c.y})}}else{m.push({x:c.x+q,y:c.y});if(i>=u){if(e.y>=a.y-q&&e.y<=a.y+a.h+q){var p=a.y+a.h/2;if(e.y=a.y-q&&e.y<=a.y+a.h+q){var p=a.y+a.h/2;if(e.y=r/4*5&&oc.y){if(i>=u){m.push({x:c.x,y:e.y})}else{var t=u/2;m.push({x:c.x,y:c.y+t});m.push({x:e.x,y:c.y+t})}}else{m.push({x:c.x,y:c.y+q});if(i>=u){if(e.x>=a.x-q&&e.x<=a.x+a.w+q){var p=a.x+a.w/2;if(e.x=a.x-q&&e.x<=a.x+a.w+q){var p=a.x+a.w/2;if(e.x=u){var t=i/2;m.push({x:c.x-t,y:c.y});m.push({x:c.x-t,y:e.y})}else{m.push({x:e.x,y:c.y})}}else{m.push({x:c.x-q,y:c.y});if(i>=u){if(e.y>=a.y-q&&e.y<=a.y+a.h+q){var p=a.y+a.h/2;if(e.y=a.y-q&&e.y<=a.y+a.h+q){var p=a.y+a.h/2;if(e.y=u){var t=(ab.x-s.x)/2;m.push({x:s.x+t,y:s.y});m.push({x:s.x+t,y:ab.y})}else{var t=(ab.y-s.y)/2;m.push({x:s.x,y:s.y+t});m.push({x:ab.x,y:s.y+t})}}}}else{if(w.linkerType=="curve"){var s=w.from;var ab=w.to;var b=this.measureDistance(s,ab);var g=b*0.4;function v(F,G){if(F.id!=null){return{x:F.x-g*Math.cos(F.angle),y:F.y-g*Math.sin(F.angle)}}else{var H=Math.abs(F.y-G.y);var E=Math.abs(F.x-G.x);var x=Math.atan(H/E);var y={};if(F.x<=G.x){y.x=F.x+g*Math.cos(x)}else{y.x=F.x-g*Math.cos(x)}if(F.y<=G.y){y.y=F.y+g*Math.sin(x)}else{y.y=F.y-g*Math.sin(x)}return y}}m.push(v(s,ab));m.push(v(ab,s))}}return m},getLinkerLinePoints:function(b){var e=[];if(b.linkerType!="curve"){e.push(b.from);e=e.concat(b.points)}else{var a=0.05;var d=0;while(d<=1){var c={x:(1-d)*(1-d)*(1-d)*b.from.x+3*(1-d)*(1-d)*d*b.points[0].x+3*(1-d)*d*d*b.points[1].x+d*d*d*b.to.x,y:(1-d)*(1-d)*(1-d)*b.from.y+3*(1-d)*(1-d)*d*b.points[0].y+3*(1-d)*d*d*b.points[1].y+d*d*d*b.to.y};e.push(c);d+=a}}e.push(b.to);return e},getLinkerBox:function(g){var s=this.getLinkerLinePoints(g);var d=s[0].x;var c=s[0].y;var b=s[0].x;var a=s[0].y;for(var e=0;eb){b=h.x}}if(h.ya){a=h.y}}}var f={x:d,y:c,w:b-d,h:a-c};return f},getShapeBox:function(b){var c=b.props;var a=b.props.angle;return this.getRotatedBox(c,a)},getRotatedBox:function(c,a,i){if(a==0){return c}else{if(!i){i={x:c.x+c.w/2,y:c.y+c.h/2}}var g=this.getRotated(i,{x:c.x,y:c.y},a);var f=this.getRotated(i,{x:c.x+c.w,y:c.y},a);var e=this.getRotated(i,{x:c.x+c.w,y:c.y+c.h},a);var d=this.getRotated(i,{x:c.x,y:c.y+c.h},a);var b=Math.min(g.x,f.x,e.x,d.x);var k=Math.max(g.x,f.x,e.x,d.x);var w=Math.min(g.y,f.y,e.y,d.y);var h=Math.max(g.y,f.y,e.y,d.y);return{x:b,y:w,w:k-b,h:h-w}}},getRotated:function(g,f,d){var c=this.measureDistance(g,f);if(c==0||d==0){return f}var a=Math.atan(Math.abs(f.x-g.x)/Math.abs(g.y-f.y));if(f.x>=g.x&&f.y>=g.y){a=Math.PI-a}else{if(f.x<=g.x&&f.y>=g.y){a=Math.PI+a}else{if(f.x<=g.x&&f.y<=g.y){a=Math.PI*2-a}}}a=a%(Math.PI*2);var b=(a+d)%(Math.PI*2);var e={x:g.x+Math.sin(b)*c,y:g.y-Math.cos(b)*c};return e},getShapeAnchorInLinker:function(f){var s=f.getAnchors();var h=[];var o={x:f.props.x+f.props.w/2,y:f.props.y+f.props.h/2};for(var k=0;k=0;g--){var a=Model.orderList[g].id;var K=Model.getShapeById(a);if(K.name!="linker"){continue}var r=K;var m=null;l=3;for(var k=0;k-1){if(m==null){m={linker:r,anchors:[],type:"line"}}m.anchors.push(b)}}}if(m!=null){q.push(m)}}return q},getEndpointAngle:function(a,c){var e;if(c=="from"){e=a.from}else{e=a.to}var g;if(a.linkerType=="normal"){if(c=="from"){g=a.to}else{g=a.from}}else{if(a.linkerType=="broken"){if(c=="from"){g=a.points[0]}else{g=a.points[a.points.length-1]}}else{var b=12;var f;var d=Utils.measureDistance(a.from,a.to);if(c=="from"){f=b/d}else{f=1-b/d}g={x:(1-f)*(1-f)*(1-f)*a.from.x+3*(1-f)*(1-f)*f*a.points[0].x+3*(1-f)*f*f*a.points[1].x+f*f*f*a.to.x,y:(1-f)*(1-f)*(1-f)*a.from.y+3*(1-f)*(1-f)*f*a.points[0].y+3*(1-f)*f*f*a.points[1].y+f*f*f*a.to.y}}}return this.getAngle(g,e)},getAngle:function(a,b){var c=Math.atan(Math.abs(a.y-b.y)/Math.abs(a.x-b.x));if(b.x<=a.x&&b.y>a.y){c=Math.PI-c}else{if(b.x=a.x&&b.y0){for(var g=0;g0){for(var d=0;d=0;n--){var k=Model.orderList[n].id;if(l.id!=k&&!Utils.isSelected(k)&&b.indexOf(k)<0){var m=Model.getShapeById(k);if(!m.attribute||typeof m.attribute.container=="undefined"||m.attribute.container==false){if(!Utils.isFamilyShape(m,l)){var i=Utils.getShapeBox(m);if(Utils.rectInRect(i,l.props)){h.push(m);b.push(k)}}}}}return h}return f},getAttachedShapes:function(c){var a=[];for(var f=0;f=0;d--){var k=Model.orderList[d].id;var e=Model.getShapeById(k);if(e.attachTo==h.id&&!Utils.isSelected(k)&&a.indexOf(k)<0){b.push(e)}}g=g.concat(b)}}return g},copy:function(a){return $.extend(true,{},a)},rangeChildren:function(D){var A=[];if(D.children&&D.children.length>0){if(D.name=="verticalPool"){var f=[];var l=[];for(var B=0;B-1){continue}A.push(d[e])}}n.props.x=b;Designer.painter.renderShape(n);A.push(n);b+=n.props.w}l.sort(function(i,h){return i.props.y-h.props.y});var a=D.props.y+40;for(var B=0;B-1){continue}A.push(d[e])}}n.props.y=a;Designer.painter.renderShape(n);A.push(n);a+=n.props.h}l.sort(function(i,h){return i.props.x-h.props.x});var b=D.props.x+40;for(var B=0;B=0;q--){var m=Model.orderList[q].id;var p=Model.getShapeById(m);if(p.attribute&&p.attribute.collapseBy==n.id&&s.indexOf(m)<0){l.push(p)}}i=i.concat(l)}}return i},getCollapsedShapesById:function(h){var g=[];for(var k=Model.orderList.length-1;k>=0;k--){var i=Model.orderList[k].id;var f=Model.getShapeById(i);if(f.attribute&&f.attribute.collapseBy==h){g.push(f)}}return g},getShapeLineStyle:function(d,c){if(c==false||!Model.define.theme||!Model.define.theme.shape){return $.extend({},Schema.shapeDefaults.lineStyle,d)}else{return $.extend({},Schema.shapeDefaults.lineStyle,Model.define.theme.shape.lineStyle,d)}},getLinkerLineStyle:function(d,c){if(c==false||!Model.define.theme||!Model.define.theme.linker){return $.extend({},Schema.linkerDefaults.lineStyle,d)}else{return $.extend({},Schema.linkerDefaults.lineStyle,Model.define.theme.linker.lineStyle,d)}},getShapeFontStyle:function(c,d){if(d==false||!Model.define.theme||!Model.define.theme.shape){return $.extend({},Schema.shapeDefaults.fontStyle,c)}else{return $.extend({},Schema.shapeDefaults.fontStyle,Model.define.theme.shape.fontStyle,c)}},getLinkerFontStyle:function(c,d){if(d==false||!Model.define.theme||!Model.define.theme.linker){return $.extend({},Schema.linkerDefaults.fontStyle,c)}else{return $.extend({},Schema.linkerDefaults.fontStyle,Model.define.theme.linker.fontStyle,c)}},getShapeFillStyle:function(d,c){if(c==false||!Model.define.theme||!Model.define.theme.shape){return $.extend({},Schema.shapeDefaults.fillStyle,d)}else{return $.extend({},Schema.shapeDefaults.fillStyle,Model.define.theme.shape.fillStyle,d)}},containsChinese:function(b){if(escape(b).indexOf("%u")>=0){return true}else{return false}},filterXss:function(b){b=b.toString();b=b.replace(//g,">");b=b.replace(/%3E/g,">");b=b.replace(/'/g,"'");b=b.replace(/"/g,""");return b}};var GradientHelper={createLinearGradient:function(f,i,h){var b=f.props;var c;var e;var d;if(b.w>b.h){c={x:0,y:b.h/2};e={x:b.w,y:b.h/2};d=(h.angle+Math.PI/2)%(Math.PI*2)}else{c={x:b.w/2,y:0};e={x:b.w/2,y:b.h};d=h.angle}if(d!=0){var a={x:b.w/2,y:b.h/2};c=Utils.getRotated(a,c,d);e=Utils.getRotated(a,e,d);if(c.x<0){c.x=0}if(c.x>f.props.w){c.x=f.props.w}if(c.y<0){c.y=0}if(c.y>f.props.h){c.y=f.props.h}if(e.x<0){e.x=0}if(e.x>f.props.w){e.x=f.props.w}if(e.y<0){e.y=0}if(e.y>f.props.h){e.y=f.props.h}}var g=i.createLinearGradient(c.x,c.y,e.x,e.y);g.addColorStop(0,"rgb("+h.beginColor+")");g.addColorStop(1,"rgb("+h.endColor+")");return g},createRadialGradient:function(a,e,f){var d=a.props;var b=d.h;if(d.w255){d=255}var k=Math.round(e+(255-e)/255*h);if(k>255){k=255}var s=Math.round(i+(255-i)/255*h);if(s>255){s=255}return d+","+k+","+s},getDarkerColor:function(c){var h=60;var f=c.split(",");var a=parseInt(f[0]);var e=parseInt(f[1]);var i=parseInt(f[2]);var d=Math.round(a-a/255*h);if(d<0){d=0}var k=Math.round(e-e/255*h);if(k<0){k=0}var s=Math.round(i-i/255*h);if(s<0){s=0}return d+","+k+","+s}};var MessageSource={batchSize:0,messages:[],withUndo:true,withMessage:true,withDock:true,undoStack:{stack:[],push:function(b,a){this.stack.push(b);if(typeof a=="undefined"){a=true}if(a){MessageSource.redoStack.stack=[]}Designer.events.push("undoStackChanged",this.stack.length)},pop:function(){var b=this.stack.length;if(b==0){return null}var a=this.stack[b-1];this.stack.splice(b-1,1);MessageSource.redoStack.push(a);Designer.events.push("undoStackChanged",this.stack.length);return a}},redoStack:{stack:[],push:function(a){this.stack.push(a);Designer.events.push("redoStackChanged",this.stack.length)},pop:function(){var b=this.stack.length;if(b==0){return null}var a=this.stack[b-1];this.stack.splice(b-1,1);MessageSource.undoStack.push(a,false);Designer.events.push("redoStackChanged",this.stack.length);return a}},beginBatch:function(){this.batchSize++},commit:function(){this.batchSize--;this.submit()},submit:function(){if(this.batchSize==0&&this.messages.length!=0){if(this.withDock){Dock.update(true)}if(this.withMessage==false){this.messages=[];return}if(this.withUndo){this.undoStack.push(this.messages)}if(chartId!=""){var b=JSON.stringify(this.messages);if(role!="trial"){$("#saving_tip").text("<@i18n resource='diagraming.saving'/>")}var a={action:"command",messages:b,ignore:"messages",name:userName};CLB.send(a,function(){if(role!="trial"){$("#saving_tip").text("<@i18n resource='diagraming.saved'/>")}})}this.messages=[]}},send:function(b,a){this.messages.push({action:b,content:a});this.submit()},receive:function(a){this.doWithoutMessage(function(){MessageSource.executeMessages(a,true);Utils.showLinkerControls();Utils.showLinkerCursor()})},undo:function(){var a=this.undoStack.pop();if(a==null){return}this.doWithoutUndo(function(){MessageSource.beginBatch();for(var d=0;d