sdeboy 2003/05/28 00:34:58 Modified: src/java/org/apache/log4j/chainsaw FilterChangeExecutor.java DefaultSortTableModel.java CyclicBufferList.java DisplayFilter.java ColumnSelector.java ToolTipSelector.java Log: removed management of displayed columns from displayfilter and updated columnselector to add/remove columns from the table (previously managed in displayfilter) (more work needs done - need to replace functionality with preferences support for displayed columns, including col width) corrected tooltipselector bug Revision Changes Path 1.4 +1 -3 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/FilterChangeExecutor.java Index: FilterChangeExecutor.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/FilterChangeExecutor.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- FilterChangeExecutor.java 26 May 2003 06:50:09 -0000 1.3 +++ FilterChangeExecutor.java 28 May 2003 07:34:57 -0000 1.4 @@ -72,17 +72,15 @@ Vector v2 = null; Map.Entry m = null; - Vector v3 = null; Iterator iter = model.getUnfilteredEvents().iterator(); while (iter.hasNext()) { v2 = (Vector) iter.next(); if (model.getDisplayFilter() != null) { - v3 = model.getDisplayFilter().filterColumns(v2); if (this.model.getDisplayFilter().isDisplayed(v2)) { - model.addFilteredRow(v3); + model.addFilteredRow(v2); } } } 1.17 +1 -6 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.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- DefaultSortTableModel.java 26 May 2003 06:50:09 -0000 1.16 +++ DefaultSortTableModel.java 28 May 2003 07:34:57 -0000 1.17 @@ -191,10 +191,6 @@ } public void filterChanged() { - if (!displayFilter.getDisplayedColumns().equals(columnIdentifiers)) { - setColumnIdentifiers(displayFilter.getDisplayedColumns()); - } - detailColumns = displayFilter.getDetailColumns(); SwingUtilities.invokeLater(filterExecutor); } @@ -491,8 +487,7 @@ unfilteredEvents.put(thisInt, v); if ((displayFilter == null) || (displayFilter.isDisplayed(v))) { - Vector v2 = displayFilter.filterColumns(v); - addRow(v2); + addRow(v); if (sortEnabled) { sort(); 1.3 +0 -2 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/CyclicBufferList.java Index: CyclicBufferList.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/CyclicBufferList.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CyclicBufferList.java 26 May 2003 06:49:03 -0000 1.2 +++ CyclicBufferList.java 28 May 2003 07:34:57 -0000 1.3 @@ -49,8 +49,6 @@ package org.apache.log4j.chainsaw; -import com.sun.rsasign.s; - import org.apache.log4j.helpers.CyclicBuffer; import org.apache.log4j.spi.LoggingEvent; 1.4 +0 -26 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/DisplayFilter.java Index: DisplayFilter.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/DisplayFilter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DisplayFilter.java 2 May 2003 04:19:26 -0000 1.3 +++ DisplayFilter.java 28 May 2003 07:34:57 -0000 1.4 @@ -78,13 +78,11 @@ private transient DisplayFilterEntry customFilter; private transient boolean customFilterOverride = false; private List colNames; - private Vector displayedColumns; private Vector toolTipColumns; private Boolean toolTipsEnabled = Boolean.FALSE; public DisplayFilter(List colNames) { this.colNames = colNames; - displayedColumns = new Vector(colNames); toolTipColumns = new Vector(colNames); } @@ -98,11 +96,6 @@ notifyListeners(); } - public void setDisplayedColumns(Vector v) { - displayedColumns = v; - notifyListeners(); - } - public boolean isDisplayed(Vector v) { boolean passesCustomFilter = true; @@ -143,23 +136,6 @@ } } - public Vector filterColumns(Vector v) { - Vector results = new Vector(); - int size = v.size(); - - for (int i = 0; i < size; i++) { - if (displayedColumns.contains(colNames.get(i))) { - results.add(v.get(i)); - } - } - - return results; - } - - public Vector getDisplayedColumns() { - return displayedColumns; - } - public void setDetailColumns(Vector v) { toolTipColumns = v; notifyListeners(); @@ -308,7 +284,6 @@ private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { colNames = (List) in.readObject(); - displayedColumns = (Vector) in.readObject(); toolTipColumns = (Vector) in.readObject(); toolTipsEnabled = (Boolean) in.readObject(); filterListeners = new Vector(); @@ -319,7 +294,6 @@ private void writeObject(java.io.ObjectOutputStream out) throws IOException { out.writeObject(colNames); - out.writeObject(displayedColumns); out.writeObject(toolTipColumns); out.writeObject(toolTipsEnabled); } 1.2 +100 -71 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ColumnSelector.java Index: ColumnSelector.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ColumnSelector.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ColumnSelector.java 28 Apr 2003 05:44:32 -0000 1.1 +++ ColumnSelector.java 28 May 2003 07:34:57 -0000 1.2 @@ -53,7 +53,6 @@ import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; - import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -64,7 +63,7 @@ import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JPanel; - +import javax.swing.table.TableColumn; /** * A sort of Preferences frame for the current app/panel that allows the @@ -75,74 +74,104 @@ * */ public class ColumnSelector extends JFrame { - private HashMap displayColumnBoxMap = new HashMap(); + private HashMap displayColumnBoxMap = new HashMap(); - public ColumnSelector( - final Vector columnNames, final JSortTable sortTable, - final DisplayFilter displayFilter) { - setLocation(150, 150); - - JPanel columnPanel = new JPanel(new GridLayout(0, 1)); - columnPanel.setBorder( - BorderFactory.createTitledBorder("Select display columns")); - - Vector displayedColumns = displayFilter.getDisplayedColumns(); - - columnPanel.setPreferredSize(new Dimension(150, 340)); - - for (int i = 0; i < columnNames.size(); i++) { - final String key = (String) columnNames.get(i); - JCheckBox box = new JCheckBox(key, displayedColumns.contains(key)); - displayColumnBoxMap.put(box, key); - box.addActionListener( - new ActionListener() { - public void actionPerformed(ActionEvent e) { - int sortIndex = sortTable.getSortedColumnIndex(); - String sortColumn = null; - - if (sortIndex > -1) { - sortColumn = sortTable.getModel().getColumnName(sortIndex); - } - - Vector v = new Vector(); - Collection c = displayColumnBoxMap.entrySet(); - Iterator iter = c.iterator(); - - while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - JCheckBox b = (JCheckBox) entry.getKey(); - - if (b.isSelected()) { - v.add(entry.getValue()); - } - } - - //apply ordering by using original column names order..may be some other way - Vector endVector = new Vector(); - Iterator x = columnNames.iterator(); - - while (x.hasNext()) { - String thiscol = (String) x.next(); - - if (v.contains(thiscol)) { - endVector.add(thiscol); - } - } - - displayFilter.setDisplayedColumns(endVector); - - if (sortColumn != null) { - int newIndex = endVector.indexOf(sortColumn); - - if (newIndex > -1) { - sortTable.setSortedColumnIndex(newIndex); - } - } - } - }); - columnPanel.add(box); - getContentPane().add(columnPanel); - pack(); - } - } + public ColumnSelector( + final Vector columnNames, + final JSortTable sortTable, + final DisplayFilter displayFilter) { + setLocation(150, 150); + + JPanel columnPanel = new JPanel(new GridLayout(0, 1)); + columnPanel.setBorder( + BorderFactory.createTitledBorder("Select display columns")); + + Vector displayedColumns = new Vector(); + int modelIndex = 0; + for (Iterator iter2 = ChainsawColumns.getColumnsNames().iterator();iter2.hasNext();) { + Object column = iter2.next(); + int viewIndex = sortTable.convertColumnIndexToView(modelIndex); + if (viewIndex > -1) { + displayedColumns.add(column); + } + } + + columnPanel.setPreferredSize(new Dimension(150, 340)); + + for (int i = 0; i < columnNames.size(); i++) { + final String key = (String) columnNames.get(i); + JCheckBox box = new JCheckBox(key, displayedColumns.contains(key)); + displayColumnBoxMap.put(box, key); + box.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + int sortIndex = sortTable.getSortedColumnIndex(); + String sortColumn = null; + + if (sortIndex > -1) { + sortColumn = + sortTable.getModel().getColumnName(sortIndex); + } + + Vector v = new Vector(); + Collection c = displayColumnBoxMap.entrySet(); + Iterator iter = c.iterator(); + + while (iter.hasNext()) { + Map.Entry entry = (Map.Entry) iter.next(); + JCheckBox b = (JCheckBox) entry.getKey(); + + if (b.isSelected()) { + v.add(entry.getValue()); + } + } + + //apply ordering by using original column names order..may be some other way + Vector endVector = new Vector(); + Iterator x = columnNames.iterator(); + + while (x.hasNext()) { + String thiscol = (String) x.next(); + + if (v.contains(thiscol)) { + endVector.add(thiscol); + } + } + + int modelIndex = 0; + for (Iterator iter2 = + ChainsawColumns.getColumnsNames().iterator(); + iter2.hasNext(); + ) { + Object column = iter2.next(); + int viewIndex = + sortTable.convertColumnIndexToView(modelIndex); + if (endVector.contains(column)) { + if (viewIndex == -1) { + TableColumn tableColumn = + new TableColumn(modelIndex); + sortTable.addColumn(tableColumn); + } + } else { + if (viewIndex > -1) { + sortTable.removeColumn( + sortTable.getColumn(column)); + } + } + modelIndex++; + } + + if (sortColumn != null) { + int newIndex = endVector.indexOf(sortColumn); + + if (newIndex > -1) { + sortTable.setSortedColumnIndex(newIndex); + } + } + } + }); + columnPanel.add(box); + getContentPane().add(columnPanel); + pack(); + } + } } 1.3 +1 -1 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ToolTipSelector.java Index: ToolTipSelector.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ToolTipSelector.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ToolTipSelector.java 30 Apr 2003 23:09:16 -0000 1.2 +++ ToolTipSelector.java 28 May 2003 07:34:57 -0000 1.3 @@ -120,7 +120,7 @@ } } - displayFilter.setDisplayedColumns(endVector); + displayFilter.setDetailColumns(endVector); } }); toolTipPanel.add(box);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]