Skip to content

Commit 24ede95

Browse files
committed
Let SwingNumberWidget listen for mouse wheel events
1 parent 221d3c6 commit 24ede95

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;
@@ -67,7 +69,7 @@
6769
*/
6870
@Plugin(type = InputWidget.class)
6971
public class SwingNumberWidget extends SwingInputWidget<Number> implements
70-
NumberWidget<JPanel>, AdjustmentListener, ChangeListener
72+
NumberWidget<JPanel>, AdjustmentListener, ChangeListener, MouseWheelListener
7173
{
7274

7375
@Parameter
@@ -110,6 +112,7 @@ public void set(final WidgetModel model) {
110112
setToolTip(scrollBar);
111113
getComponent().add(scrollBar);
112114
scrollBar.addAdjustmentListener(this);
115+
scrollBar.addMouseWheelListener(this);
113116
}
114117
else if (model.isStyle(NumberWidget.SLIDER_STYLE)) {
115118
slider =
@@ -121,6 +124,7 @@ else if (model.isStyle(NumberWidget.SLIDER_STYLE)) {
121124
setToolTip(slider);
122125
getComponent().add(slider);
123126
slider.addChangeListener(this);
127+
slider.addMouseWheelListener(this);
124128
}
125129

126130
// add spinner widget
@@ -171,6 +175,17 @@ else if (source == spinner) {
171175
}
172176
updateModel();
173177
}
178+
179+
// -- MouseWheelListener methods --
180+
181+
@Override
182+
public void mouseWheelMoved(final MouseWheelEvent e) {
183+
int value = getValue().intValue() + e.getWheelRotation();
184+
value = Math.min(value, this.get().getMax().intValue());
185+
value = Math.max(value, this.get().getMin().intValue());
186+
spinner.setValue(value);
187+
syncSliders();
188+
}
174189

175190
// -- Helper methods --
176191

0 commit comments

Comments
 (0)