From 589a13ed8d51a8938bae9d710d3ab7ef15b3a98c Mon Sep 17 00:00:00 2001 From: Daniel Schramm <xschramm@fi.muni.cz> Date: Sun, 10 Oct 2021 16:29:58 +0200 Subject: [PATCH] Hausdorff distance recomputed when slider is released --- .../analyst/distance/DistancePanel.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java b/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java index b18c02e6..34ec91ae 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java +++ b/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java @@ -149,7 +149,7 @@ public class DistancePanel extends ControlPanel { public void actionPerformed(ActionEvent e) { originalEnterAction.actionPerformed(e); if (!checkBox.isSelected()) { - return; + return; // Recompute only if the feature point is selected } action.actionPerformed(new ActionEvent( @@ -160,6 +160,28 @@ public class DistancePanel extends ControlPanel { } } ); + // Add mouse listener of the slider + sliderInput.addMouseListener(new MouseAdapter() { + private double oldValue = DrawableFeaturePoints.DEFAULT_SIZE; + + @Override + public void mousePressed(MouseEvent e) { + oldValue = Double.parseDouble(sliderInput.getText()); + } + + @Override + public void mouseReleased(MouseEvent e) { + if (!checkBox.isSelected() || oldValue == Double.parseDouble(sliderInput.getText())) { + return; // Recompute only if the feature point is selected and value changed + } + + action.actionPerformed(new ActionEvent( + e.getSource(), + ActionEvent.ACTION_PERFORMED, + ACTION_COMMAND_DISTANCE_RECOMPUTE) + ); + } + }); fpBuilder.addGap(); featurePointStats.put(featurePointType, fpBuilder.addLabelLine(null)); -- GitLab