sdeboy 2003/06/08 20:23:26 Modified: src/java/org/apache/log4j/chainsaw LogUI.java ChainsawCyclicBufferTableModel.java AbstractChainsawTableModel.java Log: last selected row now stays selected when scroll to bottom is disabled, even after sorting Revision Changes Path 1.90 +13 -0 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/LogUI.java Index: LogUI.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/LogUI.java,v retrieving revision 1.89 retrieving revision 1.90 diff -u -r1.89 -r1.90 --- LogUI.java 8 Jun 2003 16:20:47 -0000 1.89 +++ LogUI.java 9 Jun 2003 03:23:25 -0000 1.90 @@ -843,6 +843,10 @@ table.getSelectionModel().setValueIsAdjusting(true); boolean rowAdded = false; + Vector lastSelected = null; + if (table.getSelectedRow() > -1) { + lastSelected = tableModel.getRow(table.getSelectedRow()); + } for (Iterator iter = eventBatchEntrys.iterator(); iter.hasNext();) { ChainsawEventBatch.Entry entry = (ChainsawEventBatch.Entry) iter.next(); @@ -898,9 +902,18 @@ tableModel.notifyCountListeners(); if (rowAdded) { + if (tableModel.isSortEnabled()) { + tableModel.sort(); + } if (scrollToBottom.isScrolled() && !scrollToBottom.isBypassed()) { table.scrollToBottom( table.columnAtPoint(table.getVisibleRect().getLocation())); + } else { + if (lastSelected != null) { + table.scrollToRow( + tableModel.getRowIndex(lastSelected), + table.columnAtPoint(table.getVisibleRect().getLocation())); + } } } } 1.11 +1 -5 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java Index: ChainsawCyclicBufferTableModel.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ChainsawCyclicBufferTableModel.java 8 Jun 2003 16:20:48 -0000 1.10 +++ ChainsawCyclicBufferTableModel.java 9 Jun 2003 03:23:26 -0000 1.11 @@ -309,10 +309,6 @@ (getDisplayFilter() == null) || (getDisplayFilter().isDisplayed(row))) { addFilteredRow(row); - if (isSortEnabled()) { - sort(); - } - rowAdded = true; } } @@ -320,7 +316,7 @@ if (!valueIsAdjusting) { notifyCountListeners(); } - fireTableRowsInserted(filteredList.size() -1 , filteredList.size()); + fireTableRowsInserted(getRowIndex(row), getRowIndex(row)); return rowAdded; } } 1.7 +0 -4 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/AbstractChainsawTableModel.java Index: AbstractChainsawTableModel.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/AbstractChainsawTableModel.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- AbstractChainsawTableModel.java 8 Jun 2003 16:20:48 -0000 1.6 +++ AbstractChainsawTableModel.java 9 Jun 2003 03:23:26 -0000 1.7 @@ -137,8 +137,6 @@ getSortableCollection(), new ColumnComparator(currentSortColumn, currentSortAscending)); } - - fireTableDataChanged(); } public void sortColumn( @@ -148,8 +146,6 @@ + ChainsawColumns.getColumnsNames().get(col)); SwingUtilities.invokeLater( new SortExecutor(this, this, table, col, row, ascending)); - - fireTableDataChanged(); } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]