From 707eb32e06e9e985bdf7519305264a1ae06f3876 Mon Sep 17 00:00:00 2001 From: Omar Sweidan Date: Fri, 10 Jun 2022 11:59:42 +0200 Subject: [PATCH] =?utf8?q?Elemek=20t=C3=B6rl=C3=A9se=20=C3=A1br=C3=A1r?= =?utf8?q?=C3=B3l?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../js/processVisualizer2.js | 58 +++++++++++++++---- .../pages/processVisualizer2.zul | 1 + .../jobengine/zk/model/JobFlowChartModel.java | 9 ++- 3 files changed, 53 insertions(+), 15 deletions(-) diff --git a/server/user.mediacube.gui/js/processVisualizer2.js b/server/user.mediacube.gui/js/processVisualizer2.js index 0c2f5a8c..c2e38f3b 100644 --- a/server/user.mediacube.gui/js/processVisualizer2.js +++ b/server/user.mediacube.gui/js/processVisualizer2.js @@ -59,17 +59,6 @@ var connectorsForEnd=[ model.init("myCanvas"); model.draw(); - -function getPressedKey(e) { - var keyCode=` ${e.code}`; - - if(keyCode == " Delete"){ - console.log("Delete lett nyomva"); - } - console.log("keydown: ", keyCode); -} - - document.addEventListener("keydown", getPressedKey); function setFlowchartData(data) { var arrays= JSON.parse(data); @@ -98,7 +87,6 @@ function getPressedKey(e) { model.addLink(new model.link(i+1, i+2, 1, 0, "", "straight")); } } - model.addLink(new model.link(i, i+1, 1, 0, "", "straight")); model.draw(); for (let i = 0; i < params.length; i++) { @@ -113,4 +101,50 @@ function getPressedKey(e) { function getFlowchartData(){ console.log("getFlowchartData"); zk.Widget.$('$flowchartDataListener').fire('onFlowchartDataChanged', { model }, {toServer : true}); +} + +function deleteSelectedElement(){ + //if a node is selected for deletion + if(mouse.selLink == null && mouse.selNode != null){ + let linksRefreshNeeded= true; + if(mouse.selNode == model.nodes.length-2){ + linksRefreshNeeded= false; + } + + if(model.nodes.length == 3 && mouse.selNode == 1){ + //delete all the links + model.links= []; + } else if (model.nodes.length > 3){ + for(let index= 0; index < model.links.length; index++){ + if(model.links[index].to == mouse.selNode || model.links[index].from == mouse.selNode){ + model.links.splice(index, 1); + index= -1; + } + } + } + //update the links to and from parameters, since node indices have also chaged, + //if the selected node is not the last one + if(linksRefreshNeeded){ + for(let i= 0; i < model.links.length; i++){ + if(model.links[i].to != 1){ + model.links[i].to--; + } + if(model.links[i].from != 0){ + model.links[i].from--; + } + } + } + + //delete the node + model.nodes.splice(mouse.selNode, 1); + mouse.selNode= null; + } + + //if the selected element for deletion is a link + if(mouse.selLink != null && mouse.selNode == null){ + model.links.splice(mouse.selLink, 1); + mouse.selLink= null; + } + + model.draw(); } \ No newline at end of file diff --git a/server/user.mediacube.gui/pages/processVisualizer2.zul b/server/user.mediacube.gui/pages/processVisualizer2.zul index b1610b13..e6c1d38a 100644 --- a/server/user.mediacube.gui/pages/processVisualizer2.zul +++ b/server/user.mediacube.gui/pages/processVisualizer2.zul @@ -6,6 +6,7 @@
diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java index bb8c2c83..e82b2d5d 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java @@ -48,7 +48,6 @@ public class JobFlowChartModel extends BaseModel { @GlobalCommand public void selectedJobChanged(@BindingParam("selectedJob") BasicDBObject selectedJob) { - logger.info("selectedJobChanged"); setSelectedJob(selectedJob); if (selectedTabID.equals("tab2")) { @@ -70,6 +69,11 @@ public class JobFlowChartModel extends BaseModel { logger.info("converted document: {}", XMLUtils.getStringFromDocument(document)); } + @Command + public void onDeletePressed(@ContextParam(ContextType.TRIGGER_EVENT) Event event) { + Clients.evalJavaScript("deleteSelectedElement();"); + } + private JobTemplate JSONObjectToJobtemplate(JSONObject data) { JobTemplate template = new JobTemplate(); DeclarationSequence ds = new DeclarationSequence(); @@ -131,7 +135,6 @@ public class JobFlowChartModel extends BaseModel { @GlobalCommand public void selectedTabChanged(@BindingParam("evt") SelectEvent event) { - logger.info("selectedTabChanged"); setSelectedTabID(event.getReference().getId()); if (selectedTabID.equals("tab2")) { @@ -152,7 +155,7 @@ public class JobFlowChartModel extends BaseModel { } private void initializeCanvas() { - String js = "mouse.selNode= null;\r\n model.clear();\r\n model.clean();\r\n model.draw();"; + String js = "mouse.selNode= null;\r\n mouse.selLink= null;\r\n model.clear();\r\n model.clean();\r\n model.draw();"; Clients.evalJavaScript(js); } -- 2.54.0