On Fri, 14 Mar 2025 02:50:16 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> wrote:
>> JTable.selectAll doesn't do anything if there are no rows or no columns. >> But it should still select all columns if there are no rows and the other >> way round. >> It is seen that isColumnSelected() will return false for all columns after >> calling selectAll() if there happened to be no rows. >> >> Fix is made to select all columns even if there are no rows and similarly >> for rows if there are no columns. > > Prasanta Sadhukhan has updated the pull request incrementally with one > additional commit since the last revision: > > Get rowCount,columnCount upfront If there are no rows then most probably `selectAll` will select `column headers`.. right? I don't understand why do we want to select all columns if there are no rows or vice-versa ? Does it return any useful details? Few changes can be done in the fix and test code (if fix is applicable) src/java.desktop/share/classes/javax/swing/JTable.java line 2199: > 2197: SwingUtilities2.setLeadAnchorWithoutSelection(selModel, > oldLead, oldAnchor); > 2198: > 2199: selModel.setValueIsAdjusting(false); Recently added code is a subset of the code block in `if block`. Duplicate code can be refactored with helper methods. src/java.desktop/share/classes/javax/swing/JTable.java line 2206: > 2204: oldAnchor = > getAdjustedIndex(selModel.getAnchorSelectionIndex(), false); > 2205: > 2206: setColumnSelectionInterval(0, getColumnCount()-1); Suggestion: setColumnSelectionInterval(0, getColumnCount() - 1); test/jdk/javax/swing/JTable/TestTableSelectAll.java line 43: > 41: > 42: // TableModel with no rows, but 10 columns > 43: DefaultTableModel data = new DefaultTableModel(0, 10); Proposed fix tries to handle two cases: 1. rowCount > 0 and columnCount = 0 2. columnCount > 0 and rowCount = 0 but test code covers only second case (rowCount = 0). Test should be extended to verify both cases. ------------- PR Review: https://git.openjdk.org/jdk/pull/24025#pullrequestreview-2692980379 PR Review Comment: https://git.openjdk.org/jdk/pull/24025#discussion_r2000216763 PR Review Comment: https://git.openjdk.org/jdk/pull/24025#discussion_r2000216991 PR Review Comment: https://git.openjdk.org/jdk/pull/24025#discussion_r2000224539