You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by sd...@apache.org on 2010/04/05 07:17:31 UTC
svn commit: r930795 - in /logging/chainsaw/trunk/src/main:
java/org/apache/log4j/chainsaw/ java/org/apache/log4j/chainsaw/layout/
resources/org/apache/log4j/chainsaw/zeroconf/
Author: sdeboy
Date: Mon Apr 5 05:17:31 2010
New Revision: 930795
URL: http://svn.apache.org/viewvc?rev=930795&view=rev
Log:
Refactor code setting default font & font size for html jeditorpanes (only when content in jeditorpane is html)
Turn off scroll-to-bottom when goto-line or when clicking in the thumbnail bar
Added:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/JEditorPaneFormatter.java
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.html
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java?rev=930795&r1=930794&r2=930795&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java Mon Apr 5 05:17:31 2010
@@ -86,10 +86,7 @@ class ChainsawAbout extends JDialog {
}
getContentPane().add(scrollPane, BorderLayout.CENTER);
getContentPane().add(closeButton, BorderLayout.SOUTH);
-
- Font font = UIManager.getFont("Label.font");
- String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
- ((HTMLDocument)editPane.getDocument()).getStyleSheet().addRule(bodyRule);
+ JEditorPaneFormatter.applySystemFontAndSize(editPane);
editPane.setEditable(false);
editPane.addHyperlinkListener(
Added: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/JEditorPaneFormatter.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/JEditorPaneFormatter.java?rev=930795&view=auto
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/JEditorPaneFormatter.java (added)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/JEditorPaneFormatter.java Mon Apr 5 05:17:31 2010
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.log4j.chainsaw;
+
+import java.awt.Font;
+
+import javax.swing.JEditorPane;
+import javax.swing.UIManager;
+import javax.swing.text.Document;
+import javax.swing.text.html.HTMLDocument;
+
+/**
+ * Apply system font and size (normal size + 1) rule if the JEditorPane document contains html.
+ */
+public class JEditorPaneFormatter {
+ public static void applySystemFontAndSize(JEditorPane editorPane) {
+ Document document = editorPane.getDocument();
+ if (document instanceof HTMLDocument) {
+ Font font = UIManager.getFont("Label.font");
+ String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
+ ((HTMLDocument)document).getStyleSheet().addRule(bodyRule);
+ }
+ }
+}
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=930795&r1=930794&r2=930795&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 Mon Apr 5 05:17:31 2010
@@ -124,9 +124,7 @@ import javax.swing.table.TableCellEditor
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.text.Document;
-import javax.swing.text.html.HTMLDocument;
-import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
@@ -1954,7 +1952,7 @@ public class LogPanel extends DockablePa
}
/**
- * Change the selected event on the log panel
+ * Change the selected event on the log panel. Will cause scrollToBottom to be turned off.
*
* @param eventNumber
* @return row number or -1 if row with log4jid property with that number was not found
@@ -1962,6 +1960,8 @@ public class LogPanel extends DockablePa
int setSelectedEvent(int eventNumber) {
int row = tableModel.find(ExpressionRule.getRule("prop.log4jid == " + eventNumber), 0, true);
if (row > -1) {
+ preferenceModel.setScrollToBottom(false);
+
table.scrollTo(row, 0);
}
return row;
@@ -2956,9 +2956,7 @@ public class LogPanel extends DockablePa
SwingHelper.invokeOnEDT(new Runnable() {
public void run() {
detail.setDocument(doc);
- Font font = UIManager.getFont("Label.font");
- String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
- ((HTMLDocument)detail.getDocument()).getStyleSheet().addRule(bodyRule);
+ JEditorPaneFormatter.applySystemFontAndSize(detail);
detail.setCaretPosition(0);
lastRow = selectedRow;
}
@@ -2975,9 +2973,7 @@ public class LogPanel extends DockablePa
SwingHelper.invokeOnEDT(new Runnable() {
public void run() {
detail.setDocument(doc);
- Font font = UIManager.getFont("Label.font");
- String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
- ((HTMLDocument)detail.getDocument()).getStyleSheet().addRule(bodyRule);
+ JEditorPaneFormatter.applySystemFontAndSize(detail);
detail.setCaretPosition(0);
lastRow = selectedRow;
}
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java?rev=930795&r1=930794&r2=930795&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java Mon Apr 5 05:17:31 2010
@@ -23,7 +23,6 @@ import java.awt.Container;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.EventQueue;
-import java.awt.Font;
import java.awt.Frame;
import java.awt.Point;
import java.awt.Toolkit;
@@ -86,7 +85,6 @@ import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
-import javax.swing.text.html.HTMLDocument;
import org.apache.log4j.Appender;
import org.apache.log4j.AppenderSkeleton;
@@ -109,7 +107,6 @@ import org.apache.log4j.chainsaw.prefs.S
import org.apache.log4j.chainsaw.prefs.SettingsListener;
import org.apache.log4j.chainsaw.prefs.SettingsManager;
import org.apache.log4j.chainsaw.receivers.ReceiversPanel;
-import org.apache.log4j.chainsaw.version.VersionManager;
import org.apache.log4j.net.SocketNodeEventListener;
import org.apache.log4j.plugins.Plugin;
import org.apache.log4j.plugins.PluginEvent;
@@ -816,8 +813,6 @@ public class LogUI extends JFrame implem
String inputLine = JOptionPane.showInputDialog(LogUI.this, "Enter the line number to go:", "Goto Line", -1);
try {
int lineNumber = Integer.parseInt(inputLine);
- List eventList = getCurrentLogPanel().getEvents();
-
int row = getCurrentLogPanel().setSelectedEvent(lineNumber);
if (row == -1) {
JOptionPane.showMessageDialog(LogUI.this, "You have entered an invalid line number", "Error", 0);
@@ -1031,9 +1026,7 @@ public class LogUI extends JFrame implem
try {
tutorialArea.setPage(ChainsawConstants.TUTORIAL_URL);
- Font font = UIManager.getFont("Label.font");
- String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
- ((HTMLDocument)tutorialArea.getDocument()).getStyleSheet().addRule(bodyRule);
+ JEditorPaneFormatter.applySystemFontAndSize(tutorialArea);
container.add(new JScrollPane(tutorialArea), BorderLayout.CENTER);
} catch (Exception e) {
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java?rev=930795&r1=930794&r2=930795&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/WelcomePanel.java Mon Apr 5 05:17:31 2010
@@ -17,18 +17,13 @@
package org.apache.log4j.chainsaw;
-import org.apache.log4j.chainsaw.icons.ChainsawIcons;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
-
import java.io.IOException;
-
import java.net.URL;
-
import java.util.Stack;
import javax.swing.AbstractAction;
@@ -44,7 +39,8 @@ import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
-import javax.swing.text.html.HTMLDocument;
+
+import org.apache.log4j.chainsaw.icons.ChainsawIcons;
/**
@@ -75,11 +71,10 @@ public class WelcomePanel extends JPanel
add(pane, BorderLayout.CENTER);
try {
- textInfo.setPage(helpURL);
- String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
- ((HTMLDocument)textInfo.getDocument()).getStyleSheet().addRule(bodyRule);
textInfo.setEditable(false);
textInfo.setPreferredSize(new Dimension(320, 240));
+ textInfo.setPage(helpURL);
+ JEditorPaneFormatter.applySystemFontAndSize(textInfo);
textInfo.addHyperlinkListener(
new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
@@ -108,9 +103,8 @@ public class WelcomePanel extends JPanel
try {
urlStack.push(textInfo.getPage());
textInfo.setPage(url);
- Font font = UIManager.getFont("Label.font");
- String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
- ((HTMLDocument)textInfo.getDocument()).getStyleSheet().addRule(bodyRule);
+ //not all pages displayed in the Welcome Panel are html-based (example receiver config is an xml file)..
+ JEditorPaneFormatter.applySystemFontAndSize(textInfo);
urlToolbar.updateToolbar();
} catch (IOException e) {
e.printStackTrace();
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java?rev=930795&r1=930794&r2=930795&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java Mon Apr 5 05:17:31 2010
@@ -18,7 +18,6 @@
package org.apache.log4j.chainsaw.layout;
import java.awt.Dimension;
-import java.awt.Font;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -37,20 +36,19 @@ import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
-import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
-import javax.swing.text.html.HTMLDocument;
import org.apache.log4j.Logger;
import org.apache.log4j.chainsaw.ChainsawConstants;
+import org.apache.log4j.chainsaw.JEditorPaneFormatter;
import org.apache.log4j.chainsaw.icons.ChainsawIcons;
+import org.apache.log4j.spi.LocationInfo;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.spi.ThrowableInformation;
-import org.apache.log4j.spi.LocationInfo;
/**
@@ -207,9 +205,7 @@ public final class LayoutEditorPane exte
okButton.setToolTipText("Accepts the current Pattern layout and will apply it to the Log Panel");
cancelButton.setToolTipText("Closes this dialog and discards your changes");
- Font font = UIManager.getFont("Label.font");
- String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
- ((HTMLDocument)previewer.getDocument()).getStyleSheet().addRule(bodyRule);
+ JEditorPaneFormatter.applySystemFontAndSize(previewer);
previewer.setEditable(false);
patternEditor.setPreferredSize(new Dimension(240, 240));
Modified: logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.html
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.html?rev=930795&r1=930794&r2=930795&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.html (original)
+++ logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.html Mon Apr 5 05:17:31 2010
@@ -6,7 +6,7 @@
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">
<h2>ZeroConf (Zero Configuration)</h2>
-<p>One of the hardest parts of any network-based application is configuring which bits connect to what, and how
+<p>One of the hardest parts of any network-based application is configuring which bits connect to what, and how
do they connect to each other. Each device that can be connected <emphasis>to</emphasis> already knows
the configuration details required to connect to it, but every other device that may wish to connect to it
will need to be provided with this information so the connection can be established.
@@ -34,7 +34,7 @@ Most of the network-based appenders are
download the JmDNS package (at least version 1.0), add the JmDNS jar to your application's classpath, and set the "advertiseViaMulticastDNS"
parameter to 'true' for any of the appenders or receivers you want to advertise (most of the time you will want to advertise appenders, so they can be
automatically detected by Chainsaw).</p>
-<p>You're log4j.xml configuration file could be as simple as this:</p>
+<p>Your log4j.xml configuration file could be as simple as this:</p>
<pre>
<log4j:configuration debug="false" threshold="debug" xmlns:log4j="http://jakarta.apache.org/log4j/>
<appender name="zeroconf" class="org.apache.log4j.net.SocketHubAppender">