sdeboy 2003/06/08 09:20:49 Modified: src/java/org/apache/log4j/chainsaw TableColorizingRenderer.java LogUI.java ChainsawCyclicBufferTableModel.java AbstractChainsawTableModel.java Log: Corrected tablemodel event firing (was previously de-selecting the last selected row when new rows were added and scroll to bottom was disabled) Jalopyized Revision Changes Path 1.12 +27 -17 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.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- TableColorizingRenderer.java 4 Jun 2003 05:02:34 -0000 1.11 +++ TableColorizingRenderer.java 8 Jun 2003 16:20:46 -0000 1.12 @@ -49,10 +49,18 @@ package org.apache.log4j.chainsaw; +import org.apache.log4j.chainsaw.icons.ChainsawIcons; +import org.apache.log4j.chainsaw.prefs.LoadSettingsEvent; +import org.apache.log4j.chainsaw.prefs.SaveSettingsEvent; +import org.apache.log4j.chainsaw.prefs.SettingsListener; +import org.apache.log4j.helpers.ISO8601DateFormat; + import java.awt.Color; import java.awt.Component; import java.awt.Image; + import java.text.DateFormat; + import java.util.Calendar; import java.util.Date; import java.util.HashMap; @@ -68,12 +76,6 @@ import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableModel; -import org.apache.log4j.chainsaw.icons.ChainsawIcons; -import org.apache.log4j.chainsaw.prefs.LoadSettingsEvent; -import org.apache.log4j.chainsaw.prefs.SaveSettingsEvent; -import org.apache.log4j.chainsaw.prefs.SettingsListener; -import org.apache.log4j.helpers.ISO8601DateFormat; - /** * A specific TableCellRenderer that colourizes a particular cell based on @@ -81,7 +83,8 @@ * * @author Claude Duguay */ -public class TableColorizingRenderer extends DefaultTableCellRenderer implements SettingsListener, FilterChangedListener { +public class TableColorizingRenderer extends DefaultTableCellRenderer + implements SettingsListener, FilterChangedListener { private static final DateFormat DATE_FORMATTER = new ISO8601DateFormat(Calendar.getInstance().getTimeZone()); private Map iconMap = new HashMap(); @@ -107,8 +110,9 @@ levelComponent.setHorizontalAlignment(JLabel.CENTER); // Image warningImage = ((IconUIResource)UIManager.getIcon("OptionPane.warningIcon")).getImage().getScaledInstance(16,16, Image.SCALE_FAST); - String[] iconFileNames = new String[] { "Warn.gif", "Inform.gif", "Error.gif"}; - String[] iconLabels = new String[] { "WARN", "INFO", "ERROR"}; + String[] iconFileNames = + new String[] { "Warn.gif", "Inform.gif", "Error.gif" }; + String[] iconLabels = new String[] { "WARN", "INFO", "ERROR" }; for (int i = 0; i < iconLabels.length; i++) { final ImageIcon icon = @@ -124,7 +128,7 @@ newWidth, newHeight, Image.SCALE_SMOOTH); iconMap.put(iconLabels[i], new ImageIcon(iconImage)); } - + /** * finally, add the debug icon... */ @@ -143,10 +147,11 @@ } public void loadSettings(LoadSettingsEvent event) { - levelDisplay = event.getSetting(ChainsawConstants.LEVEL_DISPLAY); + levelDisplay = event.getSetting(ChainsawConstants.LEVEL_DISPLAY); + } + + public void saveSettings(SaveSettingsEvent event) { } - - public void saveSettings(SaveSettingsEvent event) {} /** *TODO @@ -181,7 +186,7 @@ value = formatField(value); Color color = null; - + Component c = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, col); @@ -200,14 +205,18 @@ Icon icon = (Icon) iconMap.get(value.toString()); - if ((levelDisplay != null && levelDisplay.equals(ChainsawConstants.LEVEL_DISPLAY_ICONS)) && icon != null) { + if ( + ((levelDisplay != null) + && levelDisplay.equals(ChainsawConstants.LEVEL_DISPLAY_ICONS)) + && (icon != null)) { levelComponent.setIcon(icon); levelComponent.setText(""); - levelComponent.setToolTipText(value.toString()); + levelComponent.setToolTipText(value.toString()); } else { levelComponent.setIcon(null); levelComponent.setText(value.toString()); } + levelComponent.setBackground(c.getBackground()); levelComponent.setForeground(c.getForeground()); c = levelComponent; @@ -217,8 +226,9 @@ default: break; } + if (isSelected) { - return c; + return c; } this.table = table; 1.89 +32 -23 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.88 retrieving revision 1.89 diff -u -r1.88 -r1.89 --- LogUI.java 8 Jun 2003 07:41:55 -0000 1.88 +++ LogUI.java 8 Jun 2003 16:20:47 -0000 1.89 @@ -151,27 +151,28 @@ * that is used to display a Welcome panel, and any other panels that * are generated because Logging Events are streamed via a Receiver, or other * mechanism. - * + * * If a system property 'chainsaw.usecyclicbuffer' is set to 'true', each panel will use a cyclic * buffer for displaying events and once events reach the buffer limit, the oldest events * are removed from the table. - * + * * If the property is not provided, there is no limit on the table's buffer size. - * - * If 'chainsaw.usecyclicbuffer' is set to 'true' and a system + * + * If 'chainsaw.usecyclicbuffer' is set to 'true' and a system * property 'chainsaw.cyclicbuffersize' is set to some integer value, that value will - * be used as the buffer size - if the buffersize is not provided, a default + * be used as the buffer size - if the buffersize is not provided, a default * size of 500 is used. - * + * * * @author Scott Deboy <[EMAIL PROTECTED]> * @author Paul Smith <[EMAIL PROTECTED]> * */ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener { - - private static final String USE_CYCLIC_BUFFER_PROP_NAME = "chainsaw.usecyclicbuffer"; - private static final String CYCLIC_BUFFER_SIZE_PROP_NAME = "chainsaw.cyclicbuffersize"; + private static final String USE_CYCLIC_BUFFER_PROP_NAME = + "chainsaw.usecyclicbuffer"; + private static final String CYCLIC_BUFFER_SIZE_PROP_NAME = + "chainsaw.cyclicbuffersize"; private static final String MAIN_WINDOW_HEIGHT = "main.window.height"; private static final String MAIN_WINDOW_WIDTH = "main.window.width"; private static final String MAIN_WINDOW_Y = "main.window.y"; @@ -796,12 +797,19 @@ final String eventType = ((ChainsawEventBatch.Entry) eventBatchEntrys.get(0)).getEventType(); - int bufferSize = 500; - //if buffer size not provided, set default buffer size to 500 (only used if usecyclicbuffer true) - if (System.getProperty(CYCLIC_BUFFER_SIZE_PROP_NAME) != null) { - bufferSize = Integer.valueOf(System.getProperty(CYCLIC_BUFFER_SIZE_PROP_NAME)).intValue(); - } - tableModel = new ChainsawCyclicBufferTableModel(Boolean.valueOf(System.getProperty(USE_CYCLIC_BUFFER_PROP_NAME)).booleanValue(), bufferSize); + int bufferSize = 500; + + //if buffer size not provided, set default buffer size to 500 (only used if usecyclicbuffer true) + if (System.getProperty(CYCLIC_BUFFER_SIZE_PROP_NAME) != null) { + bufferSize = + Integer.valueOf(System.getProperty(CYCLIC_BUFFER_SIZE_PROP_NAME)) + .intValue(); + } + + tableModel = + new ChainsawCyclicBufferTableModel( + Boolean.valueOf(System.getProperty(USE_CYCLIC_BUFFER_PROP_NAME)) + .booleanValue(), bufferSize); map = new HashMap(); table = new JSortTable(tableModel); @@ -1278,7 +1286,9 @@ table.getSelectionModel().addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent evt) { - if ((evt.getFirstIndex() == evt.getLastIndex()) || (evt.getValueIsAdjusting())) { + if ( + (evt.getFirstIndex() == evt.getLastIndex()) + || (evt.getValueIsAdjusting())) { return; } @@ -1595,18 +1605,16 @@ * Find from the top * @param text */ - - void findFromTop(String text) { - find(0, text); - } - + void findFromTop(String text) { + find(0, text); + } /** * Finds the row with the specified text, and ensures it is made visible * @param text */ void find(String text) { - find(table.getSelectedRow(), text); + find(table.getSelectedRow(), text); } /** @@ -1614,7 +1622,7 @@ * @param text */ void findNext(String text) { - find(table.getSelectedRow() + 1, text); + find(table.getSelectedRow() + 1, text); } /** @@ -1633,6 +1641,7 @@ table.scrollToRow( newRow, table.columnAtPoint(table.getVisibleRect().getLocation())); } + /** * Docks this DockablePanel by hiding the JFrame and placing the * Panel back inside the LogUI window. 1.10 +1 -1 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.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ChainsawCyclicBufferTableModel.java 8 Jun 2003 07:15:57 -0000 1.9 +++ ChainsawCyclicBufferTableModel.java 8 Jun 2003 16:20:48 -0000 1.10 @@ -320,7 +320,7 @@ if (!valueIsAdjusting) { notifyCountListeners(); } - + fireTableRowsInserted(filteredList.size() -1 , filteredList.size()); return rowAdded; } } 1.6 +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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- AbstractChainsawTableModel.java 8 Jun 2003 04:58:00 -0000 1.5 +++ AbstractChainsawTableModel.java 8 Jun 2003 16:20:48 -0000 1.6 @@ -113,10 +113,6 @@ ((EventCountListener) countListeners.get(i)).eventCountChanged( getRowCount(), getUnfilteredRowCount()); } - - TableModelEvent event = new TableModelEvent(this); - - fireTableChanged(event); } public void setCurrentSortColumn(int col, boolean ascending) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]