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 b18c02e69b0d3f655b03c13869045a0e575672dd..34ec91ae435178d2434e30aebe84a3a8aa272aee 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));