RFR: 8338041: Keyborad Navigation of JTable, Ctrl Shift RIGHT/LEFT doesn't follow native action in GTK L&F
Abhishek Kumar
abhiscxk at openjdk.org
Fri Aug 16 10:15:52 UTC 2024
On Fri, 16 Aug 2024 07:39:44 GMT, Tejesh R <tr at openjdk.org> wrote:
> In JTable, keyboard navigation keys Ctrl Shift RIGHT/LEFT doesn't follow native actions of Linux. In native the actions are extended to end of selected columns cells either LEFT/RIGHT but in swing gtk look and feel the selection is extended to one cell to left/right. This might be taken as reference of Windows OS since the same is observed in Windows native. Hence I have update the actions for Ctrl Shift RIGHT & LEFT.
> Added automated test too. The fix is tested in CI and its fine.
test/jdk/javax/swing/plaf/gtk/JTableCtrlShiftRightLeftKeyTest.java line 75:
> 73: robot.delay(100);
> 74:
> 75: testCtrlShift(KeyEvent.VK_RIGHT, SELECTED_COLUMN, table.getColumnCount()-1);
Suggestion:
testCtrlShift(KeyEvent.VK_RIGHT, SELECTED_COLUMN, table.getColumnCount() - 1);
test/jdk/javax/swing/plaf/gtk/JTableCtrlShiftRightLeftKeyTest.java line 114:
> 112:
> 113: if (selectedColumnAfterKeyPress[0] != startCellCheck ||
> 114: selectedColumnAfterKeyPress[selectedColumnAfterKeyPress.length-1] !=
Suggestion:
selectedColumnAfterKeyPress[selectedColumnAfterKeyPress.length - 1] !=
test/jdk/javax/swing/plaf/gtk/JTableCtrlShiftRightLeftKeyTest.java line 117:
> 115: endCellCheck) {
> 116: System.out.println("Selected Columns: ");
> 117: for (int columnAfterTabPress : selectedColumnAfterKeyPress) {
I don't think it is required to print the selected column.. If at all it is required for debugging I guess `columnAfterTabPress` should be renamed as columns are not selected after tab press.
test/jdk/javax/swing/plaf/gtk/JTableCtrlShiftRightLeftKeyTest.java line 120:
> 118: System.out.println(columnAfterTabPress);
> 119: }
> 120: String key = (keySelected == KeyEvent.VK_RIGHT)? "RIGHT" : "LEFT";
"RIGHT" or "LEFT" can be passed as an argument to this method. This check can be removed.
test/jdk/javax/swing/plaf/gtk/JTableCtrlShiftRightLeftKeyTest.java line 122:
> 120: String key = (keySelected == KeyEvent.VK_RIGHT)? "RIGHT" : "LEFT";
> 121: String failureMsg = "Test Failure. Failed to select cells for Ctrl" +
> 122: " Shift "+key+" selection";
Suggestion:
" Shift " + key + " selection";
test/jdk/javax/swing/plaf/gtk/JTableCtrlShiftRightLeftKeyTest.java line 128:
> 126:
> 127: private static void createAndShowUI() {
> 128: frame = new JFrame("Test JTable Tab Press");
Title should be changed to something like `Test JTable Ctrl + Shift + Left / Right Key Press`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20608#discussion_r1719644278
PR Review Comment: https://git.openjdk.org/jdk/pull/20608#discussion_r1719645093
PR Review Comment: https://git.openjdk.org/jdk/pull/20608#discussion_r1719647618
PR Review Comment: https://git.openjdk.org/jdk/pull/20608#discussion_r1719642247
PR Review Comment: https://git.openjdk.org/jdk/pull/20608#discussion_r1719648412
PR Review Comment: https://git.openjdk.org/jdk/pull/20608#discussion_r1719649574
More information about the client-libs-dev
mailing list