cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw ThrowableRenderPanel.java
psmith 2003/09/11 02:44:05 Modified:src/java/org/apache/log4j/chainsaw ThrowableRenderPanel.java Log: Under Windows, the "..." button that exposes the Throwable detial viewer isn't as obvious. Changed so that the button has a distinguishing background. Revision ChangesPath 1.3 +6 -2 jakarta-log4j/src/java/org/apache/log4j/chainsaw/ThrowableRenderPanel.java Index: ThrowableRenderPanel.java === RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ThrowableRenderPanel.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ThrowableRenderPanel.java 11 Sep 2003 04:59:24 - 1.2 +++ ThrowableRenderPanel.java 11 Sep 2003 09:44:05 - 1.3 @@ -94,7 +94,7 @@ panel.add(lbl, BorderLayout.CENTER); panel.add(btn, BorderLayout.EAST); lbl.setOpaque(false); -btn.setOpaque(false); +//btn.setOpaque(false); showStackTraceAction = new AbstractAction("...") { public void actionPerformed(ActionEvent e) { @@ -119,7 +119,11 @@ */ public Component getTableCellEditorComponent( JTable table, Object value, boolean isSelected, int row, int column) { -lbl.setText(((String[]) value)[0]); +if(value!=null){ + lbl.setText(((String[]) value)[0]); +}else { + lbl.setText(""); +} if (isSelected) { panel.setBackground(table.getSelectionBackground()); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw ThrowableRenderPanel.java LogPanel.java
psmith 2003/09/10 21:59:24 Modified:src/java/org/apache/log4j/chainsaw ThrowableRenderPanel.java LogPanel.java Log: Can now view the full Stack trace in a pop up dialog. Revision ChangesPath 1.2 +7 -8 jakarta-log4j/src/java/org/apache/log4j/chainsaw/ThrowableRenderPanel.java Index: ThrowableRenderPanel.java === RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ThrowableRenderPanel.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ThrowableRenderPanel.java 11 Sep 2003 03:35:05 - 1.1 +++ ThrowableRenderPanel.java 11 Sep 2003 04:59:24 - 1.2 @@ -61,6 +61,7 @@ import java.awt.Color; import java.awt.Component; import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import javax.swing.AbstractAction; import javax.swing.AbstractCellEditor; @@ -97,7 +98,6 @@ showStackTraceAction = new AbstractAction("...") { public void actionPerformed(ActionEvent e) { -displaySelectedEntry(); } }; this.table = table; @@ -106,13 +106,10 @@ btn.setAction(showStackTraceAction); } - private void displaySelectedEntry() { -Object object = - table.getModel().getValueAt( -table.getSelectedRow(), table.getSelectedColumn() - 1); -LogLog.debug("Would hae displayed " + object); - } - + void addActionListener(ActionListener l){ + btn.addActionListener(l); + } + private void setText(String text) { lbl.setText(text); } @@ -129,8 +126,10 @@ panel.setForeground(table.getSelectionForeground()); } else if ((row % 2) != 0) { panel.setBackground(COLOR_ODD); + panel.setForeground(table.getSelectionForeground()); } else { panel.setBackground(background); + panel.setForeground(table.getSelectionForeground()); } return panel; 1.5 +42 -2 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java Index: LogPanel.java === RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- LogPanel.java 11 Sep 2003 03:35:05 - 1.4 +++ LogPanel.java 11 Sep 2003 04:59:24 - 1.5 @@ -71,6 +71,7 @@ import org.apache.log4j.spi.LoggingEvent; import java.awt.BorderLayout; +import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; @@ -120,8 +121,10 @@ import javax.swing.Action; import javax.swing.BorderFactory; import javax.swing.Box; +import javax.swing.BoxLayout; import javax.swing.ButtonGroup; import javax.swing.ImageIcon; +import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JCheckBoxMenuItem; import javax.swing.JComboBox; @@ -138,6 +141,7 @@ import javax.swing.JSeparator; import javax.swing.JSplitPane; import javax.swing.JTable; +import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JToolBar; import javax.swing.KeyStroke; @@ -165,6 +169,8 @@ */ public class LogPanel extends DockablePanel implements SettingsListener, EventBatchListener { + private ThrowableRenderPanel throwableRenderPanel ; + private boolean paused = false; private boolean logTreePanelVisible = true; private final FilterModel filterModel = new FilterModel(); @@ -181,6 +187,7 @@ final Action dockingAction; final JSortTable table; private String profileName = null; + private final JDialog detailDialog = new JDialog((JFrame)null, true); final JPanel detailPanel = new JPanel(new BorderLayout()); private final TableColorizingRenderer renderer = new TableColorizingRenderer(); @@ -234,6 +241,8 @@ table.setAutoCreateColumnsFromModel(false); + throwableRenderPanel = new ThrowableRenderPanel(table); + /** * We listen for new Key's coming in so we can get them automatically added as columns */ @@ -982,6 +991,39 @@ undockedToolbar = createDockwindowToolbar(); externalPanel.add(undockedToolbar, BorderLayout.NORTH); undockedFrame.pack(); + +Container container = detailDialog.getContentPane(); +final JTextArea detailArea = new JTextArea(10,40); +detailArea.setEditable(false); +container.setLayout(new BoxLayout(container, BoxLayout.Y_AXIS)); +container.add(new JScrollPane(detailArea)); +throwableRenderPanel.addActionListener(new ActionListener(){ + + public void actionPerformed(ActionEvent e) { +
cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw ThrowableRenderPanel.java LogPanel.java ChainsawCyclicBufferTableModel.java TableColorizingRenderer.java
psmith 2003/09/10 20:35:05 Modified:src/java/org/apache/log4j/chainsaw LogPanel.java ChainsawCyclicBufferTableModel.java TableColorizingRenderer.java Added: src/java/org/apache/log4j/chainsaw ThrowableRenderPanel.java Log: Modifications so that the Throwable Column can be "edited", and by that I mean that selected a Throwable cell entry displays a non-editable label, with an associated "..." button that can be clicked. This mechanism will be used to display a Popup containing the display of the full stack trace, in standard format. Eventually this class will be refactored somewhat to share functionality to be used for NDC, MDC, and Properties. Revision ChangesPath 1.4 +19 -1 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java Index: LogPanel.java === RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LogPanel.java 10 Sep 2003 23:03:07 - 1.3 +++ LogPanel.java 11 Sep 2003 03:35:05 - 1.4 @@ -151,6 +151,7 @@ import javax.swing.event.TableColumnModelEvent; import javax.swing.event.TableColumnModelListener; import javax.swing.table.AbstractTableModel; +import javax.swing.table.TableCellEditor; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; @@ -765,6 +766,9 @@ externalPanel.setLayout(new BorderLayout()); undockedFrame.getContentPane().add(externalPanel); +// TODO undocked toolbar is broken +// f.getContentPane().add( +//logUI.getToolBarAndMenus().createDockwindowToolbar(f, this), BorderLayout.NORTH); dockingAction = new AbstractAction("Undock") { public void actionPerformed(ActionEvent evt) { @@ -1696,13 +1700,27 @@ //sort column name class ChainsawTableColumnModelListener implements TableColumnModelListener { private JSortTable table; + private TableCellEditor throwableRenderPanel ; public ChainsawTableColumnModelListener(JSortTable table) { this.table = table; + throwableRenderPanel = new ThrowableRenderPanel(table); } public void columnAdded(TableColumnModelEvent e) { - LogLog.debug("Detected columnAdded" + e); +// LogLog.debug("Detected columnAdded" + e); + + TableColumnModel columnModel = (TableColumnModel) e.getSource(); + Enumeration enum = table.getColumnModel().getColumns(); + + while (enum.hasMoreElements()) { +TableColumn column = (TableColumn) enum.nextElement(); + +if ( + (column.getModelIndex() + 1) == ChainsawColumns.INDEX_THROWABLE_COL_NAME) { + column.setCellEditor(throwableRenderPanel); +} + } } public void columnRemoved(TableColumnModelEvent e) { 1.7 +11 -0 jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java Index: ChainsawCyclicBufferTableModel.java === RCS file: /home/cvs/jakarta-log4j/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 10 Sep 2003 23:03:07 - 1.6 +++ ChainsawCyclicBufferTableModel.java 11 Sep 2003 03:35:05 - 1.7 @@ -607,4 +607,15 @@ }); } } + /* (non-Javadoc) + * @see javax.swing.table.TableModel#isCellEditable(int, int) + */ + public boolean isCellEditable(int rowIndex, int columnIndex) { + switch(columnIndex+1){ + case ChainsawColumns.INDEX_THROWABLE_COL_NAME: + return true; + } + return super.isCellEditable(rowIndex, columnIndex); + } + } 1.4 +17 -2 jakarta-log4j/src/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java Index: TableColorizingRenderer.java === RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TableColorizingRenderer.java 5 Sep 2003 06:07:26 - 1.3 +++ TableColorizingRenderer.java 11 Sep 2003 03:35:05 - 1.4 @@ -49,17 +49,22 @@ package org.apache.log4j.chainsaw; +import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; +import java.awt.event.ActionEvent; import java.text.DateFormat; import java.util.Cale