sdeboy 2003/06/14 14:30:45 Modified: src/java/org/apache/log4j/chainsaw TableColorizingRenderer.java DisplayFilterEntry.java LogUI.java EventContainer.java ChainsawCyclicBufferTableModel.java DisplayFilter.java ColorDisplaySelector.java ColorFilter.java . build.xml Removed: src/java/org/apache/log4j/chainsaw FilterChangeExecutor.java ToolTipSelector.java SortExecutor.java Log: Refactoring in progress - Updated build javadoc target - Removed dead code - Moved Filter and SortExecutors into CyclicTableModel and simplified EventContainer interface - Updated displayfilterentry - previously supported a flag on whether the display filter was a positive or negative filter - was always being set to true so removed the flag. Revision Changes Path 1.13 +1 -16 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java Index: TableColorizingRenderer.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- TableColorizingRenderer.java 8 Jun 2003 16:20:46 -0000 1.12 +++ TableColorizingRenderer.java 14 Jun 2003 21:30:44 -0000 1.13 @@ -84,7 +84,7 @@ * @author Claude Duguay */ public class TableColorizingRenderer extends DefaultTableCellRenderer - implements SettingsListener, FilterChangedListener { + implements SettingsListener { private static final DateFormat DATE_FORMATTER = new ISO8601DateFormat(Calendar.getInstance().getTimeZone()); private Map iconMap = new HashMap(); @@ -151,21 +151,6 @@ } public void saveSettings(SaveSettingsEvent event) { - } - - /** - *TODO - */ - public void filterChanged() { - if (table != null) { - //assumes calling validate will re-run through each cell's gettablecellrenderercomponent - //with an updated colorfilter - TableModel model = table.getModel(); - - if (model instanceof EventContainer) { - ((EventContainer) model).fireTableDataChanged(); - } - } } /** 1.2 +4 -17 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/DisplayFilterEntry.java Index: DisplayFilterEntry.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/DisplayFilterEntry.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DisplayFilterEntry.java 28 Apr 2003 05:44:31 -0000 1.1 +++ DisplayFilterEntry.java 14 Jun 2003 21:30:44 -0000 1.2 @@ -59,19 +59,16 @@ */ class DisplayFilterEntry implements Serializable { - private static final String GLOBAL_MATCH = "*"; private final String columnName; private final String columnValue; private final String level; private ExpressionEvaluator evaluator; - private final Boolean display; DisplayFilterEntry( - String columnName, String columnValue, String level, Boolean display) { + String columnName, String columnValue, String level) { this.columnName = columnName; this.columnValue = columnValue; this.level = level; - this.display = display; evaluator = ExpressionEvaluatorFactory.newInstance().getEvaluator(columnValue); } @@ -80,10 +77,6 @@ return level; } - Boolean getDisplay() { - return display; - } - String getColumnName() { return columnName; } @@ -95,7 +88,7 @@ boolean matches(String column, String value, String level) { return ((column != null) && (level != null) && (evaluator != null) && column.equals(this.columnName) - && (level.equals(this.level) || (this.level.equals(GLOBAL_MATCH))) + && (level.equals(this.level) || (this.level.equals(ChainsawConstants.GLOBAL_MATCH))) && evaluator.match(value)); } @@ -114,10 +107,6 @@ result = (result * 17) + level.hashCode(); } - if (display != null) { - result = (result * 17) + display.hashCode(); - } - return result; } @@ -136,9 +125,7 @@ && (((level == null) && (f.level == null)) || ((level != null) && level.equals(f.level))); - return result - && (((display == null) && (f.display == null)) - || ((display != null) && display.equals(f.display))); + return result; } return false; @@ -146,6 +133,6 @@ public String toString() { return "columnName: " + columnName + ", columnValue: " + columnValue - + ", level: " + level + ", display: " + display; + + ", level: " + level; } } 1.94 +53 -20 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.93 retrieving revision 1.94 diff -u -r1.93 -r1.94 --- LogUI.java 14 Jun 2003 16:48:14 -0000 1.93 +++ LogUI.java 14 Jun 2003 21:30:44 -0000 1.94 @@ -234,7 +234,7 @@ if (splash != null) { splash.setVisible(false); splash.dispose(); - } + } } /** @@ -842,8 +842,9 @@ boolean rowAdded = false; Vector lastSelected = null; - if (table.getSelectedRow() > -1) { - lastSelected = tableModel.getRow(table.getSelectedRow()); + + if (table.getSelectedRow() > -1) { + lastSelected = tableModel.getRow(table.getSelectedRow()); } for (Iterator iter = eventBatchEntrys.iterator(); iter.hasNext();) { @@ -897,21 +898,22 @@ } table.getSelectionModel().setValueIsAdjusting(false); + + //tell the model to notify the count listeners tableModel.notifyCountListeners(); if (rowAdded) { - if (tableModel.isSortEnabled()) { - tableModel.sort(); - } + 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())); - } + if (lastSelected != null) { + table.scrollToRow( + tableModel.getRowIndex(lastSelected), + table.columnAtPoint(table.getVisibleRect().getLocation())); + } } } } @@ -1035,10 +1037,10 @@ TableColorizingRenderer renderer = new TableColorizingRenderer(); sm.addSettingsListener(renderer); sm.configure(renderer); + renderer.setColorFilter(colorFilter); - colorFilter.addFilterChangedListener(renderer); - displayFilter.addFilterChangedListener(renderer); + colorFilter.addFilterChangedListener(tableModel); table.setDefaultRenderer(Object.class, renderer); @@ -1069,8 +1071,19 @@ thisItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { + Vector lastSelected = tableModel.getRow(table.getSelectedRow()); colorDisplaySelector.applyColorUpdateForColumn(colName); colorDisplaySelector.applyColorFilters(colName); + + if (lastSelected != null) { + int newIndex = tableModel.getRowIndex(lastSelected); + + if (newIndex > -1) { + table.scrollToRow( + newIndex, + table.columnAtPoint(table.getVisibleRect().getLocation())); + } + } } }); bg.add(thisItem); @@ -1088,8 +1101,19 @@ thisItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { + Vector lastSelected = tableModel.getRow(table.getSelectedRow()); colorDisplaySelector.applyDisplayUpdateForColumn(colName); colorDisplaySelector.applyDisplayFilters(colName); + + if (lastSelected != null) { + int newIndex = tableModel.getRowIndex(lastSelected); + + if (newIndex > -1) { + table.scrollToRow( + newIndex, + table.columnAtPoint(table.getVisibleRect().getLocation())); + } + } } }); bg2.add(thisItem); @@ -1177,8 +1201,7 @@ displayFilter.setCustomFilter( new DisplayFilterEntry( (String) customFilterList.getSelectedItem(), - filterText.getText(), ChainsawConstants.GLOBAL_MATCH, - Boolean.TRUE)); + filterText.getText(), ChainsawConstants.GLOBAL_MATCH)); } } }); @@ -1199,7 +1222,7 @@ displayFilter.setCustomFilter( new DisplayFilterEntry( (String) customFilterList.getSelectedItem(), - filterText.getText(), "*", Boolean.TRUE)); + filterText.getText(), ChainsawConstants.GLOBAL_MATCH)); } } }); @@ -1211,14 +1234,23 @@ override.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { + Vector lastSelected = tableModel.getRow(table.getSelectedRow()); displayFilter.setCustomFilterOverride(override.isSelected()); + + if (lastSelected != null) { + int newIndex = tableModel.getRowIndex(lastSelected); + + if (newIndex > -1) { + table.scrollToRow( + newIndex, + table.columnAtPoint(table.getVisibleRect().getLocation())); + } + } } }); - // override.setPreferredSize(new Dimension(80,16)); - // override.setFont(new Font("Dialog", Font.BOLD, 10)); - // override.setMargin(new Insets(2,2,2,2)); - override.setToolTipText("Override"); + override.setToolTipText( + "<html>Unchecked: Apply custom filter to displayed rows<br>Checked: Apply custom filter to ALL rows (override display filter setting)</html>"); JPanel upperRightPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0)); @@ -1610,6 +1642,7 @@ detailPaneUpdater.setSelectedRow(-1); detail.notify(); } + statusBar.setNothingSelected(); } 1.6 +21 -80 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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- EventContainer.java 7 Jun 2003 04:30:27 -0000 1.5 +++ EventContainer.java 14 Jun 2003 21:30:44 -0000 1.6 @@ -49,10 +49,8 @@ package org.apache.log4j.chainsaw; -import java.util.Collection; import java.util.Vector; - /** * To allow pluggable TableModel implementations for Chainsaw, this interface has been factored out. * @@ -62,30 +60,17 @@ * */ public interface EventContainer extends SortTableModel, FilterChangedListener { - /** * Adds an EventCountListener, to be notified when the # of events changes * @param listener */ - public void addEventCountListener(EventCountListener listener); - - /** - * Adds a row to the model - * @param row - */ - public void addRow(Vector row); - - /** - * Clears the events that are currently being displayed - * - */ - public void clearFilteredEvents(); + void addEventCountListener(EventCountListener listener); /** * Clears the model completely * */ - public void clearModel(); + void clearModel(); /** * Locates a row number, starting from startRow, containing the text @@ -94,97 +79,53 @@ * @param text * @return */ - public int find(int startRow, String text); + int find(int startRow, String text); /** - * returns every single event in the model + * Returns every event in the model * @return */ - public Vector getAllEvents(); - -// /** -// * Returns all the Events that have matched the Filter -// * @deprecated -// * @return -// */ -// public Vector getDisplayableEvents(); - - /** - * Returns the currently in use DisplayFilter - */ - public DisplayFilter getDisplayFilter(); + Vector getAllEvents(); -// /** -// * returns the LoggingEvent with a specific ID -// * @param ID -// * @return -// */ -// public LoggingEvent getEvent(Integer ID); - - public Vector getRow(int row); - - /** - * Returns a map of Unfiltered events - */ - public Collection getUnfilteredEvents(); /** - * Return the number of unfiltered rows in the model (so, # of ALL rows) + * Returns the vector representing the row * @return */ - public int getUnfilteredRowCount(); + Vector getRow(int row); /** - * Adds a row to the model, and returns true if the new row in question - * is accepted by the display Filter. + * Adds a row to the model * @param row * @param valueIsAdjusting - * @return - */ - public boolean isAddRow(Vector row, boolean valueIsAdjusting); - - /** - * Returns true if Sorting is active/enabled - * @return + * @return flag representing whether or not the row is being displayed (not filtered) */ - public boolean isSortEnabled(); + boolean isAddRow(Vector row, boolean valueIsAdjusting); /** - * Can be explicitly called to nudge all EventCountListeners + * Allow a forced notification of the EventCountListeners * */ - public void notifyCountListeners(); - - /** - * Confitures the column index to sort on, and whether it's - * ascending or descending - * @param col - * @param ascending - */ - public void setCurrentSortColumn(int col, boolean ascending); + void notifyCountListeners(); /** * Sets the DisplayFilter in operation * @param displayFilter */ - public void setDisplayFilter(DisplayFilter displayFilter); + void setDisplayFilter(DisplayFilter displayFilter); /** - * Sets whether sorting is active/enabled - * @param b + * Returns the index of the row + * @param row */ - public void setSortEnabled(boolean b); + int getRowIndex(Vector v); - public int getRowIndex(Vector v); - /** * Causes the EventContainer to sort according to it's configured attributes - * */ - public void sort(); + void sort(); - public String getDetailText(int selectedRow); - - public void fireTableDataChanged(); - - public void addFilteredRow(Vector row); + /** + * Return the detail text - uses the selected columns defined in the display filter + */ + String getDetailText(int selectedRow); } 1.15 +111 -89 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.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- ChainsawCyclicBufferTableModel.java 14 Jun 2003 16:48:14 -0000 1.14 +++ ChainsawCyclicBufferTableModel.java 14 Jun 2003 21:30:44 -0000 1.15 @@ -52,7 +52,6 @@ import org.apache.log4j.helpers.LogLog; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -65,12 +64,12 @@ /** - * A CyclicBuffer implementation of the EventContainer. - * + * A CyclicBuffer implementation of the EventContainer. + * * NOTE: This implementation prevents duplicate rows from being added to the model. - * + * * Ignoring duplicates was added to support receivers which may attempt to deliver the same - * event more than once but can be safely ignored (for example, the database receiver + * event more than once but can be safely ignored (for example, the database receiver * when set to retrieve in a loop). * * @author Paul Smith <[EMAIL PROTECTED]> @@ -85,8 +84,9 @@ private boolean currentSortAscending; private int currentSortColumn; private DisplayFilter displayFilter; - private final FilterChangeExecutor filterExecutor; - private boolean sortEnabled; + private final FilterChangeExecutor filterExecutor = + new FilterChangeExecutor(); + private boolean sortEnabled = false; protected final Object syncLock = new Object(); //because we may be using a cyclic buffer, if an ID is not provided in the property, @@ -94,7 +94,6 @@ int uniqueRow; public ChainsawCyclicBufferTableModel(boolean isCyclic, int bufferSize) { - filterExecutor = new FilterChangeExecutor(this, syncLock); if (isCyclic) { unfilteredList = new CyclicBufferList(bufferSize); filteredList = new CyclicBufferList(bufferSize); @@ -112,54 +111,31 @@ SwingUtilities.invokeLater(filterExecutor); } - protected boolean getCurrentSortAscending() { - return currentSortAscending; - } - - protected int getCurrentSortColumn() { - return currentSortColumn; - } - - public DisplayFilter getDisplayFilter() { - return displayFilter; - } - public boolean isSortable(int col) { return true; } - public boolean isSortEnabled() { - return sortEnabled; - } - public void notifyCountListeners() { for (int i = 0; i < countListeners.size(); i++) { ((EventCountListener) countListeners.get(i)).eventCountChanged( - getRowCount(), getUnfilteredRowCount()); + filteredList.size(), unfilteredList.size()); } } - public void setCurrentSortColumn(int col, boolean ascending) { - currentSortColumn = col; - currentSortAscending = ascending; - } - public void setDisplayFilter(DisplayFilter displayFilter) { this.displayFilter = displayFilter; } - public void setSortEnabled(boolean sortEnabled) { - this.sortEnabled = sortEnabled; - } - /* (non-Javadoc) * @see org.apache.log4j.chainsaw.EventContainer#sort() */ public void sort() { - synchronized (syncLock) { - Collections.sort( - getSortableCollection(), - new ColumnComparator(currentSortColumn, currentSortAscending)); + if (sortEnabled) { + synchronized (syncLock) { + Collections.sort( + filteredList, + new ColumnComparator(currentSortColumn, currentSortAscending)); + } } } @@ -168,8 +144,7 @@ System.out.println( "request to sort col=" + col + ", which is " + ChainsawColumns.getColumnsNames().get(col)); - SwingUtilities.invokeLater( - new SortExecutor(this, this, table, col, row, ascending)); + SwingUtilities.invokeLater(new SortExecutor(table, col, row, ascending)); } /** @@ -220,29 +195,6 @@ } /* (non-Javadoc) - * @see org.apache.log4j.chainsaw.EventContainer#addFilteredRow(java.util.Vector) - */ - public void addFilteredRow(Vector row) { - synchronized (syncLock) { - filteredList.add(row); - } - } - - public void addRow(Vector row) { - synchronized (syncLock) { - unfilteredList.add(row); - } - } - - public void clearFilteredEvents() { - synchronized (syncLock) { - filteredList.clear(); - } - - fireTableDataChanged(); - } - - /* (non-Javadoc) * @see org.apache.log4j.chainsaw.EventContainer#clear() */ public void clearModel() { @@ -251,6 +203,7 @@ filteredList.clear(); uniqueRow = 0; } + fireTableDataChanged(); notifyCountListeners(); } @@ -337,7 +290,7 @@ return ""; } - ListIterator iter = getDisplayFilter().getDetailColumns().listIterator(); + ListIterator iter = displayFilter.getDetailColumns().listIterator(); String column = null; int index = -1; @@ -373,20 +326,8 @@ } } - protected List getSortableCollection() { - return filteredList; - } - - public Collection getUnfilteredEvents() { - return unfilteredList; - } - - public int getUnfilteredRowCount() { - return unfilteredList.size(); - } - public Object getValueAt(int rowIndex, int columnIndex) { - Vector row = getRow(rowIndex); + Vector row = (Vector) filteredList.get(rowIndex); if (row == null) { LogLog.error("Invalid rowindex=" + rowIndex); @@ -400,7 +341,6 @@ boolean rowAdded = false; synchronized (syncLock) { - //set the last field to the 'unfilteredevents size + 1 - an ID based on reception order int propertiesIndex = ChainsawColumns.getColumnsNames().indexOf( @@ -439,16 +379,15 @@ row.add(thisInt); - //prevent duplicate rows - if(unfilteredList.contains(row)) { - return false; - } - - addRow(row); - - if ( - (getDisplayFilter() == null) || (getDisplayFilter().isDisplayed(row))) { - addFilteredRow(row); + //prevent duplicate rows + if (unfilteredList.contains(row)) { + return false; + } + + unfilteredList.add(row); + + if ((displayFilter == null) || (displayFilter.isDisplayed(row))) { + filteredList.add(row); rowAdded = true; } @@ -457,7 +396,90 @@ if (!valueIsAdjusting) { notifyCountListeners(); } - fireTableRowsInserted(getRowIndex(row), getRowIndex(row)); + + int newRow = filteredList.indexOf(row); + + fireTableRowsInserted(newRow, newRow); + return rowAdded; + } + + class SortExecutor implements Runnable { + private JSortTable table; + private int col; + private int currentRow; + private boolean ascending; + + /** + * Re-apply current sort column in the same order, and re-select the row. + */ + public SortExecutor( + JSortTable table, int col, int currentRow, boolean ascending) { + this.table = table; + this.col = col; + this.currentRow = currentRow; + this.ascending = ascending; + } + + public void run() { + synchronized (syncLock) { + Vector v = null; + + if ((currentRow > -1) && (currentRow < filteredList.size())) { + v = (Vector) filteredList.get(currentRow); + } + + sortEnabled = true; + currentSortColumn = col; + currentSortAscending = ascending; + + if (col > -1) { + sort(); + } + + if (v == null) { + table.scrollToRow( + -1, table.columnAtPoint(table.getVisibleRect().getLocation())); + } else { + table.scrollToRow( + filteredList.indexOf(v), + table.columnAtPoint(table.getVisibleRect().getLocation())); + } + } + } + } + + class FilterChangeExecutor implements Runnable { + /** + * Update filtered rows. + */ + FilterChangeExecutor() { + } + + public void run() { + synchronized (syncLock) { + filteredList.clear(); + + Vector v2 = null; + Iterator iter = unfilteredList.iterator(); + + while (iter.hasNext()) { + v2 = (Vector) iter.next(); + + if (displayFilter != null) { + if (displayFilter.isDisplayed(v2)) { + filteredList.add(v2); + } + } + } + + if (sortEnabled) { + sort(); + } + } + + fireTableDataChanged(); + notifyCountListeners(); + } } } 1.7 +39 -92 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.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DisplayFilter.java 3 Jun 2003 06:32:57 -0000 1.6 +++ DisplayFilter.java 14 Jun 2003 21:30:44 -0000 1.7 @@ -49,6 +49,8 @@ package org.apache.log4j.chainsaw; +import org.apache.log4j.chainsaw.prefs.SettingsManager; + import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; @@ -66,8 +68,6 @@ import java.util.List; import java.util.Vector; -import org.apache.log4j.chainsaw.prefs.SettingsManager; - /** * If there are no filters defined, null is returned for color (the table background should then be used). @@ -85,40 +85,40 @@ private transient DisplayFilterEntry customFilter; private transient boolean customFilterOverride = false; private List colNames = ChainsawColumns.getColumnsNames(); - private Vector toolTipColumns; + private Vector toolTipDetailColumns; private Boolean toolTipsEnabled = Boolean.FALSE; private String ident; public DisplayFilter(String ident) { - this.ident = ident; - toolTipColumns = new Vector(colNames); + this.ident = ident; + toolTipDetailColumns = new Vector(colNames); } public void save() { - ObjectOutputStream o2 = null; + ObjectOutputStream o2 = null; - try { - o2 = - new ObjectOutputStream( - new BufferedOutputStream( - new FileOutputStream( - new File( - SettingsManager.getInstance().getSettingsDirectory() - + File.separator + ident - + ChainsawConstants.SETTINGS_EXTENSION)))); - o2.writeObject(this); - o2.flush(); - } catch (FileNotFoundException fnfe) { - } catch (IOException ioe) { - ioe.printStackTrace(); - } - - try { - if (o2 != null) { - o2.close(); - } - } catch (IOException ioe) { + try { + o2 = + new ObjectOutputStream( + new BufferedOutputStream( + new FileOutputStream( + new File( + SettingsManager.getInstance().getSettingsDirectory() + + File.separator + ident + + ChainsawConstants.SETTINGS_EXTENSION)))); + o2.writeObject(this); + o2.flush(); + } catch (FileNotFoundException fnfe) { + } catch (IOException ioe) { + ioe.printStackTrace(); + } + + try { + if (o2 != null) { + o2.close(); } + } catch (IOException ioe) { + } } public void setCustomFilterOverride(boolean customFilterOverride) { @@ -139,8 +139,9 @@ customFilter.matches( customFilter.getColumnName(), formatField(v.get(colNames.indexOf(customFilter.getColumnName()))) - .toString(), (String) v.get(colNames.indexOf(ChainsawConstants.LEVEL_COL_NAME)))) { - passesCustomFilter = customFilter.getDisplay().booleanValue(); + .toString(), + (String) v.get(colNames.indexOf(ChainsawConstants.LEVEL_COL_NAME)))) { + passesCustomFilter = true; } else { passesCustomFilter = false; } @@ -157,12 +158,14 @@ while (iter.hasNext()) { DisplayFilterEntry entry = (DisplayFilterEntry) iter.next(); + if ( entry.matches( entry.getColumnName(), (String) v.get(colNames.indexOf(entry.getColumnName())), - (String) v.get(colNames.indexOf(ChainsawConstants.LEVEL_COL_NAME)))) { - return passesCustomFilter && entry.getDisplay().booleanValue(); + (String) v.get( + colNames.indexOf(ChainsawConstants.LEVEL_COL_NAME)))) { + return passesCustomFilter; } } @@ -171,7 +174,7 @@ } public void setDetailColumns(Vector v) { - toolTipColumns = v; + toolTipDetailColumns = v; notifyListeners(); } @@ -184,21 +187,7 @@ } public Vector getDetailColumns() { - return toolTipColumns; - - //was previously filtering out detail columns for only displayed columns - - /* - Vector displayedToolTips = new Vector(); - ListIterator iter = toolTipColumns.listIterator(); - while (iter.hasNext()) { - String colName = (String) iter.next(); - if (displayedColumns.contains(colName)) { - displayedToolTips.add(colName); - } - } - return displayedToolTips; - */ + return toolTipDetailColumns; } public void addFilterChangedListener(FilterChangedListener listener) { @@ -223,48 +212,6 @@ } } - public synchronized void addFilter(DisplayFilterEntry entry) { - Iterator iter = filters.iterator(); - DisplayFilterEntry removable = null; - - while (iter.hasNext()) { - DisplayFilterEntry entry2 = (DisplayFilterEntry) iter.next(); - - if ( - (entry2.getColumnName().equals(entry.getColumnName())) - && (entry.getColumnValue().equals(entry2.getColumnValue()))) { - removable = entry; - } - } - - if (removable != null) { - filters.remove(removable); - } - - if (!filters.contains(entry)) { - filters.add(entry); - } - - notifyListeners(); - } - - public synchronized void clear(String column) { - Iterator iter = filters.iterator(); - Vector removable = new Vector(); - - while (iter.hasNext()) { - DisplayFilterEntry entry = (DisplayFilterEntry) iter.next(); - - if (entry.getColumnName().equals(column)) { - removable.add(entry); - } - } - - filters.removeAll(removable); - - notifyListeners(); - } - public synchronized void clear() { filters.clear(); notifyListeners(); @@ -318,9 +265,9 @@ private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { ident = (String) in.readObject(); - toolTipColumns = (Vector) in.readObject(); + toolTipDetailColumns = (Vector) in.readObject(); toolTipsEnabled = (Boolean) in.readObject(); - colNames = ChainsawColumns.getColumnsNames(); + colNames = ChainsawColumns.getColumnsNames(); filterListeners = new Vector(); filters = new Vector(); customFilterOverride = false; @@ -329,7 +276,7 @@ private void writeObject(java.io.ObjectOutputStream out) throws IOException { out.writeObject(ident); - out.writeObject(toolTipColumns); + out.writeObject(toolTipDetailColumns); out.writeObject(toolTipsEnabled); } } 1.6 +8 -8 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ColorDisplaySelector.java Index: ColorDisplaySelector.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ColorDisplaySelector.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ColorDisplaySelector.java 10 Jun 2003 19:38:19 -0000 1.5 +++ ColorDisplaySelector.java 14 Jun 2003 21:30:44 -0000 1.6 @@ -371,7 +371,7 @@ ; addDisplayFilter( new DisplayFilterEntry( - selectedColumn, selectedValue, level, Boolean.TRUE)); + selectedColumn, selectedValue, level)); } } else { if ((selectedValue != null) && (selectedColumn != null)) { @@ -381,7 +381,7 @@ ; removeDisplayFilter( new DisplayFilterEntry( - selectedColumn, selectedValue, level, Boolean.TRUE)); + selectedColumn, selectedValue, level)); } } @@ -420,11 +420,11 @@ if (box.isSelected()) { addDisplayFilter( new DisplayFilterEntry( - selectedColumn, level, level, Boolean.TRUE)); + selectedColumn, level, level)); } else { removeDisplayFilter( new DisplayFilterEntry( - selectedColumn, level, level, Boolean.TRUE)); + selectedColumn, level, level)); } } else { if (box.isSelected()) { @@ -879,7 +879,7 @@ String thisValue = (String) iter.next(); DisplayFilterEntry entry = new DisplayFilterEntry( - selectedColumn, thisValue, level, Boolean.TRUE); + selectedColumn, thisValue, level); if (!v.contains(entry)) { addDisplayFilter(entry); @@ -898,7 +898,7 @@ String thisValue = (String) iter.next(); DisplayFilterEntry entry = new DisplayFilterEntry( - selectedColumn, thisValue, level, Boolean.TRUE); + selectedColumn, thisValue, level); if (v.contains(entry)) { removeDisplayFilter(entry); @@ -952,7 +952,7 @@ DisplayFilterEntry entry = (DisplayFilterEntry) iter.next(); if (entry.matches(selectedColumn, selectedValue, level)) { - selectedFlag = entry.getDisplay().booleanValue(); + selectedFlag = true; } } } @@ -994,7 +994,7 @@ if (selectedColumn.equalsIgnoreCase(LEVEL_COL_NAME)) { DisplayFilterEntry entry = new DisplayFilterEntry( - selectedColumn, currentLevel, currentLevel, Boolean.TRUE); + selectedColumn, currentLevel, currentLevel); if (((Vector) columnDisplayMap.get(selectedColumn)).contains(entry)) { selected = true; 1.3 +1 -17 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ColorFilter.java Index: ColorFilter.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ColorFilter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ColorFilter.java 26 May 2003 04:42:39 -0000 1.2 +++ ColorFilter.java 14 Jun 2003 21:30:44 -0000 1.3 @@ -171,22 +171,6 @@ return color; } - //go through all of the filters..if a filter matches for the column and expression, return color - public synchronized Color getColor(String column, String expression) { - Color color = null; - Iterator iter = filters.iterator(); - - while (iter.hasNext()) { - FilterEntry entry = (FilterEntry) iter.next(); - - if (entry.matches(column, expression)) { - return entry.getColor(); - } - } - - return color; - } - class FilterEntry { private final String columnName; private final String regExp; @@ -260,4 +244,4 @@ + color; } } -} +} \ No newline at end of file 1.10 +9 -2 jakarta-log4j-sandbox/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/build.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- build.xml 11 Jun 2003 05:57:50 -0000 1.9 +++ build.xml 14 Jun 2003 21:30:45 -0000 1.10 @@ -266,9 +266,16 @@ <javadoc sourcepath="${java.source.dir}" destdir="${javadoc.dest}" - packagenames="org.apache.log4j.filter, + packagenames="org.apache.log4j, + org.apache.log4j.chainsaw, + org.apache.log4j.filter, + org.apache.log4j.helpers, + org.apache.log4j.jdbc, + org.apache.log4j.net, + org.apache.log4j.plugins, org.apache.log4j.selector, - org.apache.log4j.servlet" + org.apache.log4j.servlet, + org.apache.log4j.xml" version="true" protected="true" author="true"
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]