端到端功能 节点展开部分代码提交
This commit is contained in:
parent
d563f44d36
commit
8e64b1e6f5
Binary file not shown.
@ -33,4 +33,7 @@ public interface SubProcessConst {
|
||||
double SHAPE_VERT_INTERVAL = 80.0;
|
||||
// 图形间水平间隔
|
||||
double SHAPE_HORIZ_INTERVAL = 80.0;
|
||||
|
||||
// 范围选择框内边距
|
||||
double SCOPE_SHAPE_PADDING = 300;
|
||||
}
|
||||
|
||||
@ -15,9 +15,7 @@ import com.actionsoft.exception.AWSException;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
/**
|
||||
@ -85,31 +83,31 @@ public class GraphNodeExpandHandle {
|
||||
JSONObject scopeLimitationShape = ShapeUtil.getProcessShapeDefinition(SubProcessConst.SUB_PROCESS_METHOD_ID, "展开范围标注");
|
||||
JSONObject childProcessPage = childProcessDefine.getJSONObject("page");
|
||||
JSONObject childProcessElements = childProcessDefine.getJSONObject("elements");
|
||||
Double childProcessEleMaxX = childProcessElements.keySet()
|
||||
JSONObject childProcessEleMaxX = childProcessElements.keySet()
|
||||
.stream()
|
||||
.filter(key -> !"linker".equals(childProcessElements.getJSONObject(key).getString("name")))
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props").getDoubleValue("x"))
|
||||
.max(Comparator.comparing(Double::doubleValue)).get();
|
||||
Double childProcessEleMinX = childProcessElements.keySet()
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props"))
|
||||
.max((o1, o2) -> Double.compare(o1.getDoubleValue("x"), o2.getDoubleValue("x"))).get();
|
||||
JSONObject childProcessEleMixX = childProcessElements.keySet()
|
||||
.stream()
|
||||
.filter(key -> !"linker".equals(childProcessElements.getJSONObject(key).getString("name")))
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props").getDoubleValue("x"))
|
||||
.min(Comparator.comparing(Double::doubleValue)).get();
|
||||
Double childProcessEleMaxY = childProcessElements.keySet()
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props"))
|
||||
.min((o1, o2) -> Double.compare(o1.getDoubleValue("x"), o2.getDoubleValue("x"))).get();
|
||||
JSONObject childProcessEleMaxY = childProcessElements.keySet()
|
||||
.stream()
|
||||
.filter(key -> !"linker".equals(childProcessElements.getJSONObject(key).getString("name")))
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props").getDoubleValue("y"))
|
||||
.max(Comparator.comparing(Double::doubleValue)).get();
|
||||
Double childProcessEleMinY = childProcessElements.keySet()
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props"))
|
||||
.max((o1, o2) -> Double.compare(o1.getDoubleValue("y"), o2.getDoubleValue("y"))).get();
|
||||
JSONObject childProcessEleMinY = childProcessElements.keySet()
|
||||
.stream()
|
||||
.filter(key -> !"linker".equals(childProcessElements.getJSONObject(key).getString("name")))
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props").getDoubleValue("y"))
|
||||
.min(Comparator.comparing(Double::doubleValue)).get();
|
||||
.map(key -> childProcessElements.getJSONObject(key).getJSONObject("props"))
|
||||
.min((o1, o2) -> Double.compare(o1.getDoubleValue("y"), o2.getDoubleValue("y"))).get();
|
||||
// 当前节点所标识的子流程文件的 画布宽度与高度 减去边距
|
||||
// double childProcessPageWidth = childProcessPage.getDoubleValue("width") - childProcessPage.getDoubleValue("padding") * 2;
|
||||
// double childProcessPageHeight = childProcessPage.getDoubleValue("height") - childProcessPage.getDoubleValue("padding") * 2;
|
||||
double scopeShapeW = childProcessEleMaxX.doubleValue() - childProcessEleMinX + childProcessPage.getDoubleValue("padding") * 2;
|
||||
double scopeShapeH = childProcessEleMaxY.doubleValue() - childProcessEleMinY + childProcessPage.getDoubleValue("padding") * 2;
|
||||
double scopeShapeW = childProcessEleMaxX.getDoubleValue("x") + childProcessEleMaxX.getDoubleValue("w") - childProcessEleMixX.getDoubleValue("x") + SubProcessConst.SCOPE_SHAPE_PADDING;
|
||||
double scopeShapeH = childProcessEleMaxY.getDoubleValue("y") + childProcessEleMaxY.getDoubleValue("h") - childProcessEleMinY.getDoubleValue("y") + SubProcessConst.SCOPE_SHAPE_PADDING;
|
||||
|
||||
JSONObject elements = endToEndProcessDefine.getJSONObject("elements");
|
||||
// 找到当前要展开的子流程节点
|
||||
@ -138,20 +136,26 @@ public class GraphNodeExpandHandle {
|
||||
*/
|
||||
public String handleNodeExpand(String direction) throws Exception{
|
||||
|
||||
Thread t1 = new Thread(() -> {
|
||||
// 1、总图节点以及连线处理
|
||||
handleEndToEndGraphNodeAndLinker(direction);
|
||||
});
|
||||
t1.start();
|
||||
// Thread t1 = new Thread(() -> {
|
||||
// // 1、总图节点以及连线处理
|
||||
// handleEndToEndGraphNodeAndLinker(direction);
|
||||
// });
|
||||
// t1.start();
|
||||
//
|
||||
// Thread t2 = new Thread(() -> {
|
||||
// // 2、子流程节点内部元素处理
|
||||
// handleRelationModelNodePosition();
|
||||
// });
|
||||
// t2.start();
|
||||
//
|
||||
// t1.join();
|
||||
// t2.join();
|
||||
|
||||
Thread t2 = new Thread(() -> {
|
||||
// 2、子流程节点内部元素处理
|
||||
handleRelationModelNodePosition();
|
||||
});
|
||||
t2.start();
|
||||
// 1、总图节点以及连线处理
|
||||
handleEndToEndGraphNodeAndLinker(direction);
|
||||
|
||||
t1.join();
|
||||
t2.join();
|
||||
// 2、子流程节点内部元素处理
|
||||
handleRelationModelNodePosition();
|
||||
|
||||
// 6、保存总图模型信息 以及 子流程模型信息备份
|
||||
// BaseModel baseModel = apiManager.getDefinition(repositoryId, 0);
|
||||
@ -283,12 +287,16 @@ public class GraphNodeExpandHandle {
|
||||
*/
|
||||
private void removeEndToEndGraphOldLinker(){
|
||||
JSONObject elements = endToEndProcessDefine.getJSONObject("elements");
|
||||
Set<String> eleKeys = new HashSet<>();
|
||||
for (String key : elements.keySet()) {
|
||||
JSONObject ele = elements.getJSONObject(key);
|
||||
if ("linker".equals(ele.getString("name"))){
|
||||
removeEndToEndGraphElements(key);
|
||||
eleKeys.add(key);
|
||||
}
|
||||
}
|
||||
for (String eleKey : eleKeys) {
|
||||
removeEndToEndGraphElements(eleKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -7,6 +7,7 @@ $(function(){
|
||||
const subProcess = new SubProcess(Model, ruuid, sid);
|
||||
subProcess.shapeIconRender();
|
||||
|
||||
// 连线框 鼠标指针样式设置 防止因为连线z-index层级较高 会导致节点展开图标点击不到
|
||||
$('.shape_box.linker_box').css({
|
||||
'pointer-events': 'none'
|
||||
});
|
||||
@ -43,7 +44,7 @@ class SubProcess {
|
||||
// 节点展开事件
|
||||
shapeExpand(event){
|
||||
let param = event.data;
|
||||
alert('节点展开事件 ' + param.Model.define.elements[event.data.shapeId].text);
|
||||
// alert('节点展开事件 ' + param.Model.define.elements[event.data.shapeId].text);
|
||||
// 1、同时只能支持一个子流程节点展开
|
||||
let elements = param.Model.define.elements;
|
||||
for (let key in elements) {
|
||||
@ -65,7 +66,9 @@ class SubProcess {
|
||||
shapeId: param.shapeId
|
||||
},
|
||||
ok: function(r){
|
||||
console.log(r);
|
||||
console.log(JSON.stringify(r.data));
|
||||
definition = JSON.stringify(r.data);
|
||||
Designer.open(definition);
|
||||
},
|
||||
err: function(r){
|
||||
$.simpleAlert(r.msg);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user