sdeboy      2003/06/06 21:30:27

  Modified:    src/java/org/apache/log4j/chainsaw
                        DefaultSortTableModel.java EventContainer.java
                        ChainsawCyclicBufferTableModel.java
                        SortExecutor.java
  Log:
  Updated defaultsorttablemodel and sortexecutor to correctly re-set the last selected 
row after a sort (using the row's vector instead of the LoggingEvent representing the 
row).
  
  Revision  Changes    Path
  1.18      +6 -2      
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/DefaultSortTableModel.java
  
  Index: DefaultSortTableModel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/DefaultSortTableModel.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- DefaultSortTableModel.java        28 May 2003 07:34:57 -0000      1.17
  +++ DefaultSortTableModel.java        7 Jun 2003 04:30:27 -0000       1.18
  @@ -122,6 +122,12 @@
       }
     }
   
  +  public int getRowIndex(Vector v) {
  +     synchronized(getDataVector()) {
  +             return getDataVector().indexOf(v);
  +     }
  +  }
  +  
     public Vector getRow(int row) {
       if ((getDataVector().size() >= row) && (row > -1)) {
         int col = columnIdentifiers.indexOf(ChainsawConstants.ID_COL_NAME);
  @@ -298,8 +304,6 @@
   
     public Vector getAllEvents() {
       Vector v = new Vector();
  -    int index = allColumnNames.indexOf(ChainsawConstants.ID_COL_NAME);
  -
       synchronized (getDataVector()) {
         Iterator iter = unfilteredEvents.keySet().iterator();
   
  
  
  
  1.5       +2 -0      
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/EventContainer.java
  
  Index: EventContainer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/EventContainer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- EventContainer.java       26 May 2003 06:50:09 -0000      1.4
  +++ EventContainer.java       7 Jun 2003 04:30:27 -0000       1.5
  @@ -174,6 +174,8 @@
      */
     public void setSortEnabled(boolean b);
   
  +  public int getRowIndex(Vector v);
  +  
     /**
      * Causes the EventContainer to sort according to it's configured attributes
      *
  
  
  
  1.7       +6 -0      
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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ChainsawCyclicBufferTableModel.java       28 May 2003 16:52:49 -0000      1.6
  +++ ChainsawCyclicBufferTableModel.java       7 Jun 2003 04:30:27 -0000       1.7
  @@ -114,6 +114,12 @@
       }
     }
   
  +  public int getRowIndex(Vector v) {
  +     synchronized(syncLock) {
  +             return cyclicBufferList.indexOf(v);
  +     }
  +  }
  +  
     public int getColumnCount() {
       return ChainsawColumns.getColumnsNames().size();
     }
  
  
  
  1.5       +9 -5      
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/SortExecutor.java
  
  Index: SortExecutor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/SortExecutor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SortExecutor.java 2 Jun 2003 04:23:08 -0000       1.4
  +++ SortExecutor.java 7 Jun 2003 04:30:27 -0000       1.5
  @@ -49,6 +49,9 @@
   
   package org.apache.log4j.chainsaw;
   
  +import java.util.Vector;
  +
  +
   /**
    * A Runnable task that is executed in the Swing Event Dispatching
    * thread to ensure that the data is sorted by a particular column
  @@ -74,24 +77,25 @@
   
     public void run() {
       synchronized (syncLock) {
  -      Object o = null;
  +      Vector v = null;
   
         if ((currentRow > -1) && (currentRow < model.getAllEvents().size())) {
  -        o = model.getAllEvents().get(currentRow);
  +        v = model.getRow(currentRow);
         }
   
         model.setSortEnabled(true);
         model.setCurrentSortColumn(col, ascending);
  +
         if (col > -1) {
  -           model.sort();
  +        model.sort();
         }
   
  -      if (o == null) {
  +      if (v == null) {
           table.scrollToRow(
             -1, table.columnAtPoint(table.getVisibleRect().getLocation()));
         } else {
           table.scrollToRow(
  -          model.getAllEvents().indexOf(o),
  +          model.getRowIndex(v),
             table.columnAtPoint(table.getVisibleRect().getLocation()));
         }
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to