From 66de703e0874f9ed22c20ea98e568d548c5807f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Dervaux?= <stephane.dervaux@inrae.fr> Date: Mon, 4 Mar 2024 13:12:48 +0100 Subject: [PATCH 1/2] first version. Blinking step on selection in graph --- .../po2vocabmanager/utils/JavaConnector.java | 8 ++++ .../view/dataView/DataOverviewController.java | 42 +++++++++++++++++++ .../po2vocabmanager/graph/graph-creator.js | 5 +++ 3 files changed, 55 insertions(+) diff --git a/src/main/java/fr/inra/po2vocabmanager/utils/JavaConnector.java b/src/main/java/fr/inra/po2vocabmanager/utils/JavaConnector.java index c63350e3..b7072356 100644 --- a/src/main/java/fr/inra/po2vocabmanager/utils/JavaConnector.java +++ b/src/main/java/fr/inra/po2vocabmanager/utils/JavaConnector.java @@ -113,4 +113,12 @@ public class JavaConnector { MainApp.getDataControler().selectNode(itiFile); } } + + public void highlightStep(String node) { + JSONObject oStep = new JSONObject(node); + StepFile s = listStep.get(oStep.getInt("id")); + if(s != null) { + MainApp.getDataControler().highlightStep(s, itiFile); + } + } } \ No newline at end of file diff --git a/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java b/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java index 1b8e4b67..9d9a9869 100644 --- a/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java +++ b/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java @@ -33,6 +33,8 @@ import fr.inrae.po2engine.model.dataModel.*; import fr.inrae.po2engine.utils.DataTools; import fr.inrae.po2engine.utils.Report; import fr.inrae.po2engine.utils.Tools; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; import javafx.application.Platform; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; @@ -48,6 +50,7 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.HBox; import javafx.stage.Modality; +import javafx.util.Duration; import org.apache.commons.lang3.tuple.MutablePair; import java.io.IOException; @@ -780,4 +783,43 @@ public class DataOverviewController { // listDataNode.remove(gf); } + public void highlightStep(StepFile step, ItineraryFile itineraryFile) { + DataNode node = getDataNode(step, itineraryFile); + if(node != null) { + highlightNode(node); + } + } + + public void highlightNode(DataNode node) { + if(node != null) { + TreeItem<DataNode> treeItem = searchNode(rootItem, node); + if(treeItem != null) { + openTreeItem(treeItem); + Platform.runLater(() -> { + Timeline timeline = new Timeline( + new KeyFrame(Duration.seconds(0.2), evt -> { + treeItem.getGraphic().getParent().setVisible(false); + }), + new KeyFrame(Duration.seconds( 0.4), evt -> { + treeItem.getGraphic().getParent().setVisible(true); + })); + timeline.setCycleCount(10); + timeline.play(); +// Timeline timeline = new Timeline(new KeyFrame(Duration.millis(500), e -> { +// // Inverser la visibilité du nœud +// treeItem.getGraphic().setVisible(!treeItem.getGraphic().isVisible()); +// })); +// timeline.play(); + }); + + } + } + } + + public void openTreeItem(TreeItem item) { + if(item != null) { + openTreeItem(item.getParent()); + item.setExpanded(true); + } + } } diff --git a/src/main/resources/fr/inra/po2vocabmanager/graph/graph-creator.js b/src/main/resources/fr/inra/po2vocabmanager/graph/graph-creator.js index 345038fe..af469b86 100644 --- a/src/main/resources/fr/inra/po2vocabmanager/graph/graph-creator.js +++ b/src/main/resources/fr/inra/po2vocabmanager/graph/graph-creator.js @@ -340,6 +340,7 @@ thisGraph.removeSelectFromNode(); } thisGraph.state.selectedNode = nodeData; + thisGraph.javaFXHighLightNode(nodeData); }; GraphCreator.prototype.removeSelectFromNode = function() { @@ -848,6 +849,10 @@ GraphCreator.prototype.addEdgeNoUpdate = function(nodeSrc, nodeTgt) { javaConnector.delNode(JSON.stringify(node)); } + GraphCreator.prototype.javaFXHighLightNode = function(node) { + javaConnector.highlightStep(JSON.stringify(node)); + } + /** MAIN SVG **/ var svg = d3.select("body").append("svg") .attr("width", width) -- GitLab From e035d3c3fdc898f11ebdd2845a7d3576822fc54a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Dervaux?= <stephane.dervaux@inrae.fr> Date: Mon, 4 Mar 2024 13:40:28 +0100 Subject: [PATCH 2/2] remove comment --- .../view/dataView/DataOverviewController.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java b/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java index 9d9a9869..bb4aa213 100644 --- a/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java +++ b/src/main/java/fr/inra/po2vocabmanager/view/dataView/DataOverviewController.java @@ -805,11 +805,6 @@ public class DataOverviewController { })); timeline.setCycleCount(10); timeline.play(); -// Timeline timeline = new Timeline(new KeyFrame(Duration.millis(500), e -> { -// // Inverser la visibilité du nœud -// treeItem.getGraphic().setVisible(!treeItem.getGraphic().isVisible()); -// })); -// timeline.play(); }); } -- GitLab