File tree 2 files changed +24
-1
lines changed
main/java/org/springframework/shell/component/view/control
test/java/org/springframework/shell/component/view/control 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -103,7 +103,7 @@ protected void initInternal() {
103
103
104
104
registerMouseBinding (MouseEvent .Type .Wheel | MouseEvent .Button .WheelUp , () -> up ());
105
105
registerMouseBinding (MouseEvent .Type .Wheel | MouseEvent .Button .WheelDown , () -> down ());
106
- registerMouseBinding (MouseEvent .Type .Released | MouseEvent .Button .Button1 , () -> {} );
106
+ registerMouseBinding (MouseEvent .Type .Released | MouseEvent .Button .Button1 , event -> click ( event ) );
107
107
}
108
108
109
109
private void up () {
@@ -121,6 +121,13 @@ private void enter() {
121
121
dispatch (ShellMessageBuilder .ofView (this , ListViewOpenSelectedItemEvent .of (this , selectedItem ())));
122
122
}
123
123
124
+ private void click (MouseEvent event ) {
125
+ int index = event .y () - getInnerRect ().y ();
126
+ if (index > -1 && index < items .size ()) {
127
+ setSelected (index );
128
+ }
129
+ }
130
+
124
131
public void setSelected (int selected ) {
125
132
if (this .selected != selected ) {
126
133
this .selected = selected ;
Original file line number Diff line number Diff line change @@ -94,6 +94,22 @@ void mouseWheelMoveSelection() {
94
94
assertThat (selected (view )).isEqualTo (0 );
95
95
}
96
96
97
+ @ Test
98
+ void mouseClickMoveSelection () {
99
+ ListView <String > view = new ListView <>();
100
+ configure (view );
101
+ view .setRect (0 , 0 , 80 , 24 );
102
+ view .setItems (Arrays .asList ("item1" , "item2" ));
103
+ assertThat (selected (view )).isEqualTo (-1 );
104
+
105
+ MouseEvent event00 = mouseClick (0 , 0 );
106
+ MouseEvent event01 = mouseClick (0 , 1 );
107
+ view .getMouseHandler ().handle (MouseHandler .argsOf (event00 ));
108
+ assertThat (selected (view )).isEqualTo (0 );
109
+ view .getMouseHandler ().handle (MouseHandler .argsOf (event01 ));
110
+ assertThat (selected (view )).isEqualTo (1 );
111
+ }
112
+
97
113
static int selected (ListView <?> view ) {
98
114
return (int ) ReflectionTestUtils .getField (view , "selected" );
99
115
}
You can’t perform that action at this time.
0 commit comments