From 40f2994a84efadfc81004a29c9a73dc6a6a3b8a7 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sun, 6 Nov 2022 23:59:04 +0100 Subject: [PATCH] [#1794] Clamp IntegerModel to min and max on set --- .../src/net/sf/openrocket/gui/adaptors/IntegerModel.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/swing/src/net/sf/openrocket/gui/adaptors/IntegerModel.java b/swing/src/net/sf/openrocket/gui/adaptors/IntegerModel.java index 4703642d3..6a32355f9 100644 --- a/swing/src/net/sf/openrocket/gui/adaptors/IntegerModel.java +++ b/swing/src/net/sf/openrocket/gui/adaptors/IntegerModel.java @@ -13,6 +13,7 @@ import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import net.sf.openrocket.util.MathUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -210,9 +211,16 @@ public class IntegerModel implements StateChangeListener { * Sets the value of the variable. */ public void setValue(int v) { + int clampedValue = MathUtil.clamp(v, minValue, maxValue); + if (clampedValue != v) { + log.debug("Clamped value " + v + " to " + clampedValue + " for " + this); + v = clampedValue; + } + log.debug("Setting value " + v + " for " + this); try { setMethod.invoke(source, v); + fireStateChanged(); } catch (IllegalArgumentException e) { throw new BugException(e); } catch (IllegalAccessException e) {