From 254a70413c96d5b23b51dc3ccc3daa0a64b5e199 Mon Sep 17 00:00:00 2001
From: "446052889@qq.com" <446052889@qq.com>
Date: Thu, 10 Apr 2025 13:04:29 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=9C=A8=E9=A2=84=E8=A7=88?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=9B=BE=E6=97=B6=EF=BC=8C=E9=94=9A=E7=82=B9?=
=?UTF-8?q?=E4=B8=AD=E6=96=87=E5=AD=97=E8=BF=87=E9=95=BF=E5=AF=BC=E8=87=B4?=
=?UTF-8?q?=E5=AD=97=E4=BD=93=E6=9C=AA=E8=B7=9F=E9=9A=8F=E8=8A=82=E7=82=B9?=
=?UTF-8?q?=E5=A4=A7=E5=B0=8F=E7=BC=A9=E6=94=BE=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../scripts/diagraming/designer.core.debug.js | 199 ++++++++++++++++--
.../scripts/diagraming/designer.core.js | 2 +-
2 files changed, 182 insertions(+), 19 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 919f3bff..48556b06 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
@@ -4686,7 +4686,11 @@ var Designer = {
if (l == "" && o == "") {
continue
}
- m(jjj, l, o)
+ if(o == '') {
+ m(jjj, l)
+ } else {
+ m1(jjj, l, o)
+ }
}
}
}
@@ -4711,7 +4715,135 @@ var Designer = {
m(j, l, o)*/
}
- function m(c, y, x) {
+
+ // 分割字符
+ function getStrLines(text,context,maxWidth) {
+ let words = text.split(' ')
+ let lines = [];
+ let line = ''
+ for (let n = 0; n < words.length; n++) {
+ let testLine = line + words[n] + ' '
+ let metrics = context.measureText(testLine)
+ let testWidth = metrics.width
+ if (testWidth > maxWidth && n > 0) {
+ lines.push(line.trim())
+ line = words[n] + ' '
+ } else {
+ line = testLine
+ }
+ }
+ lines.push(line.trim())
+ return lines
+ }
+
+ function getTextWidth(innerText,fontSize,fontFamily){
+ let hiddenDiv = document.createElement('div')
+ hiddenDiv.style.visibility = 'hidden'
+ hiddenDiv.style.position = 'absolute'
+ hiddenDiv.style.whiteSpace = 'nowrap'
+ hiddenDiv.style.font = fontSize
+ hiddenDiv.style.fontFamily = fontFamily
+ hiddenDiv.innerText = innerText
+ document.body.appendChild(hiddenDiv)
+ let textWidth = hiddenDiv.offsetWidth
+ document.body.removeChild(hiddenDiv)
+ return textWidth
+ }
+ function m(info,text) {
+ let horizontal = info.horizontal // 水平位置
+ let vertical = info.vertical // 垂直位置
+ let textWidth = getTextWidth(text,'12px',i.fontStyle.fontFamily)
+ let textBox = $("
" + text + "
").appendTo($("#" + i.id))
+ let cssObj = {
+ 'position': 'absolute',
+ 'left': 0,
+ 'top': 0,
+ 'width': textWidth + 'px',
+ 'font-size': '12px',
+ 'font-family': i.fontStyle.fontFamily,
+ 'word-break': 'normal',
+ 'color': '',
+ }
+ if(textWidth > i.props.w) {
+ cssObj.width = i.props.w + 'px'
+ if(i.props.w < 100) {
+ cssObj.width = '100px'
+ }
+ }
+
+ if (info.type == "link") {
+ cssObj.color = "#4183C4"
+ } else {
+ cssObj.color = "#333"
+ }
+ if (info.showType == "text" ||info.showType == "attr" ) {
+ cssObj.color = info.color
+ }
+ textBox.css(cssObj)
+ // 缩放旋转
+ let angle = i.props.angle
+ let newAngle = Math.round(angle / (Math.PI * 2) * 360)
+ let transform = "rotate(" + newAngle + "deg) scale(" + Designer.config.scale + ")"
+ textBox.css({
+ "-webkit-transform": transform,
+ "-ms-transform": transform,
+ "-o-transform": transform,
+ "-moz-transform": transform,
+ "transform-origin": "top left"
+ })
+ let textBoxWidth = textBox.width()
+ let textBoxHeight = textBox.height()
+ let left = 0,top = 0
+ switch (horizontal) {
+ case 'mostleft': // 左外边
+ left = -textBoxWidth - 2
+ break;
+ case 'left': // 左内边
+ left = 2
+ break;
+ case 'center': // 中间
+ left = i.props.w / 2 - textBoxWidth / 2
+ break;
+ case 'right': // 右内边
+ left = i.props.w - textBoxWidth - 2
+ break;
+ case 'mostright': // 右外边
+ left = i.props.w + 2
+ break;
+ }
+ switch (vertical) {
+ case 'mosttop':
+ top = -textBoxHeight
+ break;
+ case 'top':
+ top = 0
+ break;
+ case 'middle':
+ top = i.props.h / 2 - textBoxHeight / 2
+ break;
+ case 'bottom':
+ top = i.props.h - textBoxHeight
+ break;
+ case 'mostbottom':
+ top = i.props.h
+ break;
+ }
+ let g = {
+ x: left,
+ y: top,
+ w: textBoxWidth,
+ h: textBoxHeight
+ }
+ let G = Utils.getRotatedBox(g, i.props.angle, n)
+ let d = (G.x + (i.props.x - k.x) + 10).toScale()
+ let e = (G.y + (i.props.y - k.y) + 10).toScale()
+ textBox.css({
+ left: d,
+ top: e,
+ })
+ }
+
+ function m1(c, y, x) {
if (1 + 1 == 3) {
// if (c.showType == 'icon' && x.indexOf("") >= 0) {// 图标重构
var h = c.horizontal;
@@ -4918,6 +5050,22 @@ var Designer = {
w: D,
h: a
};
+
+ if(D > i.props.w) {
+ let tempShapeWidth = i.props.w
+ if (tempShapeWidth < 100) {
+ tempShapeWidth = 100
+ }
+ if(y.split(' ').length == 1) {
+ g.w = tempShapeWidth + 10
+ g.h = Math.ceil(D / tempShapeWidth) * 15
+ } else {
+ let lineLength = getStrLines(y,b,tempShapeWidth).length
+ g.w = tempShapeWidth
+ g.h = lineLength * 15
+ }
+ }
+
var G = Utils.getRotatedBox(g, i.props.angle, n);
H.attr({
width: G.w.toScale(),
@@ -4955,24 +5103,39 @@ var Designer = {
if (tempShapeWidth < 100) {
tempShapeWidth = 100;
}
- H[0].width = tempShapeWidth + 10;
- H[0].height = Math.ceil(D / tempShapeWidth) * 10 + 15;
- for (var v = 0; v < Math.ceil(D / tempShapeWidth); v++) {
- var tempL = (v + 1) * tempShapeWidth;
- var tempX = 0;
- if (c.showType == "text") {
- b.fillStyle = "#696969";
+ let words = y.split(' ')
+ if (words.length == 1) {
+ for (var v = 0; v < Math.ceil(D / tempShapeWidth); v++) {
+ var tempL = (v + 1) * tempShapeWidth;
+ var tempX = 0;
+ if (c.showType == "text") {
+ b.fillStyle = "#696969";
+ }
+ if (c.showType == "attr") {
+ b.fillStyle = "#191970";
+ }
+ var tempY = a / 2 + v * 12;
+ if (tempL < D) {
+ b.fillText(y.substring(v * tempShapeWidth / (D / y.length), tempL / (D / y.length)), tempX, tempY);
+ } else {
+ b.fillText(y.substring(v * tempShapeWidth / (D / y.length), D / (D / y.length)), tempX, tempY);
+ }
}
- if (c.showType == "attr") {
- b.fillStyle = "#191970";
- }
- var tempY = a / 2 + v * 12;
- if (tempL < D) {
- b.fillText(y.substring(v * tempShapeWidth / (D / y.length), tempL / (D / y.length)), tempX, tempY);
- } else {
- b.fillText(y.substring(v * tempShapeWidth / (D / y.length), D / (D / y.length)), tempX, tempY);
+ } else {
+ let lines = getStrLines(y,b,tempShapeWidth);
+ for (let j = 0; j < lines.length; j++) {
+ var tempX = 0;
+ var tempY = a / 2 + j * 12
+ if (c.showType == "text") {
+ b.fillStyle = "#696969";
+ }
+ if (c.showType == "attr") {
+ b.fillStyle = "#191970";
+ }
+ b.fillText(lines[j], tempX, tempY)
}
}
+
if (h == "mostleft") {
d = -tempShapeWidth + tempShapeWidth * 0.2;
H.css({
@@ -5028,7 +5191,7 @@ var Designer = {
});
}
if (h == "right") {
- // d = i.props.w - D;
+ d = (i.props.w - D + 4).toScale();
H.css({
left: d,
top: e
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 d45ef21e..8c067d0a 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