From c37c87e4b5c220ea5673c4f7f246faeb6fa5bb23 Mon Sep 17 00:00:00 2001
From: "446052889@qq.com" <446052889@qq.com>
Date: Mon, 15 Jul 2024 09:36:15 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=8A=E5=88=A9=E9=80=82=E9=85=8DAris?=
=?UTF-8?q?=E5=92=8Cnqms=E5=BB=BA=E6=A8=A1=E6=96=B9=E6=B3=95=EF=BC=88?=
=?UTF-8?q?=E4=B8=89=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../scripts/diagraming/designer.core.debug.js | 166 +++++++++++++-----
.../scripts/diagraming/designer.core.js | 2 +-
.../scripts/diagraming/schema/schema.js | 66 ++++---
3 files changed, 166 insertions(+), 68 deletions(-)
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 0490c367..35939cc2 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
@@ -3890,6 +3890,9 @@ var Designer = {
}
}
this.closePath()
+ },
+ curveArc: function (a) {
+ this.arc(a.centerX, a.centerY, a.radius, a.startAngle, a.endAngle);
}
},
setLineDash: function (d, c) {
@@ -3919,6 +3922,12 @@ var Designer = {
o.lineStyle, s.lineStyle);
var n = $.extend({},
o.fillStyle, s.fillStyle);
+ if (s.textStyle) {
+ // path 中文字处理
+ m.font = s.textStyle.size + " " + o.fontStyle.fontFamily;
+ m.fillStyle = "rgb(" + s.textStyle.color + ")";
+ m.fillText(s.textStyle.text, s.textStyle.x, s.textStyle.y);
+ }
for (var r = 0; r < s.actions.length; r++) {
var j = s.actions[r];
this.actions[j.action].call(m, j)
@@ -3955,16 +3964,22 @@ var Designer = {
y: 0,
w: h.props.w,
h: h.props.h,
- angle: h.props.angle
+ angle: h.props.angle,
+ panelProps: h.props.panelProps
};
i.clearRect(0, 0, Designer.config.panelItemWidth, Designer.config.panelItemHeight);
if (l.w >= 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)
+ if (!!l.panelProps) {
+ l.w = h.props.w;
+ l.h = h.props.h;
} else {
- l.h = Designer.config.panelItemHeight - h.lineStyle.lineWidth * 2;
- l.w = parseInt(h.props.w / h.props.h * l.h)
+ 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;
@@ -3973,6 +3988,14 @@ var Designer = {
i.globalAlpha = h.shapeStyle.alpha;
var j = (Designer.config.panelItemWidth - l.w) / 2;
var k = (Designer.config.panelItemHeight - l.h) / 2;
+ if (!!l.panelProps) {
+ if (!!l.panelProps.x) {
+ j = -l.panelProps.x;
+ }
+ if (!!l.panelProps.y) {
+ k = -l.panelProps.y;
+ }
+ }
i.translate(j, k);
i.translate(l.w / 2, l.h / 2);
i.rotate(l.angle);
@@ -4217,6 +4240,7 @@ var Designer = {
this.renderPath(n, q, u);
this.renderText(q, t);
this.renderDataAttributes(q, t);
+ this.renderTitleShow(q, t);
Designer.painter.renderShapeLink(o, q); //节点链接
Designer.painter.renderSahpeAttachment(o, q); //节点附件
if (q.attributesJsonArray != undefined && q.attributesJsonArray.length > 0) {
@@ -4263,54 +4287,83 @@ var Designer = {
},
fillShape: function (n, i, h) {
i.save();
+ // 颜色叠加
+ if (typeof h.colorOverlay !== 'undefined') {
+ if (h.colorOverlay === 'multiplyOverlay') {
+ h.color = multiplyColors(h.color);
+ }
+ }
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 == "gradient") {
+ var j;
+ if (h.gradientType == "linear") {
+ j = GradientHelper.createLinearGradient(n, i, h)
} 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 = (Designer.config.panelItemWidth - n.props.w) / 2;
- // var a = (Designer.config.panelItemHeight - n.props.h) / 2;
- var b = 0;// by sunlh 20200716 svg shape
- var a = 0;
- i.translate(b, a);
- l(k);
- i.restore()
- })
- } else {
- l(k)
- }
- }
+ j = GradientHelper.createRadialGradient(n, i, h)
+ }
+ i.fillStyle = j;
+ i.fill()
+ } else if (h.type === "image" || h.type === "imageDef") {
+ let isInvalidImage = false // 自定义图片图元 图片是否被替换标志位
+ let m = h.fileId
+ if (h.from === 'insert') {
+ m = shapeImages[h.fileId]
+ }
+ if (h.type === "imageDef") {
+ if (imageDefMap[h.fileId]) {
+ m = imageDefMap[h.fileId]
+ } else {
+ m = shapeImages[h.fileId]
+ isInvalidImage = true
}
}
+ var k = $(".shape_img[src='" + m + "']");
+ if (k.length == 0) {
+ k = $("
").appendTo("#shape_img_container");
+ k.bind("load.drawshape",
+ function () {
+ var b = h.from === 'insert' ? 0 : (Designer.config.panelItemWidth - n.props.w) / 2;
+ var a = h.from === 'insert' ? 0 : (Designer.config.panelItemHeight - n.props.h) / 2;
+ if (isInvalidImage) {
+ a = 0
+ b = 0
+ }
+ 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 = (Designer.config.panelItemWidth - n.props.w) / 2;
+ // var a = (Designer.config.panelItemHeight - n.props.h) / 2;
+ var b = 0;// by sunlh 20200716 svg shape
+ var a = 0;
+ i.translate(b, a);
+ l(k);
+ i.restore()
+ })
+ } else {
+ l(k)
+ }
}
+
+ // 颜色叠加 乘法处理
+ function multiplyColors(color1) {
+ // 将颜色转换为RGB数组格式
+ let [r1, g1, b1] = color1.split(',').map(Number);
+ let [r2, g2, b2] = color1.split(',').map(Number);
+ let r = (r1 / 255) * (r2 / 255) * 255;
+ let g = (g1 / 255) * (g2 / 255) * 255;
+ let b = (b1 / 255) * (b2 / 255) * 255;
+ // 返回新的RGB颜色字符串
+ return `${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)}`;
+ }
+
i.restore();
function l(r) {
@@ -4562,6 +4615,25 @@ var Designer = {
}
}
},
+ renderTitleShow: function (i, k) {
+ if (i.props.titleProps) {
+ var H = $("").appendTo($("#" + i.id));
+ H.css({
+ left: (10 + i.props.titleProps.x) * Designer.config.scale + 'px',
+ top: (17 + i.props.titleProps.y) * Designer.config.scale + 'px',
+ });
+ var b = H[0].getContext("2d");
+ var w = "13px ";
+ w += i.fontStyle.fontFamily;
+ b.font = w;
+ b.fillStyle = "#696969";
+ if (i.titleStyle && i.titleStyle.titleColor) {
+ b.fillStyle = i.titleStyle.titleColor;
+ }
+ b.scale(Designer.config.scale, Designer.config.scale);
+ b.fillText(i.title, 0, 12);
+ }
+ },
renderDataAttributes: function (i, k) {
$("#" + i.id).children(".attr_canvas").remove();
if (!i.dataAttributes || i.dataAttributes.length == 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 0aa69c03..3d66853f 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 +1 @@
-Schema.init(!0),Schema.initMarkers(),$(function(){if("trial"==role?Designer.status="demo":"viewer"==role?Designer.status="readonly":"running"==role&&(Designer.status="running"),Designer.init(),UI.init(),Dock.init(),Navigator.init(),"readonly"==Designer.status)return Designer.setReadonly(!0),$("#moreShapes").hide(),void Customize.init();"demo"==Designer.status&&UI.gettingStart()});var Designer={config:{panelItemWidth:30,panelItemHeight:30,pageMargin:10,anchorSize:8,rotaterSize:9,anchorColor:"#833",selectorColor:"#833",scale:1},status:"",initialize:{initialized:!1,initLayout:function(){$(window).bind("resize.designer",function(){showPainting();var e=$(window).height()-$("#designer_header").outerHeight()-$("#designer_footer").outerHeight();$(".layout").height(e),$("#demo_signup").length&&$("#designer_layout").height(e-$("#demo_signup").outerHeight())}),$(window).trigger("resize.designer")},initModel:function(){Model.define={page:Utils.copy(Schema.pageDefaults),elements:{}},null!=definition&&null!=definition.localAttribute?Model.define.localAttribute=definition.localAttribute:Model.define.localAttribute={},null!=definition&&null!=definition.commonShapeConfig?Model.define.commonShapeConfig=definition.commonShapeConfig:Model.define.commonShapeConfig={},Model.persistence={page:Utils.copy(Schema.pageDefaults),elements:{},localAttribute:{},commonShapeConfig:{}}},initCanvas:function(){"string"==typeof Model.define.page.width&&(Model.define.page.width=parseFloat(Model.define.page.width)),"string"==typeof Model.define.page.height&&(Model.define.page.height=parseFloat(Model.define.page.height));var e=Model.define.page.width.toScale(),t=Model.define.page.height.toScale(),i=Model.define.page.backgroundColor,n=Utils.getDarkerColor(i),r=Utils.getDarkestColor(i);$("#designer_canvas").css({"background-color":"rgb("+n+")"});var s=$("#designer_grids");s.attr({width:e,height:t});var a=s[0].getContext("2d");a.clearRect(0,0,e,t);var o=Model.define.page.padding.toScale(),l=e-2*o,d=t-2*o;a.fillStyle="rgb("+i+")",a.beginPath(),a.rect(o,o,l,d),a.fill();var h=Math.round(Model.define.page.gridSize.toScale());if(h<10&&(h=10),Model.define.page.showGrid){a.translate(o,o),a.lineWidth=1,a.save();for(var p=.5,c=0;p<=d;)a.restore(),a.strokeStyle=c%4==0?"rgb("+r+")":"rgb("+n+")",a.beginPath(),a.moveTo(0,p),a.lineTo(l,p),p+=h,c++,a.stroke();for(p=.5,c=0;p<=l;)a.restore(),a.strokeStyle=c%4==0?"rgb("+r+")":"rgb("+n+")",a.beginPath(),a.moveTo(p,0),a.lineTo(p,d),p+=h,c++,a.stroke()}$("#canvas_container").css({width:e,height:t,padding:Designer.config.pageMargin}),this.initialized||($("#designer_layout").scrollTop(Designer.config.pageMargin-10),$("#designer_layout").scrollLeft(Designer.config.pageMargin-10));var u=$("#bar_list_page").children("li[ac=set_page_showgrid]");u.menuitem("unselect"),Model.define.page.showGrid&&u.menuitem("select")},initShapes:function(){$("#shape_panel").empty();for(var e=0;e"+t.text+"")}for(var i in $(".panel_title").unbind().bind("click",function(){$(this).parent().toggleClass("panel_collapsed")}),Schema.shapes){var n=Schema.shapes[i];if(n.attribute.visible&&"standard"!=n.category){if(("process_bpmn2"==n.category||"process.bpmn2"==n.category||"bpmn"==n.category)&&checkRunningTimeShape(n))continue;if(n.groupName)SchemaGroup.getGroup(n.groupName)[0]==i&&r(n,n.groupName);else r(n)}}function r(e,t){var i="",n=$(i).appendTo("#panel_"+e.category);t&&n.append("");var r=n.children()[0];n.bind("mouseenter",function(){if(!$(this).hasClass("readonly")){var t=$("#shape_thumb"),i=e.title,r=e.category;"bpmn"==e.category&&(r="process_bpmn2"),"lane"==r&&(r=methodId),r=r.replace(/_/g,"."),methodObjectDesc[r+"-"+e.name]&&(i+=":"+methodObjectDesc[r+"-"+e.name]),t.children("div").text(i);var s=t.children("canvas")[0].getContext("2d"),a={x:0,y:0,w:e.props.w,h:e.props.h,angle:e.props.angle},o=160;if(s.clearRect(0,0,o,160),e.props.w>=e.props.h?e.props.w>o&&(a.w=o,a.h=parseInt(e.props.h/e.props.w*a.w)):e.props.h>160&&(a.h=160,a.w=parseInt(e.props.w/e.props.h*a.h)),t.children("canvas").attr({width:180,height:a.h+20}),t.show(),e.props=a,s.save(),"text"!=e.name&&"umlText"!=e.name){s.globalAlpha=e.shapeStyle.alpha;var l=(180-a.w)/2;s.translate(l,10),s.translate(a.w/2,a.h/2),s.rotate(a.angle),s.translate(-a.w/2,-a.h/2),Designer.painter.renderShapePath(s,e,!0),Designer.painter.renderMarkers(s,e,!0)}else{s.translate(90,a.h/2+10),s.textBaseline="middle",s.textAlign="center";var d="";e.fontStyle.italic?d+="italic ":d+="normal ",e.fontStyle.bold?d+="bold ":d+="normal ",d+=e.fontStyle.size+"pt ",d+=e.fontStyle.fontFamily,s.font=d,s.fillStyle="rgb("+e.fontStyle.color+")",s.fillText(e.text,0,0)}s.restore();var h=n.offset().top-$("#designer_header").outerHeight()+n.height()/2-t.outerHeight()/2;h<5?h=5:h+t.outerHeight()>$("#designer_viewport").height()-5&&(h=$("#designer_viewport").height()-5-t.outerHeight()),t.css("top",h)}}).bind("mouseleave",function(){$("#shape_thumb").hide()}),Designer.painter.drawPanelItem(r,e.name)}$(".panel_box").die().live("mousedown",function(e){var t=$(this);if(!t.hasClass("readonly")){var i=t.attr("shapeName"),n=[];Designer.op.changeState("creating_from_panel");var r=null,s=null,a=$("#designer_canvas"),o=function(e){var t=$("#creating_shape_canvas"),i=$("#creating_shape_container");return 0==t.length&&(i=$("").appendTo("#designer"),t=$("").appendTo(i)),i.css({left:"0px",top:"0px",width:$(".panel_container").width(),height:$("#shape_panel").outerHeight()}),Designer.painter.drawPanelItem(t[0],e),t}(i);$("#designer").bind("mousemove.creating",function(e){!function(e,t){$("#creating_shape_container").show();var i=Utils.getRelativePos(t.pageX,t.pageY,$("#creating_shape_container"));e.css({left:i.x-Designer.config.panelItemWidth/2,top:i.y-Designer.config.panelItemHeight/2})}(o,e)}),$("#canvas_container").bind("mousemove.create",function(e){var t=Utils.getRelativePos(e.pageX,e.pageY,a);null==r&&(r=function(e,t,i){Utils.newId();var n=Schema.shapes[e],r=t.restoreScale()-n.props.w/2,s=i.restoreScale()-n.props.h/2,a=Model.create(e,r,s);return Designer.painter.renderShape(a),a}(i,t.x,t.y),(s=$("#"+r.id)).attr("class","shape_box_creating")),s.css({left:t.x-s.width()/2+"px",top:t.y-s.height()/2+"px","z-index":Model.orderList.length}),r.props.x=t.x.restoreScale()-r.props.w/2,r.props.y=t.y.restoreScale()-r.props.h/2;var o=r.props,l=Designer.op.snapLine(o,[r.id],!0,r);l.attach?r.attachTo=l.attach.id:delete r.attachTo,s.css({left:(r.props.x-10).toScale()+"px",top:(r.props.y-10).toScale()+"px","z-index":Model.orderList.length}),n=Utils.getShapeAnchorInLinker(r),Designer.op.hideLinkPoint();for(var d=0;d=37&&t.keyCode<=40){if(null==e){var i=Utils.getSelected(),n=Utils.getFamilyShapes(i);i=i.concat(n);var r=Utils.getContainedShapes(i);i=i.concat(r);var s=Utils.getAttachedShapes(i);i=i.concat(s);var a=Utils.getOutlinkers(i);e=i.concat(a)}if(e.length>0){t.preventDefault();var o=10;t.ctrlKey&&(o=1),Utils.hideLinkerCursor(),37==t.keyCode?Designer.op.moveShape(e,{x:-o,y:0}):38==t.keyCode?Designer.op.moveShape(e,{x:0,y:-o}):39==t.keyCode?Designer.op.moveShape(e,{x:o,y:0}):40==t.keyCode&&Designer.op.moveShape(e,{x:0,y:o}),$(document).unbind("keyup.moveshape").bind("keyup.moveshape",function(){Model.updateMulti(e),e=null,$(document).unbind("keyup.moveshape"),Designer.op.hideTip(),Utils.showLinkerCursor()})}}else if(221==t.keyCode&&t.ctrlKey){var l="front";t.shiftKey&&(l="forward"),Designer.layerShapes(l)}else if(219==t.keyCode&&t.ctrlKey){l="back";t.shiftKey&&(l="backward"),Designer.layerShapes(l)}else{if(71==t.keyCode&&t.ctrlKey)t.preventDefault(),t.shiftKey?Designer.ungroup():Designer.group();else if(76==t.keyCode&&t.ctrlKey)t.preventDefault(),t.shiftKey?Designer.unlockShapes():Designer.lockShapes();else if(18==t.keyCode)Designer.op.changeState("drag_canvas");else if(27==t.keyCode)Designer.op.state?"creating_free_text"!=Designer.op.state&&"creating_free_linker"!=Designer.op.state||Designer.op.resetState():(Utils.unselect(),$(".menu.list").hide(),$(".menu").hide(),$(".color_picker").hide());else if(84!=t.keyCode||t.ctrlKey)if(73!=t.keyCode||t.ctrlKey)if(76!=t.keyCode||t.ctrlKey)if(66==t.keyCode&&t.ctrlKey){if((h=Utils.getSelectedIds()).length>0){var d=Model.getShapeById(h[0]);Designer.setFontStyle({bold:!d.fontStyle.bold}),UI.update()}}else if(73==t.keyCode&&t.ctrlKey){if((h=Utils.getSelectedIds()).length>0){d=Model.getShapeById(h[0]);Designer.setFontStyle({italic:!d.fontStyle.italic}),UI.update()}}else if(85==t.keyCode&&t.ctrlKey){if((h=Utils.getSelectedIds()).length>0){d=Model.getShapeById(h[0]);Designer.setFontStyle({underline:!d.fontStyle.underline}),UI.update()}t.preventDefault()}else if(32!=t.keyCode||t.ctrlKey)121==t.keyCode&&(t.preventDefault(),Dock.enterPresentation());else{var h;if(1==(h=Utils.getSelectedIds()).length){d=Model.getShapeById(h[0]);Designer.op.editShapeText(d)}t.preventDefault()}else $(".menu.list").hide(),Designer.op.changeState("creating_free_linker"),$("#designer_contextmenu").hide();else $(".menu.list").hide(),UI.showImageSelect(function(e,t,i){UI.insertImage(e,t,i)}),$("#designer_contextmenu").hide();else $(".menu.list").hide(),Designer.op.changeState("creating_free_text")}}),$("input,textarea,select").die().live("keydown.hotkey",function(e){e.stopPropagation()})},cancel:function(){$(document).unbind("keydown.hotkey")}},contextMenu:{init:function(){$("#designer_contextmenu").unbind("mousedown").bind("mousedown",function(e){e.stopPropagation()}),$("#designer_contextmenu").find("li:not(.devider)").unbind("click").bind("click",function(){var e=$(this);e.menuitem("isDisabled")||0!=e.children(".extend_menu").length||(Designer.contextMenu.execAction(e),Designer.contextMenu.hide())}),$("#canvas_container").unbind("contextmenu").bind("contextmenu",function(e){e.preventDefault();var t=$("#designer_canvas"),i=Utils.getRelativePos(e.pageX,e.pageY,t);Designer.contextMenu.show(i.x,i.y)})},destroy:function(){$("#canvas_container").unbind("contextmenu"),this.hide()},menuPos:{x:0,y:0,shape:null},show:function(e,t){this.menuPos.x=e,this.menuPos.y=t;var i=$("#designer_contextmenu"),n=Utils.getShapeByPosition(e,t,!1);i.children().hide(),i.children("li[ac=selectall]").show(),i.children(".devi_selectall").show(),i.children("li[ac=drawline]").show();var r=Designer.clipboard.elements.length;if(null==n)r>0&&(i.children("li[ac=paste]").show(),i.children(".devi_clip").show());else{var s=n.shape;if(this.menuPos.shape=s,s.locked)r>0&&(i.children("li[ac=paste]").show(),i.children(".devi_clip").show()),i.children("li[ac=unlock]").show(),i.children(".devi_shape").show();else{i.children("li[ac=cut]").show(),i.children("li[ac=copy]").show(),i.children("li[ac=duplicate]").show(),r>0&&i.children("li[ac=paste]").show(),i.children(".devi_clip").show(),i.children("li[ac=front]").show(),i.children("li[ac=back]").show(),i.children("li[ac=lock]").show();var a=Utils.getSelectedIds().length;a>=2&&(i.children("li[ac=group]").show(),$("#ctxmenu_align").show()),Utils.getSelectedGroups().length>=1&&i.children("li[ac=ungroup]").show(),i.children(".devi_shape").show(),1==a&&"linker"!=s.name&&s.link&&i.children("li[ac=changelink]").show(),("linker"==s.name||s.attribute.editable)&&i.children("li[ac=edit]").show(),i.children("li[ac=delete]").show(),i.children(".devi_del").show()}}i.css({display:"block","z-index":Model.orderList.length+3,left:e,top:t}),$(document).bind("mousedown.ctxmenu",function(){Designer.contextMenu.hide()})},hide:function(){$("#designer_contextmenu").hide(),$(document).unbind("mousedown.ctxmenu")},execAction:function(e){var t=e.attr("ac");if("cut"==t)Designer.clipboard.cut();else if("copy"==t)Designer.clipboard.copy();else if("paste"==t)Designer.clipboard.paste(this.menuPos.x,this.menuPos.y);else if("duplicate"==t)Designer.clipboard.duplicate();else if("front"==t)Designer.layerShapes("front");else if("back"==t)Designer.layerShapes("back");else if("lock"==t)Designer.lockShapes();else if("unlock"==t)Designer.unlockShapes();else if("group"==t)Designer.group();else if("ungroup"==t)Designer.ungroup();else if("align_shape"==t){var i=e.attr("al");Designer.alignShapes(i)}else"edit"==t?Designer.op.editShapeText(this.menuPos.shape):"delete"==t?Designer.op.removeShape():"selectall"==t?Designer.selectAll():"drawline"==t?Designer.op.changeState("creating_free_linker"):"changelink"==t&&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=!0,Designer.events.push("initialized"),$("#designer_layout").on("scroll",function(){$(document).trigger("mouseup.multiselect")})},op:{init:function(){var e=$("#designer_canvas"),t=$("#canvas_container");t.unbind("mousemove.operate").bind("mousemove.operate",function(i){if(null==Designer.op.state){Designer.op.destroy();var n=Utils.getRelativePos(i.pageX,i.pageY,e),r=Utils.getShapeByPosition(n.x,n.y);if(null!=r)if("dataAttribute"==r.type);else if("linker"==r.type){t.css("cursor","pointer"),Designer.op.shapeSelectable(r.shape);var s=r.shape,a=r.pointIndex;"broken"==s.linkerType&&a>1&&a<=s.points.length?Designer.op.brokenLinkerChangable(s,a-1):null==s.from.id&&null==s.to.id&&(t.css("cursor","move"),Designer.op.shapeDraggable()),Designer.op.linkerEditable(s)}else"linker_point"==r.type?(t.css("cursor","move"),Designer.op.shapeSelectable(r.shape),Designer.op.linkerDraggable(r.shape,r.point),Designer.op.linkerEditable(r.shape)):"linker_text"==r.type?(t.css("cursor","text"),Designer.op.shapeSelectable(r.shape),Designer.op.linkerEditable(r.shape)):("shape"==r.type?r.shape.locked?(t.css("cursor","default"),Designer.op.shapeSelectable(r.shape)):(t.css("cursor","move"),Designer.op.shapeSelectable(r.shape),Designer.op.shapeEditable(r.shape),Designer.op.shapeDraggable(),r.shape.link):(t.css("cursor","crosshair"),Designer.op.shapeSelectable(r.shape),Designer.op.shapeLinkable(r.shape,r.linkPoint)),r.shape.parent?Utils.showAnchors(Model.getShapeById(r.shape.parent)):Utils.showAnchors(r.shape));else t.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(e){this.state=e,"creating_free_text"==e?(this.destroy(),$("#canvas_container").css("cursor","crosshair"),this.textCreatable()):"creating_free_linker"==e?(this.destroy(),$("#canvas_container").css("cursor","crosshair"),this.shapeLinkable()):"drag_canvas"==e?(this.destroy(),this.canvasDraggable()):"changing_curve"==e&&this.destroy()},resetState:function(){this.state=null,$("#canvas_container").css("cursor","default")},shapeSelectable:function(e){var t=$("#designer_canvas");t.bind("mousedown.select",function(i){Designer.op.changeState("seelcting_shapes");var n=e.id,r=[];if(i.ctrlKey){r=Utils.getSelectedIds();Utils.isSelected(n)?Utils.removeFromArray(r,n):r.push(n),Utils.unselect(),r.length>0&&Utils.selectShape(r)}else Utils.selectIds.indexOf(n)<0&&(Utils.unselect(),Utils.selectShape(n));$(document).bind("mouseup.select",function(){Designer.op.resetState(),t.unbind("mousedown.select"),$(document).unbind("mouseup.select")})})},shapeDraggable:function(){var e=$("#designer_canvas"),t=$("#canvas_container");e.bind("mousedown.drag",function(i){Utils.hideLinkerCursor(),Utils.hideLinkerControls(),Designer.op.changeState("dragging");var n=Utils.getRelativePos(i.pageX,i.pageY,e),r=Utils.getSelected(),s=!0;1==r.length&&"linker"==r[0].name&&(s=!1);var a=null;s&&(a=Utils.getShapesBounding(r));var o=Utils.getFamilyShapes(r);r=r.concat(o);var l=Utils.getContainedShapes(r);r=r.concat(l);var d=Utils.getAttachedShapes(r);r=r.concat(d);var h=[];if(s)for(var p=0;p=i.x2||r.y+l.y<=i.y1||r.y+r.h+l.y>=i.y2)return $.simpleAlert("子流程内部节点只能在范围标识框内部移动","warning"),t.unbind("mousemove.drag"),void e.unbind("mousedown.drag")}}}Designer.op.moveShape(r,l),n=o,$(document).unbind("mouseup.drop").bind("mouseup.drop",function(){Model.updateMulti(r),$(document).unbind("mouseup.drop")})}}),$(document).bind("mouseup.drag",function(){Designer.op.resetState(),t.unbind("mousemove.drag"),e.unbind("mousedown.drag"),$(document).unbind("mouseup.drag"),Designer.op.hideTip(),Designer.op.hideSnapLine(),Utils.showLinkerCursor(),Utils.showLinkerControls();var i=Utils.getSelected()[0];if(i){var n=i.props,r=Model.define.page;n.x+n.w>r.width-r.padding&&(Designer.setPageStyle({width:n.x+n.w+r.padding+30}),$("#page_size_w").spinner("value",n.x+n.w+r.padding+30)),n.y+n.h>r.height-r.padding&&(Designer.setPageStyle({height:n.y+n.h+r.padding+30}),$("#page_size_h").spinner("value",n.x+n.w+r.padding+30))}"0"==isAutoSave&&($("#saving_tip").css("color","rgb(255, 0, 0)"),$("#saving_tip").text("文件已修改,未保存"))})})},shapeResizable:function(){$(".shape_controller").bind("mousedown",function(e){if(!isAdmin&&"1"==isCustomDefine)for(var t=Utils.getSelected(),i=0;i=0?u.x=o.x+o.w:c.indexOf("r")>=0?u.x=o.x:u.x=o.x+o.w/2,c.indexOf("t")>=0?u.y=o.y+o.h:c.indexOf("b")>=0?u.y=o.y:u.y=o.y+o.h/2,u=Utils.getRotated(p,u,o.angle);var y=[],f={},x=[],v=Utils.getAttachedShapes(d);d=d.concat(v);for(var m=[],b=0;b0)for(var w=0;w=0?n.w=i.x-u.x:c.indexOf("l")>=0&&(n.w=u.x-i.x),c.indexOf("b")>=0?n.h=i.y-u.y:c.indexOf("t")>=0&&(n.h=u.y-i.y),e.ctrlKey&&2==c.length?o.w>=o.h?(n.h=o.h/o.w*n.w,n.h=0?r.x=u.x+n.w:c.indexOf("l")>=0?r.x=u.x-n.w:r.x=u.x,c.indexOf("b")>=0?r.y=u.y+n.h:c.indexOf("t")>=0?r.y=u.y-n.h:r.y=u.y;var a=Utils.getRotated(u,r,o.angle),d={x:.5*u.x+.5*a.x,y:.5*u.y+.5*a.y},h=Utils.getRotated(d,u,-o.angle);if(c.indexOf("r")>=0?n.x=h.x:c.indexOf("l")>=0?n.x=h.x-n.w:n.x=h.x-n.w/2,c.indexOf("b")>=0?n.y=h.y:c.indexOf("t")>=0?n.y=h.y-n.h:n.y=h.y-n.h/2,0==n.angle)y[0],Designer.op.snapResizeLine(n,m,c);Utils.removeAnchors();for(var p=0;p"+C),Designer.op.showTip(C),$(document).unbind("mouseup.resize_ok").bind("mouseup.resize_ok",function(){_.length>0&&(y=y.concat(_)),Model.updateMulti(y),$(document).unbind("mouseup.resize_ok")})}),$(document).bind("mouseup.resize",function(){r.css("cursor","default"),Designer.op.resetState(),r.unbind("mousemove.resize"),$(document).unbind("mouseup.resize");var e=Utils.getSelected()[0];if(e){var t=e.props,i=Model.define.page;t.x+t.w>i.width-i.padding&&Designer.setPageStyle({width:t.x+t.w+i.padding+10}),t.y+t.h>i.height-i.padding&&Designer.setPageStyle({height:t.y+t.h+i.padding+10})}Designer.op.hideTip(),Utils.showLinkerCursor(),Designer.op.hideSnapLine()})})},shapeRotatable:function(){$(".shape_rotater").bind("mousemove",function(e){var t=$(this),i=e.pageX-t.offset().left,n=e.pageY-t.offset().top,r=t[0].getContext("2d");t.unbind("mousedown"),t.removeClass("rotate_enable"),r.isPointInPath(i,n)?(t.addClass("rotate_enable"),t.bind("mousedown",function(e){Utils.hideLinkerCursor(),$("#shape_text_edit").length&&$("#shape_text_edit").trigger("blur"),e.stopPropagation(),Designer.op.changeState("rotating");var t,i,n=Utils.getSelectedIds();if(1==n.length){var r=Model.getShapeById(n[0]);t=r.props,i=r.props.angle}else t=Utils.getControlBox(n),i=0;var s={x:t.x+t.w/2,y:t.y+t.h/2},a=Utils.toScale(s),o=$("#designer_canvas"),l=Utils.getSelected(),d=Utils.getAttachedShapes(l);l=l.concat(d);var h=Utils.getOutlinkers(l);l=l.concat(h);var p=i;$(document).bind("mousemove.rotate",function(e){var n=Utils.getRelativePos(e.pageX,e.pageY,o),r=Math.atan(Math.abs(n.x-a.x)/Math.abs(a.y-n.y));n.x>=a.x&&n.y>=a.y?r=Math.PI-r:n.x<=a.x&&n.y>=a.y?r=Math.PI+r:n.x<=a.x&&n.y<=a.y&&(r=2*Math.PI-r),r%=2*Math.PI;var d=Math.PI/36,h=Math.round(r/d);if((r=d*h)!=p){p=r,Designer.op.showTip(5*h%360+"°"),Designer.painter.rotateControls(t,r),Utils.removeAnchors();for(var c=r-i,u=0;u0)for(var o in Model.define.localAttribute[e])s.attributesJsonArray.push(Utils.copy(Model.define.localAttribute[e][o]));for(var l=0;l0&&(p=p.concat(i)),Model.updateMulti(p)}})})},shapeMultiSelectable:function(){var e=$("#designer_canvas"),t=$("#designer_layout");t.unbind("mousedown.multiselect").bind("mousedown.multiselect",function(i){var n=null;i.ctrlKey||Utils.unselect();var r=Utils.getRelativePos(i.pageX,i.pageY,e);Designer.op.changeState("multi_selecting"),t.bind("mousemove.multiselect",function(t){null==n&&(n=$("").appendTo(e));var i=Utils.getRelativePos(t.pageX,t.pageY,e),s={"z-index":Model.orderList.length,left:i.x,top:i.y};i.x>r.x&&(s.left=r.x),i.y>r.y&&(s.top=r.y),s.width=Math.abs(i.x-r.x),s.height=Math.abs(i.y-r.y),n.css(s)}),$(document).unbind("mouseup.multiselect").bind("mouseup.multiselect",function(e){if(null!=n){var i={x:n.position().left.restoreScale(),y:n.position().top.restoreScale(),w:n.width().restoreScale(),h:n.height().restoreScale()},r=Utils.getShapesByRange(i);if(e.ctrlKey){var s=Utils.getSelectedIds();Utils.mergeArray(r,s)}Utils.unselect(),Utils.selectShape(r),n.remove()}Designer.op.resetState(),$(document).unbind("mouseup.multiselect"),t.unbind("mousemove.multiselect")}),t.unbind("mousedown.multiselect")})},shapeEditable:function(e){var t=$("#designer_canvas");0!=e.attribute.editable&&t.unbind("dblclick.edit").bind("dblclick.edit",function(){Designer.op.editShapeText(e),t.unbind("dblclick.edit")})},editShapeText:function(e){if("linker"!=e.name){var t=$("#shape_text_edit");0==t.length&&(t=$("").appendTo("#designer_canvas"));var i=$("#shape_text_ruler");0==i.length&&(i=$("").appendTo("#designer_canvas")),$(".text_canvas[forshape="+e.id+"]").hide();var n=e.fontStyle,r=e.getTextBlock();if("horizontal"==n.orientation){var s={x:r.x+r.w/2,y:r.y+r.h/2};r={x:s.x-r.h/2,y:s.y-r.w/2,w:r.h,h:r.w}}var a={width:r.w+"px","z-index":Model.orderList.length+2,"line-height":Math.round(1.25*n.size)+"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"};t.css(a),i.css(a),t.show(),r.x+=e.props.x,r.y+=e.props.y,t.val(e.text),$("#shape_text_edit").unbind().bind("keyup",function(){var s=$(this).val();i.val(s),i.scrollTop(99999);var a=i.scrollTop();t.css({height:a});r.x,r.w;var o=r.y+r.h/2,l=0,d=0,h=r.h;"middle"==e.fontStyle.vAlign?a>h?(l=o-(h=a)/2,d=0):(l=o-r.h/2,d=(r.h-a)/2,h=r.h-d):"bottom"==e.fontStyle.vAlign?a>h?(h=a,l=o+r.h/2-h,d=0):(l=o-r.h/2,d=r.h-a,h=r.h-d):(l=o-r.h/2,d=0,h=a>h?a:r.h);var p=d+h,c={x:r.x+r.w/2,y:l+p/2},u=e.props.angle;if(0!=u){var g={x:e.props.x+e.props.w/2,y:e.props.y+e.props.h/2};c=Utils.getRotated(g,c,u)}"horizontal"==n.orientation&&(u=(1.5*Math.PI+u)%(2*Math.PI));var y="rotate("+Math.round(u/(2*Math.PI)*360)+"deg) scale("+Designer.config.scale+")";t.css({width:r.w,height:h,"padding-top":d,left:c.x.toScale()-r.w/2-2,top:c.y.toScale()-p/2-2,"-webkit-transform":y,"-ms-transform":y,"-o-transform":y,"-moz-transform":y,transform:y})}).bind("keydown",function(t){var n=$(this);if(13==t.keyCode&&t.ctrlKey)return o(),!1;if(27==t.keyCode)n.unbind().remove(),$(".text_canvas[forshape="+e.id+"]").show();else if(66==t.keyCode&&t.ctrlKey){var r=!e.fontStyle.bold;e.fontStyle.bold=r,Model.update(e);var s=r?"bold":"normal";$(this).css("font-weight",s),i.css("font-weight",s),UI.update()}else if(73==t.keyCode&&t.ctrlKey){r=!e.fontStyle.italic;e.fontStyle.italic=r,Model.update(e);s=r?"italic":"normal";$(this).css("font-style",s),i.css("font-style",s),UI.update()}else if(85==t.keyCode&&t.ctrlKey){r=!e.fontStyle.underline;e.fontStyle.underline=r,Model.update(e);s=r?"underline":"none";$(this).css("text-decoration",s),i.css("text-decoration",s),t.preventDefault(),UI.update()}}).bind("blur",function(e){o()}).bind("mousemove",function(e){e.stopPropagation()}).bind("mousedown",function(e){e.stopPropagation()}).bind("mouseenter",function(e){Designer.op.destroy()}),$("#shape_text_edit").trigger("keyup"),t.select()}else this.editLinkerText(e);function o(){var t=$("#shape_text_edit").val();$("#shape_text_edit").length&&$("#shape_text_edit").is(":visible")&&(t!=e.text&&(e.text=t,Model.update(e)),Designer.painter.renderShape(e),$("#shape_text_edit").remove())}},shapeLinkable:function(e,t){var i=$("#designer_canvas"),n=$("#canvas_container");n.unbind("mousedown.link").bind("mousedown.link",function(r){Designer.op.changeState("linking_from_shape");var s,a=null;if(e)(s=t).id=e.id;else{var o=Utils.getRelativePos(r.pageX,r.pageY,i);s={x:o.x.restoreScale(),y:o.y.restoreScale(),id:null,angle:null}}n.bind("mousemove.link",function(e){n.css("cursor","default");var t=Utils.getRelativePos(e.pageX,e.pageY,i);null==a&&(a=function(e,t){var i=Utils.newId(),n=Utils.copy(Schema.linkerDefaults);return n.from=e,n.to={id:null,x:t.x,y:t.y,angle:null},n.props={zindex:Model.maxZIndex+1},n.id=i,n}(s,t),Designer.events.push("linkerCreating",a)),Designer.op.moveLinker(a,"to",t.x,t.y),$(document).unbind("mouseup.droplinker").bind("mouseup.droplinker",function(){Math.abs(t.x-s.x)>20||Math.abs(t.y-s.y)>20?(Model.add(a),Designer.events.push("linkerCreated",a),null==a.to.id&&null!=a.from.id&&Designer.op.linkDashboard(a),Utils.showLinkerCursor()):$("#"+a.id).remove(),$(document).unbind("mouseup.droplinker")})}),$(document).bind("mouseup.link",function(){Designer.op.hideLinkPoint(),Designer.op.resetState(),"process.subprocess"==methodId&&window.subProcess.linkerBoxPointerEvent(),n.unbind("mousedown.link"),n.unbind("mousemove.link"),$(document).unbind("mouseup.link")})})},linkerEditable:function(e){var t=$("#designer_canvas");t.unbind("dblclick.edit_linker").bind("dblclick.edit_linker",function(){Designer.op.editLinkerText(e),t.unbind("dblclick.edit_linker")})},editLinkerText:function(e){Designer.contextMenu.hide();var t=Designer.painter.getLinkerMidpoint(e),i=$("#"+e.id).find(".text_canvas"),n=$("#linker_text_edit");0==n.length&&(n=$("").appendTo("#designer_canvas")),$("#"+e.id).find(".text_canvas").hide();var r=e.fontStyle,s="scale("+Designer.config.scale+")",a=Math.round(1.25*r.size);function o(){var t=$("#linker_text_edit");if(t.length&&t.is(":visible")){var i=t.val();i!=e.text&&(e.text=i,Model.update(e)),Designer.painter.renderLinker(e),t.remove()}}n.css({"z-index":Model.orderList.length,"line-height":a+"px","font-size":r.size+"px","font-family":r.fontFamily,"font-weight":r.bold?"bold":"normal","font-style":r.italic?"italic":"normal","text-align":r.textAlign,color:"rgb("+r.color+")","text-decoration":r.underline?"underline":"none","-webkit-transform":s,"-ms-transform":s,"-o-transform":s,"-moz-transform":s,transform:s}),n.val(e.text).show().select(),n.unbind().bind("keyup",function(){var e=$(this).val().replace(//g,">").replace(/\n/g,"
");i.html(e+"
");var r=i.width();r<50&&(r=50);var s=i.height();s1&&(a=!0),n.bind("mousemove.draglinker",function(r){n.css("cursor","default");var o=Utils.getRelativePos(r.pageX,r.pageY,i);Designer.op.moveLinker(e,t,o.x,o.y),a&&Designer.painter.drawControls(s),$(document).unbind("mouseup.droplinker").bind("mouseup.droplinker",function(){$(document).unbind("mouseup.droplinker"),Model.update(e),Utils.showLinkerControls()})}),$(document).bind("mouseup.draglinker",function(){Designer.op.hideLinkPoint(),Designer.op.resetState(),i.unbind("mousedown.draglinker"),n.unbind("mousemove.draglinker"),$(document).unbind("mouseup.draglinker"),Utils.showLinkerControls()})})},linkClickable:function(e,t){var i=$("#link_spot");0==i.length&&(i=$("").appendTo("#designer_canvas")),-1==e.trim().toLowerCase().indexOf("http")&&(e="http://"+e),i.show().css({left:t.x-50,top:t.y-50,"z-index":Model.orderList.length+1})},textCreatable:function(){var e=$("#designer_canvas"),t=$("#canvas_container");t.unbind("mousedown.create_text").bind("mousedown.create_text",function(i){var n=null;i.ctrlKey||Utils.unselect();var r=Utils.getRelativePos(i.pageX,i.pageY,e),s=null;t.bind("mousemove.create_text",function(t){null==n&&(n=$("").appendTo(e));var i=Utils.getRelativePos(t.pageX,t.pageY,e);s={"z-index":Model.orderList.length,left:i.x-1,top:i.y-1},i.x>r.x&&(s.left=r.x-1),i.y>r.y&&(s.top=r.y-1),s.width=Math.abs(i.x-r.x-2),s.height=Math.abs(i.y-r.y-2),n.css(s)}),$(document).unbind("mouseup.create_text").bind("mouseup.create_text",function(e){if(null!=s&&s.width>=20&&s.height>=20){var i=Model.create("standardText",s.left.restoreScale(),s.top.restoreScale());i.props.w=s.width.restoreScale(),i.props.h=s.height.restoreScale(),Model.add(i),Designer.painter.renderShape(i),Designer.op.editShapeText(i),Utils.unselect(),Utils.selectShape(i.id)}n.remove(),Designer.op.resetState(),$(document).unbind("mouseup.create_text"),t.unbind("mousemove.create_text")}),t.unbind("mousedown.create_text")})},canvasDragTimeout:null,canvasDraggable:function(){var e=$("#canvas_container");e.css("cursor","url(../apps/_bpm.platform/js/designer/themes/default/images/diagraming/cursor_hand.png) 8 8, auto"),this.canvasDragTimeout&&clearTimeout(this.canvasDragTimeout),this.canvasDragTimeout=setTimeout(function(){e.unbind("mousedown.drag_canvas"),Designer.op.resetState(),e.unbind("mousemove.drag_canvas"),$(document).unbind("mouseup.drag_canvas")},500),e.unbind("mousedown.drag_canvas").bind("mousedown.drag_canvas",function(t){var i=$("#designer_layout").scrollTop(),n=$("#designer_layout").scrollLeft();e.bind("mousemove.drag_canvas",function(e){var r=e.pageX-t.pageX,s=e.pageY-t.pageY;$("#designer_layout").scrollLeft(n-r),$("#designer_layout").scrollTop(i-s)}),$(document).unbind("mouseup.drag_canvas").bind("mouseup.drag_canvas",function(t){e.unbind("mousemove.drag_canvas"),$(document).unbind("mouseup.drag_canvas")})}),$(document).unbind("keyup.drag_canvas").bind("keyup.drag_canvas",function(t){e.unbind("mousedown.drag_canvas"),Designer.op.resetState(),$(document).unbind("mouseup.drag_canvas"),t.preventDefault(),clearTimeout(this.canvasDragTimeout),e.unbind("mousemove.drag_canvas")})},canvasFreeDraggable:function(){var e=$("#canvas_container");e.css("cursor","url(../apps/_bpm.platform/js/designer/themes/default/images/diagraming/cursor_hand.png) 8 8, auto"),e.unbind("mousedown.drag_canvas").bind("mousedown.drag_canvas",function(t){var i=$("#designer_layout").scrollTop(),n=$("#designer_layout").scrollLeft();e.bind("mousemove.drag_canvas",function(e){var r=e.pageX-t.pageX,s=e.pageY-t.pageY;$("#designer_layout").scrollLeft(n-r),$("#designer_layout").scrollTop(i-s)}),$(document).unbind("mouseup.drag_canvas").bind("mouseup.drag_canvas",function(t){e.unbind("mousemove.drag_canvas"),$(document).unbind("mouseup.drag_canvas")})})},moveShape:function(e,t){for(var i=[],n=0;n=0)&&(a.from.x+=s.x,a.from.y+=s.y,d=!0),(null==l.id||i.indexOf(l.id)>=0)&&(a.to.x+=s.x,a.to.y+=s.y,h=!0)):(null!=o.id&&i.indexOf(o.id)>=0&&(a.from.x+=s.x,a.from.y+=s.y,d=!0),null!=l.id&&i.indexOf(l.id)>=0&&(a.to.x+=s.x,a.to.y+=s.y,h=!0)),d&&h){for(var p=0;p0){var f=Utils.getSelectedIds();Designer.painter.drawControls(f)}else{var x=$("#shape_controls");x.css({left:parseFloat(x.css("left"))+t.x,top:parseFloat(x.css("top"))+t.y})}var v=$("#shape_controls").position();v&&Utils.getSelected().length>0&&Designer.op.showTip("X: "+Math.round(v.left.restoreScale())+" Y: "+Math.round(v.top.restoreScale()))}function m(e){e.props.x+=s.x,e.props.y+=s.y;var i=$("#"+e.id);i.css({left:parseFloat(i.css("left"))+t.x,top:parseFloat(i.css("top"))+t.y})}},moveLinker:function(e,t,i,n){var r=null,s=null,a=Utils.getShapeByPosition(i,n,!0);if(Designer.op.hideLinkPoint(),null!=a){var o,l,d=a.shape;if(Utils.showAnchors(d),s=d.id,"bounding"==a.type)r=a.linkPoint,Designer.op.showLinkPoint(Utils.toScale(r));else if("shape"==a.type)if("from"==t?(o={x:e.to.x,y:e.to.y},l=e.to.id):(o={x:e.from.x,y:e.from.y},l=e.from.id),d.id==l)Designer.op.hideLinkPoint(),(r={x:i.restoreScale(),y:n.restoreScale()}).angle=null,s=null;else{for(var h,p=d.getAnchors(),c=-1,u={x:d.props.x+d.props.w/2,y:d.props.y+d.props.h/2},g=0;g=e.to.x-6&&r.x<=e.to.x+6&&(e.from.x=e.to.x),r.y>=e.to.y-6&&r.y<=e.to.y+6&&(e.from.y=e.to.y))):(e.to.x=r.x,e.to.y=r.y,e.to.id=s,e.to.angle=r.angle,null==s&&(r.x>=e.from.x-6&&r.x<=e.from.x+6&&(e.to.x=e.from.x),r.y>=e.from.y-6&&r.y<=e.from.y+6&&(e.to.y=e.from.y))),Designer.painter.renderLinker(e,!0)},showLinkPoint:function(e){var t=$("").appendTo($("#designer_canvas")),i=t[0].getContext("2d");i.translate(1,1),i.lineWidth=1,i.globalAlpha=.3,i.strokeStyle=Designer.config.anchorColor,i.fillStyle=Designer.config.anchorColor,i.beginPath(),i.moveTo(0,15),i.bezierCurveTo(0,-5,30,-5,30,15),i.bezierCurveTo(30,35,0,35,0,15),i.closePath(),i.fill(),i.stroke(),t.css({left:e.x-16,top:e.y-16,"z-index":Model.orderList.length}).show()},hideLinkPoint:function(){$(".link_point_canvas").hide()},brokenLinkerChangable:function(e,t){var i=$("#canvas_container"),n=$("#designer_canvas"),r=e.points[t-1],s=e.points[t];r.x==s.x?i.css("cursor","e-resize"):i.css("cursor","n-resize"),n.bind("mousedown.brokenLinker",function(t){Designer.op.changeState("changing_broken_linker");var a=Utils.getRelativePos(t.pageX,t.pageY,n),o=Utils.getSelectedIds();i.bind("mousemove.brokenLinker",function(t){var i=Utils.getRelativePos(t.pageX,t.pageY,n),l={x:i.x-a.x,y:i.y-a.y};l=Utils.restoreScale(l),r.x==s.x?(r.x+=l.x,s.x+=l.x):(r.y+=l.y,s.y+=l.y),Designer.painter.renderLinker(e),o.length>1&&Designer.painter.drawControls(o),a=i,$(document).unbind("mouseup.changed").bind("mouseup.changed",function(){Model.update(e),$(document).unbind("mouseup.changed")})}),$(document).bind("mouseup.brokenLinker",function(){Designer.op.resetState(),i.unbind("mousemove.brokenLinker"),n.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);for(var c=[],b=0;b0){for(var shapeIds=[],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){"string"==typeof msg&&(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)}}):Model.remove(d)}}},showTip:function(e){var t=$("#designer_op_tip");0==t.length&&(t=$("").appendTo("#designer_canvas")),t.stop().html(e);var i=$("#shape_controls"),n=i.position();t.css({top:n.top+i.height()+5,left:n.left+i.width()/2-t.outerWidth()/2,"z-index":Model.orderList.length}).show()},hideTip:function(){$("#designer_op_tip").fadeOut(100)},snapLine:function(e,t,i,n){var r=e.y,s=e.y+e.h/2,a=e.y+e.h,o=e.x,l=e.x+e.w/2,d=e.x+e.w,h={v:null,h:null,attach:null},p=null;if(p=i?n:Model.getShapeById(t[0]),1==t.length&&"boundaryEvent"==p.groupName)for(var c=Model.orderList.length-1;c>=0;c--){var u=Model.orderList[c].id;if("linker"!=(w=Model.getShapeById(u)).name&&w.id!=p.id){var g=w.props;if(null==h.attach&&0==g.angle&&("task"==w.groupName||"callActivity"==w.groupName||"subProcess"==w.groupName)){var y={x:g.x-2,y:g.y-2,w:g.w+4,h:g.h+4};if(Utils.pointInRect(l,s,y)){var f=g.y,x=g.y+g.h,v=g.x,m=g.x+g.w,b=!1,S=!1;f>=s-2&&f<=s+2?(e.y=f-e.h/2,S=!0):x>=s-2&&x<=s+2&&(e.y=x-e.h/2,S=!0),v>=l-2&&v<=l+2?(e.x=v-e.w/2,b=!0):m>=l-2&&m<=l+2&&(e.x=m-e.w/2,b=!0),(b||S)&&(h.attach=w)}}}}if(null==h.attach)for(c=Model.orderList.length-1;c>=0;c--){var w;u=Model.orderList[c].id;if(!("linker"==(w=Model.getShapeById(u)).name||t.indexOf(u)>=0||w.parent)){g=w.props;if(null==h.h){f=g.y;var k=g.y+g.h/2;x=g.y+g.h;k>=s-2&&k<=s+2?(h.h={type:"middle",y:k},e.y=k-e.h/2):f>=r-2&&f<=r+2?(h.h={type:"top",y:f},e.y=f):x>=a-2&&x<=a+2?(h.h={type:"bottom",y:x},e.y=x-e.h):x>=r-2&&x<=r+2?(h.h={type:"top",y:x},e.y=x):f>=a-2&&f<=a+2&&(h.h={type:"bottom",y:f},e.y=f-e.h)}if(null==h.v){v=g.x;var M=g.x+g.w/2;m=g.x+g.w;M>=l-2&&M<=l+2?(h.v={type:"center",x:M},e.x=M-e.w/2):v>=o-2&&v<=o+2?(h.v={type:"left",x:v},e.x=v):m>=d-2&&m<=d+2?(h.v={type:"right",x:m},e.x=m-e.w):m>=o-2&&m<=o+2?(h.v={type:"left",x:m},e.x=m):v>=d-2&&v<=d+2&&(h.v={type:"right",x:v},e.x=v-e.w)}if(null!=h.h&&null!=h.v)break}}this.hideSnapLine();var D=$("#designer_canvas");if(null!=h.attach){var _=$("#designer_op_snapline_attach");0==_.length&&(_=$("").appendTo(D));var I=h.attach,U=I.lineStyle.lineWidth;_.css({width:(I.props.w+U).toScale(),height:(I.props.h+U).toScale(),left:(I.props.x-U/2).toScale()-2,top:(I.props.y-U/2).toScale()-2,"z-index":$("#"+I.id).css("z-index")}).show()}if(null!=h.h){var C=$("#designer_op_snapline_h");0==C.length&&(C=$("").appendTo(D)),C.css({width:D.width()+2*Designer.config.pageMargin,left:-Designer.config.pageMargin,top:Math.round(h.h.y.toScale()),"z-index":Model.orderList.length+1}).show()}if(null!=h.v){var P=$("#designer_op_snapline_v");0==P.length&&(P=$("").appendTo(D)),P.css({height:D.height()+2*Designer.config.pageMargin,top:-Designer.config.pageMargin,left:Math.round(h.v.x.toScale()),"z-index":Model.orderList.length+1}).show()}return h},snapResizeLine:function(e,t,i){for(var n=e.y,r=e.y+e.h/2,s=e.y+e.h,a=e.x,o=e.x+e.w/2,l=e.x+e.w,d={v:null,h:null},h=Model.orderList.length-1;h>=0;h--){var p=Model.orderList[h].id,c=Model.getShapeById(p);if(!("linker"==c.name||t.indexOf(p)>=0||c.parent)){var u=c.props;if(null==d.h&&(i.indexOf("t")>=0||i.indexOf("b")>=0)){var g=u.y,y=u.y+u.h/2,f=u.y+u.h;y>=r-2&&y<=r+2?(d.h={type:"middle",y:y},i.indexOf("t")>=0?(e.h=2*(s-y),e.y=s-e.h):e.h=2*(y-e.y)):i.indexOf("t")>=0&&g>=n-2&&g<=n+2?(d.h={type:"top",y:g},e.y=g,e.h=s-g):i.indexOf("b")>=0&&f>=s-2&&f<=s+2?(d.h={type:"bottom",y:f},e.h=f-n):i.indexOf("t")>=0&&f>=n-2&&f<=n+2?(d.h={type:"top",y:f},e.y=f,e.h=s-f):i.indexOf("b")>=0&&g>=s-2&&g<=s+2&&(d.h={type:"bottom",y:g},e.h=g-e.y)}if(null==d.v&&(i.indexOf("l")>=0||i.indexOf("r")>=0)){var x=u.x,v=u.x+u.w/2,m=u.x+u.w;v>=o-2&&v<=o+2?(d.v={type:"center",x:v},i.indexOf("l")>=0?(e.w=2*(l-v),e.x=l-e.w):e.w=2*(v-e.x)):i.indexOf("l")>=0&&x>=a-2&&x<=a+2?(d.v={type:"left",x:x},e.x=x,e.w=l-x):i.indexOf("r")>=0&&m>=l-2&&m<=l+2?(d.v={type:"right",x:m},e.w=m-e.x):i.indexOf("l")>=0&&m>=a-2&&m<=a+2?(d.v={type:"left",x:m},e.x=m,e.w=l-m):i.indexOf("r")>=0&&x>=l-2&&x<=l+2&&(d.v={type:"right",x:x},e.w=x-e.x)}if(null!=d.h&&null!=d.v)break}}this.hideSnapLine();var b=$("#designer_canvas");if(null!=d.h){var S=$("#designer_op_snapline_h");0==S.length&&(S=$("").appendTo(b)),S.css({width:b.width()+2*Designer.config.pageMargin,left:-Designer.config.pageMargin,top:Math.round(d.h.y.toScale()),"z-index":Model.orderList.length+1}).show()}if(null!=d.v){var w=$("#designer_op_snapline_v");0==w.length&&(w=$("").appendTo(b)),w.css({height:b.height()+2*Designer.config.pageMargin,top:-Designer.config.pageMargin,left:Math.round(d.v.x.toScale()),"z-index":Model.orderList.length+1}).show()}return d},hideSnapLine:function(){$("#designer_op_snapline_h").hide(),$("#designer_op_snapline_v").hide(),$("#designer_op_snapline_attach").hide()},linkDashboard:function(e){var t=Model.getShapeById(e.from.id).category;if(0!=$("#panel_"+t).length){var i=$("#shape_dashboard_"+t);if(0==i.length){function n(e,t){var n="",r=$(n).appendTo(i);t&&r.append("");var s=r.children()[0];Designer.painter.drawPanelItem(s,e.name)}for(var r in i=$("").appendTo("#designer_canvas"),Schema.shapes){var s=Schema.shapes[r];if(("process_bpmn2"!=s.category&&"process.bpmn2"!=s.category&&"bpmn"!=s.category||!checkRunningTimeShape(s))&&s.category==t){var a=s.attribute;if(a.visible&&a.linkable)if(s.groupName)SchemaGroup.getGroup(s.groupName)[0]==s.name&&n(s,s.groupName);else n(s)}}i.bind("mousemove",function(e){e.stopPropagation()}).bind("mousedown",function(e){e.stopPropagation()})}function o(t){var i,n=Schema.shapes[t],r=Utils.getEndpointAngle(e,"to"),s=Utils.getAngleDir(r),a=n.getAnchors();if(1==s)for(var o=null,l=0;lh)&&(h=d.x,i=d)}}else if(3==s){var p=null;for(l=0;lp)&&(p=d.y,i=d)}}else if(4==s){var c=null;for(l=0;l