Skip to content

Commit 0866e03

Browse files
committed
Let SwingNumberWidget listen for mouse wheel events
1 parent 32ddc3c commit 0866e03

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/main/java/org/scijava/ui/swing/widget/SwingNumberWidget.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
import java.awt.event.AdjustmentListener;
3838
import java.awt.event.FocusEvent;
3939
import java.awt.event.FocusListener;
40+
import java.awt.event.MouseWheelEvent;
41+
import java.awt.event.MouseWheelListener;
4042
import java.math.BigDecimal;
4143
import java.math.BigInteger;
4244
import java.text.DecimalFormat;
@@ -68,7 +70,7 @@
6870
*/
6971
@Plugin(type = InputWidget.class)
7072
public class SwingNumberWidget extends SwingInputWidget<Number> implements
71-
NumberWidget<JPanel>, AdjustmentListener, ChangeListener
73+
NumberWidget<JPanel>, AdjustmentListener, ChangeListener, MouseWheelListener
7274
{
7375

7476
@Parameter
@@ -159,6 +161,17 @@ else if (source == spinner) {
159161
}
160162
updateModel();
161163
}
164+
165+
// -- MouseWheelListener methods --
166+
167+
@Override
168+
public void mouseWheelMoved(final MouseWheelEvent e) {
169+
int value = getValue().intValue() + e.getWheelRotation();
170+
value = Math.min(value, this.get().getMax().intValue());
171+
value = Math.max(value, this.get().getMin().intValue());
172+
spinner.setValue(value);
173+
syncSliders();
174+
}
162175

163176
// -- Helper methods --
164177

@@ -180,6 +193,7 @@ private void addScrollBar(final Number min, final Number max,
180193
setToolTip(scrollBar);
181194
getComponent().add(scrollBar);
182195
scrollBar.addAdjustmentListener(this);
196+
scrollBar.addMouseWheelListener(this);
183197
}
184198

185199
private void addSlider(final Number min, final Number max,
@@ -213,6 +227,7 @@ private void addSlider(final Number min, final Number max,
213227
setToolTip(slider);
214228
getComponent().add(slider);
215229
slider.addChangeListener(this);
230+
slider.addMouseWheelListener(this);
216231
}
217232

218233
/**

0 commit comments

Comments
 (0)