Author: sdeboy
Date: Tue Jun 15 16:20:51 2010
New Revision: 954949
URL: http://svn.apache.org/viewvc?rev=954949&view=rev
Log:
replace jtextarea refs with editor, so we can apply the system font to entry fields
Updated throwable popup rendering to show message + stack trace, centering on screen
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java?rev=954949&r1=954948&r2=954949&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java Tue Jun 15 16:20:51 2010
@@ -42,13 +42,13 @@ import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
import javax.swing.JDialog;
+import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
-import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
@@ -1052,11 +1052,12 @@ class ChainsawToolBarAndMenus implements
panel.add(
new JLabel("Enter expression for new tab: "), BorderLayout.NORTH);
- final JTextArea textArea = new JTextArea(4, 75);
- JTextComponentFormatter.applySystemFontAndSize(textArea);
- textArea.addKeyListener(
- new ExpressionRuleContext(new FilterModel(), textArea));
- panel.add(textArea, BorderLayout.CENTER);
+ final JEditorPane entryField = new JEditorPane();
+ entryField.setPreferredSize(new Dimension(350, 75));
+ JTextComponentFormatter.applySystemFontAndSize(entryField);
+ entryField.addKeyListener(
+ new ExpressionRuleContext(new FilterModel(), entryField));
+ panel.add(entryField, BorderLayout.CENTER);
JButton ok = new JButton("OK");
JButton close = new JButton("Close");
@@ -1069,7 +1070,7 @@ class ChainsawToolBarAndMenus implements
ok.addActionListener(
new AbstractAction() {
public void actionPerformed(ActionEvent evt) {
- logui.createCustomExpressionLogPanel(textArea.getText());
+ logui.createCustomExpressionLogPanel(entryField.getText());
SwingUtilities.getAncestorOfClass(JDialog.class, panel).setVisible(
false);
}
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java?rev=954949&r1=954948&r2=954949&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java Tue Jun 15 16:20:51 2010
@@ -889,9 +889,11 @@ public class LogPanel extends DockablePa
final JDialog detailDialog = new JDialog((JFrame) null, true);
Container container = detailDialog.getContentPane();
- final JTextArea detailArea = new JTextArea(10, 40);
+ final JEditorPane detailArea = new JEditorPane();
JTextComponentFormatter.applySystemFontAndSize(detailArea);
detailArea.setEditable(false);
+ Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
+ detailArea.setPreferredSize(new Dimension(screenDimension.width / 2, screenDimension.height / 2));
container.setLayout(new BoxLayout(container, BoxLayout.Y_AXIS));
container.add(new JScrollPane(detailArea));
@@ -900,19 +902,16 @@ public class LogPanel extends DockablePa
throwableRenderPanel.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
- Object o = table.getValueAt(
- table.getSelectedRow(), table.getSelectedColumn());
- if (o == null) {
- //no row selected - ignore
- logger.debug("no row selected - unable to display throwable popup");
- return;
- }
+ ExtendedLoggingEvent event = tableModel.getRow(table.getSelectedRow());
detailDialog.setTitle(
table.getColumnName(table.getSelectedColumn()) + " detail...");
-
- if (o instanceof String[]) {
+ if (event == null) {
+ detailArea.setText("");
+ } else if (event.getThrowableStrRep() instanceof String[]) {
StringBuffer buf = new StringBuffer();
- String[] ti = (String[]) o;
+ buf.append(event.getMessage());
+ buf.append("\n");
+ String[] ti = (String[]) event.getThrowableStrRep();
buf.append(ti[0]).append("\n");
for (int i = 1; i < ti.length; i++) {
@@ -921,13 +920,13 @@ public class LogPanel extends DockablePa
detailArea.setText(buf.toString());
} else {
- detailArea.setText(o.toString());
+ //no exception
+ detailArea.setText("");
}
- detailDialog.setLocation(lowerPanel.getLocationOnScreen());
SwingHelper.invokeOnEDT(new Runnable() {
public void run() {
- detailDialog.setVisible(true);
+ centerAndSetVisible(detailDialog);
}
});
}
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java?rev=954949&r1=954948&r2=954949&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java Tue Jun 15 16:20:51 2010
@@ -22,6 +22,7 @@ import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
+import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Point;
@@ -55,12 +56,12 @@ import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
+import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
@@ -134,7 +135,7 @@ final class LoggerNameTreePanel extends
private final LogPanelPreferenceModel preferenceModel;
private final JList ignoreList = new JList();
- private final JTextArea ignoreExpressionTextArea = new JTextArea(4, 75);
+ private final JEditorPane ignoreExpressionEntryField = new JEditorPane();
private final JScrollPane ignoreListScroll = new JScrollPane(ignoreList);
private final JDialog ignoreDialog = new JDialog();
private final JDialog ignoreExpressionDialog = new JDialog();
@@ -176,9 +177,8 @@ final class LoggerNameTreePanel extends
this.filterModel = filterModel;
setLayout(new BorderLayout());
- ignoreExpressionTextArea.setLineWrap(true);
- ignoreExpressionTextArea.setWrapStyleWord(true);
- JTextComponentFormatter.applySystemFontAndSize(ignoreExpressionTextArea);
+ ignoreExpressionEntryField.setPreferredSize(new Dimension(300, 150));
+ JTextComponentFormatter.applySystemFontAndSize(ignoreExpressionEntryField);
ruleDelegate = new AbstractRule() {
public boolean evaluate(LoggingEvent e, Map matches)
@@ -378,13 +378,13 @@ final class LoggerNameTreePanel extends
ignoreListPanel.add(ignoreListScroll, BorderLayout.CENTER);
JPanel ignoreExpressionDialogPanel = new JPanel(new BorderLayout());
- ignoreExpressionTextArea.addKeyListener(new ExpressionRuleContext(filterModel, ignoreExpressionTextArea));
+ ignoreExpressionEntryField.addKeyListener(new ExpressionRuleContext(filterModel, ignoreExpressionEntryField));
- ignoreExpressionDialogPanel.add(new JScrollPane(ignoreExpressionTextArea), BorderLayout.CENTER);
+ ignoreExpressionDialogPanel.add(new JScrollPane(ignoreExpressionEntryField), BorderLayout.CENTER);
JButton ignoreExpressionCloseButton = new JButton(new AbstractAction("Close") {
public void actionPerformed(ActionEvent e)
{
- String ignoreText = ignoreExpressionTextArea.getText();
+ String ignoreText = ignoreExpressionEntryField.getText();
if (updateIgnoreExpression(ignoreText)) {
ignoreExpressionDialog.setVisible(false);
@@ -442,11 +442,11 @@ final class LoggerNameTreePanel extends
firePropertyChange("hiddenSet", null, null);
updateAllIgnoreStuff();
- ignoreExpressionTextArea.setBackground(UIManager.getColor("TextField.background"));
+ ignoreExpressionEntryField.setBackground(UIManager.getColor("TextField.background"));
return true;
} catch (IllegalArgumentException iae) {
- ignoreExpressionTextArea.setToolTipText(iae.getMessage());
- ignoreExpressionTextArea.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
+ ignoreExpressionEntryField.setToolTipText(iae.getMessage());
+ ignoreExpressionEntryField.setBackground(ChainsawConstants.INVALID_EXPRESSION_BACKGROUND);
return false;
}
}
@@ -1455,7 +1455,7 @@ final class LoggerNameTreePanel extends
}
public String getHiddenExpression() {
- String text = ignoreExpressionTextArea.getText();
+ String text = ignoreExpressionEntryField.getText();
if (text == null || text.trim().equals("")) {
return null;
}
@@ -1463,7 +1463,7 @@ final class LoggerNameTreePanel extends
}
public void setHiddenExpression(String hiddenExpression) {
- ignoreExpressionTextArea.setText(hiddenExpression);
+ ignoreExpressionEntryField.setText(hiddenExpression);
updateIgnoreExpression(hiddenExpression);
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.