端到端功能 节点展开与关闭相关代码提交
This commit is contained in:
parent
5571bba060
commit
fc8e0747ca
Binary file not shown.
@ -274,6 +274,8 @@ public class GraphNodeExpandHandle {
|
|||||||
*/
|
*/
|
||||||
private void handleEndToEndGraphNodeExcluedExpandNode(){
|
private void handleEndToEndGraphNodeExcluedExpandNode(){
|
||||||
JSONObject elements = endToEndProcessDefine.getJSONObject("elements");
|
JSONObject elements = endToEndProcessDefine.getJSONObject("elements");
|
||||||
|
JSONObject processProperties = endToEndProcessDefine.getJSONObject("processProperties");
|
||||||
|
String direction = processProperties.getString("direction");
|
||||||
// 范围标注框 大小 位置
|
// 范围标注框 大小 位置
|
||||||
JSONObject scopeShapeProps = scopeLimitationShape.getJSONObject("props");
|
JSONObject scopeShapeProps = scopeLimitationShape.getJSONObject("props");
|
||||||
double scopeShapeX = scopeShapeProps.getDoubleValue("x");
|
double scopeShapeX = scopeShapeProps.getDoubleValue("x");
|
||||||
@ -285,11 +287,23 @@ public class GraphNodeExpandHandle {
|
|||||||
JSONObject ele = elements.getJSONObject(key);
|
JSONObject ele = elements.getJSONObject(key);
|
||||||
if ("linker".equals(ele.getString("name"))) continue; // 连线先不处理
|
if ("linker".equals(ele.getString("name"))) continue; // 连线先不处理
|
||||||
JSONObject props = ele.getJSONObject("props");
|
JSONObject props = ele.getJSONObject("props");
|
||||||
if (props.getDoubleValue("x") > scopeShapeX) { // 当前元素在待展开节点的右侧
|
if (ele.getString("id").equals(scopeLimitationShape.getString("id"))) continue;
|
||||||
props.put("x", props.getDoubleValue("x") + scopeShapeW - SubProcessConst.SUB_PROCESS_SHAPE_W);
|
if ("vertically".equals(direction)){
|
||||||
}
|
if (props.getDoubleValue("x") > scopeShapeX) { // 当前元素在待展开节点的右侧
|
||||||
if (props.getDoubleValue("y") > scopeShapeY) { // 当前元素在待展开节点的下侧
|
props.put("x", props.getDoubleValue("x") + scopeShapeW - SubProcessConst.SUB_PROCESS_SHAPE_W);
|
||||||
props.put("y", props.getDoubleValue("y") + scopeShapeH - SubProcessConst.SUB_PROCESS_SHAPE_H);
|
}
|
||||||
|
if (props.getDoubleValue("y") > scopeShapeY || props.getDoubleValue("y") == scopeShapeY) { // 当前元素在待展开节点的下侧
|
||||||
|
props.put("y", props.getDoubleValue("y") + scopeShapeH - SubProcessConst.SUB_PROCESS_SHAPE_H);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
if (props.getDoubleValue("x") > scopeShapeX) { // 当前元素在待展开节点的右侧
|
||||||
|
props.put("x", props.getDoubleValue("x") + scopeShapeW - SubProcessConst.SUB_PROCESS_SHAPE_W);
|
||||||
|
}else if (props.getDoubleValue("x") == scopeShapeX && props.getDoubleValue("y") > scopeShapeY) { // 当前元素与待展开节点在一列上 且在下侧
|
||||||
|
props.put("x", props.getDoubleValue("x") + scopeShapeW - SubProcessConst.SUB_PROCESS_SHAPE_W);
|
||||||
|
}
|
||||||
|
if (props.getDoubleValue("y") > scopeShapeY) { // 当前元素在待展开节点的下侧
|
||||||
|
props.put("y", props.getDoubleValue("y") + scopeShapeH - SubProcessConst.SUB_PROCESS_SHAPE_H);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addEndToEndGraphElements(ele);
|
addEndToEndGraphElements(ele);
|
||||||
|
|||||||
@ -1163,27 +1163,29 @@ var Designer = {
|
|||||||
if (g.x == 0 && g.y == 0) {
|
if (g.x == 0 && g.y == 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 端到端功能 如果移动的元素是子流程节点展开后 范围框中的元素 则进行移动范围限制校验
|
if (methodId == 'process.subprocess') { // 如果当前打开的模型不是端到端总图 那么整个js也没有执行的必要
|
||||||
let rang = window.subProcess.scopeRang;
|
// 端到端功能 如果移动的元素是子流程节点展开后 范围框中的元素 则进行移动范围限制校验
|
||||||
let movingEle = window.subProcess.movingEle;
|
let rang = window.subProcess.scopeRang;
|
||||||
if (movingEle != null && rang != null){
|
let movingEle = window.subProcess.movingEle;
|
||||||
let flag = false;
|
if (movingEle != null && rang != null){
|
||||||
for (let k = 0; k < u.length; k++) {
|
let flag = false;
|
||||||
if (u[k].name == "linker") continue;
|
for (let k = 0; k < u.length; k++) {
|
||||||
if (u[k].id == movingEle.id) flag = true;
|
if (u[k].name == "linker") continue;
|
||||||
}
|
if (u[k].id == movingEle.id) flag = true;
|
||||||
if (flag){
|
|
||||||
let movingEleBound = {
|
|
||||||
x: movingEle.props.x,
|
|
||||||
y: movingEle.props.y,
|
|
||||||
w: movingEle.props.w,
|
|
||||||
h: movingEle.props.h
|
|
||||||
}
|
}
|
||||||
if (movingEleBound.x + g.x <= rang.x1 || movingEleBound.x + movingEleBound.w + g.x >= rang.x2 || movingEleBound.y + g.y <= rang.y1 || movingEleBound.y + movingEleBound.h + g.y >= rang.y2){
|
if (flag){
|
||||||
$.simpleAlert("子流程内部节点只能在范围标识框内部移动", "warning");
|
let movingEleBound = {
|
||||||
d.unbind("mousemove.drag");
|
x: movingEle.props.x,
|
||||||
c.unbind("mousedown.drag");
|
y: movingEle.props.y,
|
||||||
return;
|
w: movingEle.props.w,
|
||||||
|
h: movingEle.props.h
|
||||||
|
}
|
||||||
|
if (movingEleBound.x + g.x <= rang.x1 || movingEleBound.x + movingEleBound.w + g.x >= rang.x2 || movingEleBound.y + g.y <= rang.y1 || movingEleBound.y + movingEleBound.h + g.y >= rang.y2){
|
||||||
|
$.simpleAlert("子流程内部节点只能在范围标识框内部移动", "warning");
|
||||||
|
d.unbind("mousemove.drag");
|
||||||
|
c.unbind("mousedown.drag");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -458,6 +458,10 @@ var Designer = {
|
|||||||
Model.update(M)
|
Model.update(M)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 如果当前拖拽到画布的图形是子流程 则渲染节点展开图标
|
||||||
|
if (g.name == 'subProcess') {
|
||||||
|
window.subProcess.shapeOpenIconRender(g);
|
||||||
|
}
|
||||||
Utils.unselect();
|
Utils.unselect();
|
||||||
Utils.selectShape(g.id);
|
Utils.selectShape(g.id);
|
||||||
MessageSource.commit();
|
MessageSource.commit();
|
||||||
@ -928,7 +932,6 @@ var Designer = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
init: function () {
|
init: function () {
|
||||||
debugger;
|
|
||||||
this.initialize.initLayout();
|
this.initialize.initLayout();
|
||||||
this.initialize.initModel();
|
this.initialize.initModel();
|
||||||
this.initialize.initCanvas();
|
this.initialize.initCanvas();
|
||||||
@ -1177,6 +1180,32 @@ var Designer = {
|
|||||||
if (g.x == 0 && g.y == 0) {
|
if (g.x == 0 && g.y == 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (methodId == 'process.subprocess') { // 如果当前打开的模型不是端到端总图 那么整个js也没有执行的必要
|
||||||
|
// 端到端功能 如果移动的元素是子流程节点展开后 范围框中的元素 则进行移动范围限制校验
|
||||||
|
let rang = window.subProcess.scopeRang;
|
||||||
|
let movingEle = window.subProcess.movingEle;
|
||||||
|
if (movingEle != null && rang != null){
|
||||||
|
let flag = false;
|
||||||
|
for (let k = 0; k < u.length; k++) {
|
||||||
|
if (u[k].name == "linker") continue;
|
||||||
|
if (u[k].id == movingEle.id) flag = true;
|
||||||
|
}
|
||||||
|
if (flag){
|
||||||
|
let movingEleBound = {
|
||||||
|
x: movingEle.props.x,
|
||||||
|
y: movingEle.props.y,
|
||||||
|
w: movingEle.props.w,
|
||||||
|
h: movingEle.props.h
|
||||||
|
}
|
||||||
|
if (movingEleBound.x + g.x <= rang.x1 || movingEleBound.x + movingEleBound.w + g.x >= rang.x2 || movingEleBound.y + g.y <= rang.y1 || movingEleBound.y + movingEleBound.h + g.y >= rang.y2){
|
||||||
|
$.simpleAlert("子流程内部节点只能在范围标识框内部移动", "warning");
|
||||||
|
d.unbind("mousemove.drag");
|
||||||
|
c.unbind("mousedown.drag");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Designer.op.moveShape(u, g);
|
Designer.op.moveShape(u, g);
|
||||||
x = f;
|
x = f;
|
||||||
$(document).unbind("mouseup.drop").bind("mouseup.drop",
|
$(document).unbind("mouseup.drop").bind("mouseup.drop",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user