From 89e1b826528d0209a165f38f9dd64e34e228ce14 Mon Sep 17 00:00:00 2001 From: qinoy Date: Thu, 1 Jun 2023 11:12:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AB=AF=E5=88=B0=E7=AB=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=E8=8A=82=E7=82=B9=E5=B1=95=E5=BC=80=20=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=E6=80=A7=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oft.apps.coe.method.process.subprocess.jar | Bin 50908 -> 51401 bytes .../subprocess/SubProcessController.java | 4 ++-- .../graph/GraphNodeExpandHandle.java | 22 ++++++++++++++---- .../process/subprocess/graph/GraphRender.java | 11 +++++++++ .../process/subprocess/web/SubProcessWeb.java | 4 ++-- 5 files changed, 32 insertions(+), 9 deletions(-) diff --git a/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar b/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar index b0e7770453b1cdc07431dc29eae4f4716f45346f..26df336a95ac2cd4769ca29bdf5f30ed28d3145f 100644 GIT binary patch delta 26365 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 z { // // 1、总图节点以及连线处理 @@ -164,7 +164,7 @@ public class GraphNodeExpandHandle { // t2.join(); // 1、总图节点以及连线处理 - handleEndToEndGraphNodeAndLinker(direction); + handleEndToEndGraphNodeAndLinker(); // 2、子流程节点内部元素处理 handleRelationModelNodePosition(); @@ -187,7 +187,7 @@ public class GraphNodeExpandHandle { * 6、删除旧有连线关系 * 7、构建新的连线关系 */ - private void handleEndToEndGraphNodeAndLinker(String direction){ + private void handleEndToEndGraphNodeAndLinker(){ // 1、删除当前要展开的节点 removeEndToEndGraphElements(shapeId); @@ -200,18 +200,30 @@ public class GraphNodeExpandHandle { // 4、构建邻接矩阵 NodeExpandAdjMatrix expandAdjMatrix = buildEndToEndGraphAdjMatrix(); expandAdjMatrix.buildAdjMatrix(); + // expandAdjMatrix.printAdjMatrix(); // 5、删除节点展开前的连线 removeEndToEndGraphOldLinker(); // 6、获取所有节点坐标 JSONObject elements = endToEndProcessDefine.getJSONObject("elements"); double[][] vertexPosition = expandAdjMatrix.getVertexPosition(elements); // 7、构建新的连线 + JSONObject processProperties = endToEndProcessDefine.getJSONObject("processProperties"); + String direction = processProperties.getString("direction"); NodeExpandLinkerRender linkerRender = new NodeExpandLinkerRender(vertexPosition, expandAdjMatrix, scopeLimitationShape); JSONArray linkers = linkerRender.toAssembleLinker(direction, shapeId); for (Object o : linkers) { JSONObject linker = (JSONObject) o; addEndToEndGraphElements(linker); } + + // 8、更新画布的大小 + // 确定画布的宽度与高度 + double w = Arrays.stream(vertexPosition).mapToDouble(position -> position[0]).max().orElse(0.0); + double h = Arrays.stream(vertexPosition).mapToDouble(position -> position[1]).max().orElse(0.0); + + JSONObject page = endToEndProcessDefine.getJSONObject("page"); + page.put("width", w + 300); + page.put("height", h + 300); } /** @@ -544,7 +556,7 @@ class NodeExpandLinkerRender{ private double[][] calculationLinkerPointInVertLayOut(double[] fromPoi, double[] toPoi, boolean currentExpandNodeIsStart, boolean currentExpandNodeIsEnd) { double fromX = fromPoi[0],fromY = fromPoi[1],toX = toPoi[0],toY = toPoi[1]; - double scopeShapeW = scopeLimitationShape.getDoubleValue("w"), scopeShapeH = scopeLimitationShape.getDoubleValue("h"); + double scopeShapeW = scopeLimitationShape.getJSONObject("props").getDoubleValue("w"), scopeShapeH = scopeLimitationShape.getJSONObject("props").getDoubleValue("h"); if (fromY == toY){ // 水平 分析可知 水平方向上不会出现 从左到右直连的情况 只有 右边节点右侧锚点出 向上走 左折 连到左侧节点上方锚点 double[] startPoi = new double[]{fromX + (currentExpandNodeIsStart ? scopeShapeW : SubProcessConst.SUB_PROCESS_SHAPE_W), fromY + (currentExpandNodeIsStart ? scopeShapeH : SubProcessConst.SUB_PROCESS_SHAPE_H) / 2}; double[] turnPoi1 = new double[]{fromX + (currentExpandNodeIsStart ? scopeShapeW : SubProcessConst.SUB_PROCESS_SHAPE_W) + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, fromY + (currentExpandNodeIsStart ? scopeShapeH : SubProcessConst.SUB_PROCESS_SHAPE_H) / 2}; @@ -612,7 +624,7 @@ class NodeExpandLinkerRender{ private double[][] calculationLinkerPointInHorizLayOut(double[] fromPoi, double[] toPoi, boolean currentExpandNodeIsStart, boolean currentExpandNodeIsEnd) { double fromX = fromPoi[0],fromY = fromPoi[1],toX = toPoi[0],toY = toPoi[1]; - double scopeShapeW = scopeLimitationShape.getDoubleValue("w"), scopeShapeH = scopeLimitationShape.getDoubleValue("h"); + double scopeShapeW = scopeLimitationShape.getJSONObject("props").getDoubleValue("w"), scopeShapeH = scopeLimitationShape.getJSONObject("props").getDoubleValue("h"); if (fromY == toY) { // 水平 方向上 存在从左向右直连的情况 但不存在从右向左直连的情况 水平方向上 从左向右 应是 右出 向上 左折 向下 return fromX < toX ? new double[][] diff --git a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphRender.java b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphRender.java index 3dd6593a..10665d35 100644 --- a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphRender.java +++ b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphRender.java @@ -150,4 +150,15 @@ public class GraphRender { CoeDesignerAPIManager.getInstance().storeDefinition(this.baseModel); } } + + /** + * 布局方向添加到流程属性中 + * 方便后续节点展开时用到 + * @param direction + */ + public void addDirectionToProcessProperties(String direction){ + JSONObject defineJsonObj = JSONObject.parseObject(this.baseModel.getDefinition()); + JSONObject processProperties = defineJsonObj.getJSONObject("processProperties"); + processProperties.put("direction", direction); + } } diff --git a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java index d80a478c..2b65b890 100644 --- a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java +++ b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java @@ -309,10 +309,10 @@ public class SubProcessWeb extends ActionWeb { * @param shapeId 待展开的子流程节点ID * @param direction 布局方向 */ - public String shapeNodeExpand(String repositoryId, String shapeId, String direction){ + public String shapeNodeExpand(String repositoryId, String shapeId){ try { GraphNodeExpandHandle nodeExpandHandle = new GraphNodeExpandHandle(repositoryId, shapeId); - String define = nodeExpandHandle.handleNodeExpand(direction); + String define = nodeExpandHandle.handleNodeExpand(); ResponseObject ro = ResponseObject.newOkResponse("展开成功"); ro.setData(define); return ro.toString(); From cc3f35a635973d399bb2e310507cf4eb4508da5f Mon Sep 17 00:00:00 2001 From: qinoy Date: Thu, 1 Jun 2023 12:19:43 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AB=AF=E5=88=B0=E7=AB=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=E8=8A=82=E7=82=B9=E5=B1=95=E5=BC=80=E5=90=8E=20?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E5=85=B3=E9=97=AD=E7=9A=84=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../diagraming/designer.method.subprocess.js | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.method.subprocess.js b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.method.subprocess.js index c8878d59..e560570a 100644 --- a/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.method.subprocess.js +++ b/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/designer.method.subprocess.js @@ -6,6 +6,7 @@ $(function(){ (function (Model, ruuid, sid) { const subProcess = new SubProcess(Model, ruuid, sid); subProcess.shapeIconRender(); + window.subProcess = subProcess; // 连线框 鼠标指针样式设置 防止因为连线z-index层级较高 会导致节点展开图标点击不到 $('.shape_box.linker_box').css({ @@ -29,14 +30,16 @@ class SubProcess { for (let shapeId in elements) { let shape = elements[shapeId]; if (shape.name == 'linker') continue; // 当前元素为连线的话 直接略过 - if (shape.name == 'subProcess') { // 当前元素为子流程节点 渲染展开图标 并绑定展开事件 - let expandIcon = ""; - $('#'+shapeId).append(expandIcon); - $('#icon_'+shapeId).on('click', '', {shapeId: shapeId, Model: this.Model, repositoryId: this.repositoryId, sid: this.sid}, this.shapeExpand); - }else { // 当前元素为虚线范围限制框的话 渲染关闭图标 并绑定关闭事件 - let closeIcon = ""; - $('#'+shapeId).append(closeIcon); - $('#icon_'+shapeId).on('click', '', {shapeId: shapeId, Model: this.Model, repositoryId: this.repositoryId, sid: this.sid}, this.shapeClose); + if (shape.name == 'scopeLimitation' || shape.name == 'subProcess'){ // 只有子流程或者范围选择框才有对应的图标渲染 + if (shape.name == 'subProcess') { // 当前元素为子流程节点 渲染展开图标 并绑定展开事件 + let expandIcon = ""; + $('#'+shapeId).append(expandIcon); + $('#icon_'+shapeId).on('click', '', {shapeId: shapeId, Model: this.Model, repositoryId: this.repositoryId, sid: this.sid}, this.shapeExpand); + }else { // 当前元素为虚线范围限制框的话 渲染关闭图标 并绑定关闭事件 + let closeIcon = ""; + $('#'+shapeId).append(closeIcon); + $('#icon_'+shapeId).on('click', '', {shapeId: shapeId, Model: this.Model, repositoryId: this.repositoryId, sid: this.sid}, this.shapeClose); + } } } } @@ -66,9 +69,11 @@ class SubProcess { shapeId: param.shapeId }, ok: function(r){ - console.log(JSON.stringify(r.data)); + // console.log(JSON.stringify(r.data)); definition = JSON.stringify(r.data); - Designer.open(definition); + Designer.open(definition); // 节点重新渲染 + // 针对范围标识框渲染 节点关闭按钮 + window.subProcess.shapeIconRender(); }, err: function(r){ $.simpleAlert(r.msg);