sdeboy 2003/12/14 02:50:44
Modified: src/java/org/apache/log4j/chainsaw/rule
ExpressionRuleContext.java LevelInequalityRule.java
ColorRule.java RuleTest.java
src/java/org/apache/log4j/chainsaw/filter FilterModel.java
src/java/org/apache/log4j/chainsaw
ChainsawAppenderHandler.java LogPanel.java
src/java/org/apache/log4j/chainsaw/icons
LevelIconFactory.java
src/java/org/apache/log4j/chainsaw/color ColorPanel.java
RuleColorizer.java
src/java/org/apache/log4j UtilLoggingLevel.java
Log:
Finished imlementation of load/save of color rulesets, although creation of new
rulesets are not yet supported (only each panel's default color ruleset is saved).
Minor cleanup in other classes
Revision Changes Path
1.4 +0 -3
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/ExpressionRuleContext.java
Index: ExpressionRuleContext.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/ExpressionRuleContext.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ExpressionRuleContext.java 4 Dec 2003 08:53:02 -0000 1.3
+++ ExpressionRuleContext.java 14 Dec 2003 10:50:44 -0000 1.4
@@ -73,7 +73,6 @@
public class ExpressionRuleContext extends KeyAdapter {
RuleFactory factory = RuleFactory.getInstance();
LoggingEventFieldResolver resolver = LoggingEventFieldResolver.getInstance();
- String lastField = null;
JPopupMenu contextMenu = new JPopupMenu();
JList list = new JList();
FilterModel filterModel;
@@ -143,8 +142,6 @@
}
private void updateField(String value) {
- String text = textField.getText();
-
if (textField.getSelectedText() == null) {
value = value + " ";
}
1.5 +6 -5
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/LevelInequalityRule.java
Index: LevelInequalityRule.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/LevelInequalityRule.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- LevelInequalityRule.java 9 Nov 2003 09:59:27 -0000 1.4
+++ LevelInequalityRule.java 14 Dec 2003 10:50:44 -0000 1.5
@@ -68,7 +68,6 @@
public class LevelInequalityRule extends AbstractRule {
private static final LoggingEventFieldResolver resolver =
LoggingEventFieldResolver.getInstance();
private final Level level;
- private final String value;
private final List utilList = new LinkedList();
private final List levelList = new LinkedList();
private final String inequalitySymbol;
@@ -94,7 +93,6 @@
}
this.inequalitySymbol = inequalitySymbol;
- this.value = value;
}
public static Rule getRule(String inequalitySymbol, String field, String value) {
@@ -110,9 +108,12 @@
public boolean evaluate(LoggingEvent event) {
//use the type of the first level to access the static toLevel method on the
second param
- Level level2 =
- level.toLevel(
- resolver.getValue("LEVEL", event).toString());
+ Level level2 = null;
+ if (level instanceof UtilLoggingLevel) {
+ level2 = UtilLoggingLevel.toLevel(resolver.getValue("LEVEL",
event).toString());
+ } else {
+ level2 = Level.toLevel(resolver.getValue("LEVEL", event).toString());
+ }
boolean result = false;
int first = level2.toInt();
1.3 +13 -6
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/ColorRule.java
Index: ColorRule.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/ColorRule.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ColorRule.java 4 Dec 2003 08:53:02 -0000 1.2
+++ ColorRule.java 14 Dec 2003 10:50:44 -0000 1.3
@@ -49,9 +49,10 @@
package org.apache.log4j.chainsaw.rule;
-import org.apache.log4j.spi.LoggingEvent;
-
import java.awt.Color;
+import java.io.Serializable;
+
+import org.apache.log4j.spi.LoggingEvent;
/**
@@ -59,16 +60,18 @@
*
* @author Scott Deboy <[EMAIL PROTECTED]>
*/
-public class ColorRule extends AbstractRule {
+public class ColorRule extends AbstractRule implements Serializable {
private final Rule rule;
private final Color foregroundColor;
private final Color backgroundColor;
+ private final String expression;
public ColorRule(Rule rule, Color backgroundColor) {
- this(rule, backgroundColor, null);
+ this(null, rule, backgroundColor, null);
}
- public ColorRule(Rule rule, Color backgroundColor, Color foregroundColor) {
+ public ColorRule(String expression, Rule rule, Color backgroundColor, Color
foregroundColor) {
+ this.expression = expression;
this.rule = rule;
this.backgroundColor = backgroundColor;
this.foregroundColor = foregroundColor;
@@ -85,12 +88,16 @@
public Color getBackgroundColor() {
return backgroundColor;
}
+
+ public String getExpression() {
+ return expression;
+ }
public boolean evaluate(LoggingEvent event) {
return (rule != null && rule.evaluate(event));
}
public String toString() {
- return "color rule " + rule + " bg: " + backgroundColor + " fg: " +
foregroundColor;
+ return "color rule - expression: " + expression+", rule: " + rule + " bg: " +
backgroundColor + " fg: " + foregroundColor;
}
}
1.17 +6 -14
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/RuleTest.java
Index: RuleTest.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/RuleTest.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- RuleTest.java 9 Nov 2003 09:59:27 -0000 1.16
+++ RuleTest.java 14 Dec 2003 10:50:44 -0000 1.17
@@ -53,7 +53,6 @@
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
import org.apache.log4j.chainsaw.ChainsawConstants;
-import org.apache.log4j.chainsaw.LoggingEventFieldResolver;
import org.apache.log4j.chainsaw.filter.FilterModel;
import org.apache.log4j.spi.LoggingEvent;
@@ -95,9 +94,6 @@
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
- LoggingEventFieldResolver resolver =
- LoggingEventFieldResolver.getInstance();
-
filterModel = new FilterModel();
final List eventList = new ArrayList();
@@ -179,15 +175,15 @@
public void actionPerformed(ActionEvent evt) {
results.setText("");
- Iterator iter = eventList.iterator();
+ Iterator iter2 = eventList.iterator();
- while (iter.hasNext()) {
- LoggingEvent event = (LoggingEvent) iter.next();
- Iterator iter2 = event.getMDCKeySet().iterator();
+ while (iter2.hasNext()) {
+ LoggingEvent event = (LoggingEvent) iter2.next();
+ Iterator iter3 = event.getMDCKeySet().iterator();
StringBuffer mdc = new StringBuffer();
- while (iter2.hasNext()) {
- String mdcKey = (String) iter2.next();
+ while (iter3.hasNext()) {
+ String mdcKey = (String) iter3.next();
mdc.append(mdcKey);
mdc.append(":");
mdc.append(event.getMDC(mdcKey));
@@ -205,10 +201,6 @@
getContentPane().add(fieldPanel, BorderLayout.NORTH);
getContentPane().add(resultsPanel, BorderLayout.CENTER);
- }
-
- private void setRule(Rule rule) {
- this.rule = rule;
}
public static void main(String[] args) {
1.5 +0 -19
jakarta-log4j/src/java/org/apache/log4j/chainsaw/filter/FilterModel.java
Index: FilterModel.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/filter/FilterModel.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FilterModel.java 2 Nov 2003 19:53:48 -0000 1.4
+++ FilterModel.java 14 Dec 2003 10:50:44 -0000 1.5
@@ -52,9 +52,6 @@
import org.apache.log4j.spi.LocationInfo;
import org.apache.log4j.spi.LoggingEvent;
-import javax.swing.event.EventListenerList;
-
-
/**
* This class is used as a Model for Filtering, and retains the unique entries that
* come through over a set of LoggingEvents
@@ -63,10 +60,8 @@
* @author Scott Deboy <[EMAIL PROTECTED]>
*/
public class FilterModel {
- // private Map eventTypeMap = new HashMap();
private EventTypeEntryContainer eventContainer =
new EventTypeEntryContainer();
- private EventListenerList eventListenerList = new EventListenerList();
public void processNewLoggingEvent(String eventType, LoggingEvent event) {
EventTypeEntryContainer container = getContainer(eventType);
@@ -86,24 +81,10 @@
}
public EventTypeEntryContainer getContainer() {
- // if(eventTypeMap.size()>0){
- // return (EventTypeEntryContainer)
eventTypeMap.values().iterator().next();
- // }
return eventContainer;
}
EventTypeEntryContainer getContainer(String eventType) {
return this.eventContainer;
-
- // EventTypeEntryContainer container = null;
- //
- // if (eventTypeMap.containsKey(eventType)) {
- // container = (EventTypeEntryContainer) eventTypeMap.get(eventType);
- // } else {
- // container = new EventTypeEntryContainer();
- // eventTypeMap.put(eventType, container);
- // }
- //
- // return container;
}
}
1.11 +30 -26
jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawAppenderHandler.java
Index: ChainsawAppenderHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawAppenderHandler.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ChainsawAppenderHandler.java 11 Dec 2003 05:45:59 -0000 1.10
+++ ChainsawAppenderHandler.java 14 Dec 2003 10:50:44 -0000 1.11
@@ -49,8 +49,16 @@
package org.apache.log4j.chainsaw;
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.helpers.LogLog;
+import org.apache.log4j.net.SocketReceiver;
+import org.apache.log4j.plugins.PluginRegistry;
+import org.apache.log4j.spi.LoggingEvent;
+
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -59,13 +67,6 @@
import javax.swing.event.EventListenerList;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.helpers.LogLog;
-import org.apache.log4j.net.SocketReceiver;
-import org.apache.log4j.plugins.PluginRegistry;
-import org.apache.log4j.spi.LoggingEvent;
-
/**
* A handler class that either extends a particular appender hierarchy or can be
bound
@@ -77,34 +78,33 @@
*
*/
public class ChainsawAppenderHandler extends AppenderSkeleton {
- private ChainsawAppender appender;
+ private static final String DEFAULT_IDENTIFIER = "Unknown";
private WorkQueue worker;
private final Object mutex = new Object();
private int sleepInterval = 1000;
private EventListenerList listenerList = new EventListenerList();
private double dataRate = 0.0;
- private String identifierExpression = "UNKNOWN";
- private final LoggingEventFieldResolver resolver =
LoggingEventFieldResolver.getInstance();
-
+ private String identifierExpression;
+ private final LoggingEventFieldResolver resolver =
+ LoggingEventFieldResolver.getInstance();
private PropertyChangeSupport propertySupport =
new PropertyChangeSupport(this);
public ChainsawAppenderHandler(ChainsawAppender appender) {
- this.appender = appender;
appender.addAppender(this);
activateOptions();
}
-
+
+ public ChainsawAppenderHandler() {
+ activateOptions();
+ }
+
public void setIdentifierExpression(String identifierExpression) {
- this.identifierExpression = identifierExpression;
+ this.identifierExpression = identifierExpression;
}
-
+
public String getIdentifierExpression() {
- return identifierExpression;
- }
-
- public ChainsawAppenderHandler() {
- activateOptions();
+ return identifierExpression;
}
public void addEventBatchListener(EventBatchListener l) {
@@ -154,8 +154,10 @@
* @param event
* @return identifier
*/
- private String getTabIdentifier(LoggingEvent e) {
- return resolver.applyFields(identifierExpression, e);
+ String getTabIdentifier(LoggingEvent e) {
+ String ident = resolver.applyFields(identifierExpression, e);
+
+ return ((ident != null) ? ident : DEFAULT_IDENTIFIER);
}
/**
@@ -202,7 +204,7 @@
/**
* @param dataRate
*/
- private void setDataRate(double dataRate) {
+ void setDataRate(double dataRate) {
double oldValue = this.dataRate;
this.dataRate = dataRate;
propertySupport.firePropertyChange(
@@ -249,7 +251,7 @@
* processes all events accumulated during that time..
*/
class WorkQueue {
- private final ArrayList queue = new ArrayList();
+ final ArrayList queue = new ArrayList();
Thread workerThread;
protected WorkQueue() {
@@ -310,10 +312,12 @@
LoggingEvent e = (LoggingEvent) iter.next();
Vector properties = new Vector();
Iterator iterx = e.getPropertyKeySet().iterator();
+
while (iterx.hasNext()) {
- String thisProp = iterx.next().toString();
- properties.add(thisProp +" " + e.getProperty(thisProp));
+ String thisProp = iterx.next().toString();
+ properties.add(thisProp + " " + e.getProperty(thisProp));
}
+
eventBatch.addEvent(
getTabIdentifier(e),
(e.getProperty(ChainsawConstants.EVENT_TYPE_KEY) == null)
1.33 +19 -16 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.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- LogPanel.java 14 Dec 2003 02:40:18 -0000 1.32
+++ LogPanel.java 14 Dec 2003 10:50:44 -0000 1.33
@@ -98,6 +98,7 @@
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
+import java.util.Vector;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -287,26 +288,29 @@
colorFrame.setTitle("'" + ident + "' Color Filter");
colorFrame.setIconImage(
((ImageIcon) ChainsawIcons.ICON_PREFERENCES).getImage());
+
+ renderer = new TableColorizingRenderer(colorizer);
+ colorPanel = new ColorPanel(colorizer, filterModel);
+
+ colorFrame.getContentPane().add(colorPanel);
+
+ colorPanel.setCloseActionListener(
+ new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ colorFrame.setVisible(false);
+ }
+ });
+
colorizer.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equalsIgnoreCase("colorrule")) {
if (table != null) {
table.repaint();
}
+ colorPanel.updateColors();
}
}}
);
- renderer = new TableColorizingRenderer(colorizer);
- colorPanel = new ColorPanel(colorizer, filterModel);
-
- colorFrame.getContentPane().add(colorPanel);
-
- colorPanel.setCloseActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- colorFrame.setVisible(false);
- }
- });
preferencesFrame.setSize(640, 480);
@@ -1471,7 +1475,7 @@
o = new ObjectOutputStream(
new BufferedOutputStream(new FileOutputStream(f)));
- o.writeObject(colorizer.getColors());
+ o.writeObject(colorizer.getRules());
o.flush();
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
@@ -1663,6 +1667,7 @@
}
void loadColorSettings(String ident) {
+ System.out.println("loading colors for " + ident);
File f =
new File(
SettingsManager.getInstance().getSettingsDirectory() + File.separator
@@ -1675,10 +1680,8 @@
s = new ObjectInputStream(
new BufferedInputStream(new FileInputStream(f)));
- while (true) {
- Map map = (Map) s.readObject();
- colorizer.setColors(map);
- }
+ Map map = (Map) s.readObject();
+ colorizer.setRules(map);
} catch (EOFException eof) { //end of file - ignore..
}catch (IOException ioe) {
ioe.printStackTrace();
1.3 +0 -7
jakarta-log4j/src/java/org/apache/log4j/chainsaw/icons/LevelIconFactory.java
Index: LevelIconFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/icons/LevelIconFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LevelIconFactory.java 10 Dec 2003 00:01:23 -0000 1.2
+++ LevelIconFactory.java 14 Dec 2003 10:50:44 -0000 1.3
@@ -49,21 +49,15 @@
package org.apache.log4j.chainsaw.icons;
-import org.apache.log4j.Level;
-
import java.awt.Image;
-
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import javax.swing.ImageIcon;
-import javax.swing.LookAndFeel;
import javax.swing.UIManager;
-import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.plaf.metal.MetalLookAndFeel;
-
/**
*/
public class LevelIconFactory {
@@ -74,7 +68,6 @@
String[] iconFileNames =
new String[] { "Warn.gif", "Inform.gif", "Error.gif" };
String[] iconLabels = new String[] { "WARN", "INFO", "ERROR" };
- Level[] levels = new Level[] { Level.WARN, Level.INFO, Level.ERROR };
for (int i = 0; i < iconLabels.length; i++) {
URL resourceURL = UIManager.getLookAndFeel().getClass().getResource(
1.8 +84 -73
jakarta-log4j/src/java/org/apache/log4j/chainsaw/color/ColorPanel.java
Index: ColorPanel.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/color/ColorPanel.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ColorPanel.java 13 Dec 2003 02:57:23 -0000 1.7
+++ ColorPanel.java 14 Dec 2003 10:50:44 -0000 1.8
@@ -60,8 +60,10 @@
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Vector;
@@ -111,13 +113,15 @@
private RuleColorizer colorizer;
private JPanel ruleSetsPanel;
private JPanel rulesPanel;
- private JPanel ruleSettingsPanel;
private FilterModel filterModel;
private DefaultTableModel tableModel;
private JScrollPane tableScrollPane;
private JTable table;
private ActionListener closeListener;
private JLabel statusBar;
+ private Vector columns;
+ private String currentRuleSet = "Default";
+ private DefaultListModel ruleSetListModel;
public ColorPanel(
final RuleColorizer colorizer, final FilterModel filterModel) {
@@ -126,55 +130,31 @@
this.colorizer = colorizer;
this.filterModel = filterModel;
- Vector data = new Vector();
- if (colorizer.getColors() != null && colorizer.getColors().size() > 0) {
- System.out.println("FOUND COLORS");
- Iterator iter = colorizer.getColors().entrySet().iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry)iter.next();
- String expression = entry.getKey().toString();
- ColorRule rule = (ColorRule)entry.getValue();
- System.out.println("found " + expression +".."+ rule);
- Vector v = new Vector();
- v.add(expression);
- v.add(rule);
- data.add(v);
- }
-
-
- } else {
- //apply a set of defaults for now, (eventually color rules will be loaded from
disk)
- Vector data1 = new Vector();
- data1.add("level == FATAL || level == ERROR");
- data1.add(new Color(147, 22, 0));
- data1.add(Color.white);
-
- Vector data2 = new Vector();
- data2.add("level == WARN");
- data2.add(Color.yellow.brighter());
- data2.add(Color.black);
+ tableModel = new DefaultTableModel();
+ table = new JTable(tableModel);
- data.add(data1);
- data.add(data2);
- }
+ ruleSetListModel = new DefaultListModel();
+
+ columns = new Vector();
+ columns.add("Expression");
+ columns.add("Background");
+ columns.add("Foreground");
+
+ table.setPreferredScrollableViewportSize(new Dimension(400, 200));
+ tableScrollPane = new JScrollPane(table);
+
+ Vector data = getColorizerVector();
+ tableModel.setDataVector(data, columns);
- table = buildTable(data);
table.sizeColumnsToFit(0);
table.getColumnModel().getColumn(1).setPreferredWidth(70);
table.getColumnModel().getColumn(2).setPreferredWidth(70);
table.getColumnModel().getColumn(1).setMaxWidth(70);
table.getColumnModel().getColumn(2).setMaxWidth(70);
- statusBar = new JLabel("Ruleset support not yet implemented");
- applyRules("default");
-
- table.setToolTipText("Click to edit");
- table.setRowHeight(20);
- table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- table.setColumnSelectionAllowed(false);
+ configureTable();
- table.setPreferredScrollableViewportSize(new Dimension(400, 200));
- tableScrollPane = new JScrollPane(table);
+ statusBar = new JLabel("Ruleset support not yet implemented");
ruleSetsPanel = buildRuleSetsPanel();
ruleSetsPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
@@ -230,6 +210,38 @@
f.pack();
f.setVisible(true);
}
+
+ public void updateColors() {
+ tableModel.getDataVector().clear();
+ tableModel.getDataVector().addAll(getColorizerVector());
+ }
+
+ private Vector getColorizerVector() {
+ Vector data = new Vector();
+ Map map = colorizer.getRules();
+ Iterator iter = map.entrySet().iterator();
+ ruleSetListModel.removeAllElements();
+ while (iter.hasNext()) {
+ Map.Entry entry = (Map.Entry)iter.next();
+ System.out.println("entry is " + entry);
+ //update ruleset list
+ ruleSetListModel.addElement(entry.getKey());
+ if (entry.getKey().equals(currentRuleSet)) {
+ System.out.println("entry value is "+ entry.getValue());
+ Iterator iter2 = ((List)entry.getValue()).iterator();
+
+ while (iter2.hasNext()) {
+ ColorRule rule = (ColorRule)iter2.next();
+ Vector v = new Vector();
+ v.add(rule.getExpression());
+ v.add(rule.getBackgroundColor());
+ v.add(rule.getForegroundColor());
+ data.add(v);
+ }
+ }
+ }
+ return data;
+ }
private Vector getDefaultColors() {
Vector vec = new Vector();
@@ -271,7 +283,12 @@
return vec;
}
- private JTable buildTable(Vector data) {
+ private void configureTable() {
+ table.setToolTipText("Click to edit");
+ table.setRowHeight(20);
+ table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ table.setColumnSelectionAllowed(false);
+
Vector backgroundColors = getDefaultColors();
Vector foregroundColors = getDefaultColors();
backgroundColors.add("Browse...");
@@ -285,15 +302,6 @@
foreground.setMaximumRowCount(15);
foreground.setRenderer(new ColorListCellRenderer());
- Vector cols = new Vector();
- cols.add("Expression");
- cols.add("Background");
- cols.add("Foreground");
-
- tableModel = new DefaultTableModel(data, cols);
-
- JTable table = new JTable(tableModel);
-
DefaultCellEditor backgroundEditor = new DefaultCellEditor(background);
DefaultCellEditor foregroundEditor = new DefaultCellEditor(foreground);
JTextField textField = new JTextField();
@@ -313,8 +321,6 @@
new ColorTableCellRenderer());
table.getColumnModel().getColumn(2).setCellRenderer(
new ColorTableCellRenderer());
-
- return table;
}
public void setCloseActionListener(ActionListener listener) {
@@ -331,7 +337,7 @@
table.getColumnModel().getColumn(0).getCellEditor().stopCellEditing();
colorizer.clear();
- Map map = new HashMap();
+ List list = new ArrayList();
Vector vector = tableModel.getDataVector();
StringBuffer result = new StringBuffer();
@@ -351,8 +357,8 @@
foreground = (Color) v.elementAt(2);
}
- ColorRule r = new ColorRule(expressionRule, background, foreground);
- map.put(v.elementAt(0), r);
+ ColorRule r = new ColorRule((String)v.elementAt(0), expressionRule,
background, foreground);
+ list.add(r);
} catch (IllegalArgumentException iae) {
if (!result.toString().equals("")) {
result.append("<br>");
@@ -371,6 +377,8 @@
((ExpressionTableCellRenderer)
table.getColumnModel().getColumn(0).getCellRenderer())
.setToolTipText("<html>" + result.toString() + "</html>");
}
+ Map map = new HashMap();
+ map.put(ruleSet, list);
colorizer.addRules(map);
}
@@ -385,7 +393,7 @@
applyButton.addActionListener(
new AbstractAction() {
public void actionPerformed(ActionEvent evt) {
- applyRules("default");
+ applyRules(currentRuleSet);
}
});
@@ -496,13 +504,10 @@
JPanel buildRuleSetsPanel() {
JPanel panel = new JPanel(new BorderLayout());
- DefaultListModel listModel = new DefaultListModel();
- listModel.addElement("Default");
-
JLabel ruleSetLabel = new JLabel("RuleSets:");
panel.add(ruleSetLabel, BorderLayout.NORTH);
- final JList list = new JList(listModel);
+ final JList list = new JList(ruleSetListModel);
JScrollPane scrollPane = new JScrollPane(list);
list.setEnabled(false);
@@ -537,7 +542,7 @@
panel.add(ruleSetLabel);
JTextField ruleSetTextField = new JTextField(20);
- ruleSetTextField.setText("Default");
+ ruleSetTextField.setText(currentRuleSet);
ruleSetTextField.setAlignmentX(Component.LEFT_ALIGNMENT);
ruleSetTextField.setEnabled(false);
@@ -587,9 +592,6 @@
int index = table.getSelectionModel().getMaxSelectionIndex();
if ((index > -1) && (index < table.getRowCount())) {
- Vector v = tableModel.getDataVector();
- Vector row = (Vector) v.elementAt(index);
-
tableModel.removeRow(index);
if (index > 0) {
@@ -668,6 +670,7 @@
JComboBox box;
JDialog dialog;
JColorChooser colorChooser;
+ Color lastColor;
ColorItemListener(final JComboBox box) {
this.box = box;
@@ -684,7 +687,7 @@
}, //OK button handler
new ActionListener() {
public void actionPerformed(ActionEvent e) {
- box.setSelectedIndex(0);
+ box.setSelectedItem(lastColor);
}
}); //CANCEL button handler
dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
@@ -697,32 +700,40 @@
repaint();
} else {
box.setBackground(Color.white);
+ colorChooser.setColor((Color)table.getValueAt(table.getSelectedRow(),
table.getSelectedColumn()));
+ lastColor = (Color)table.getValueAt(table.getSelectedRow(),
table.getSelectedColumn());
dialog.setVisible(true);
}
}
}
}
- class ColorTableCellRenderer extends JPanel implements TableCellRenderer {
+ class ColorTableCellRenderer implements TableCellRenderer {
Border border;
+ JPanel panel;
ColorTableCellRenderer() {
- setOpaque(true);
+ panel = new JPanel();
+ panel.setOpaque(true);
+ }
+
+ public Color getCurrentColor() {
+ return panel.getBackground();
}
public Component getTableCellRendererComponent(
- JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
+ JTable thisTable, Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
if (value instanceof Color) {
- setBackground((Color) value);
+ panel.setBackground((Color) value);
}
if (border == null) {
border = BorderFactory.createMatteBorder(2, 2, 2, 2, table.getBackground());
}
- setBorder(border);
+ panel.setBorder(border);
- return this;
+ return panel;
}
}
@@ -746,7 +757,7 @@
}
public Component getTableCellRendererComponent(
- JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
+ JTable thisTable, Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
Vector v = tableModel.getDataVector();
1.3 +72 -30
jakarta-log4j/src/java/org/apache/log4j/chainsaw/color/RuleColorizer.java
Index: RuleColorizer.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/color/RuleColorizer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- RuleColorizer.java 13 Dec 2003 02:57:23 -0000 1.2
+++ RuleColorizer.java 14 Dec 2003 10:50:44 -0000 1.3
@@ -52,11 +52,14 @@
import java.awt.Color;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import org.apache.log4j.chainsaw.rule.ColorRule;
+import org.apache.log4j.chainsaw.rule.ExpressionRule;
import org.apache.log4j.spi.LoggingEvent;
@@ -67,65 +70,104 @@
* @author Scott Deboy <[EMAIL PROTECTED]>
*/
public class RuleColorizer implements Colorizer {
- private Map ruleMap = new HashMap();
+ private Map rules;
private final PropertyChangeSupport colorChangeSupport =
new PropertyChangeSupport(this);
+ private Map defaultRules = new HashMap();
+ private static final String DEFAULT_NAME = "Default";
+ private String currentRuleSet = DEFAULT_NAME;
public RuleColorizer() {
+ List rulesList = new ArrayList();
+
+ String expression = "level == FATAL || level == ERROR";
+ rulesList.add(new ColorRule(expression,
ExpressionRule.getRule(expression),new Color(147, 22, 0), Color.white));
+ expression = "level == WARN";
+ rulesList.add(new ColorRule(expression,
ExpressionRule.getRule(expression),Color.yellow.brighter(), Color.black));
+ defaultRules.put(DEFAULT_NAME, rulesList);
+ setRules(defaultRules);
}
- public void setColors(Map ruleMap) {
- this.ruleMap = ruleMap;
+ public void setRules(Map rules) {
+ this.rules = rules;
+ colorChangeSupport.firePropertyChange("colorrule", false, true);
}
- public Map getColors() {
- return ruleMap;
+ public Map getRules() {
+ return rules;
}
- public void addRules(Map rules) {
- Iterator iter = rules.entrySet().iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry)iter.next();
- ruleMap.put(entry.getKey(), entry.getValue());
- }
+ public void addRules(Map newRules) {
+ Iterator iter = newRules.entrySet().iterator();
+ while (iter.hasNext()) {
+ Map.Entry entry = (Map.Entry)iter.next();
+ if (rules.containsKey(entry.getKey())) {
+ ((List)rules.get(entry.getKey())).addAll((List)entry.getValue());
+ } else {
+ rules.put(entry.getKey(), entry.getValue());
+ }
+ }
colorChangeSupport.firePropertyChange("colorrule", false, true);
}
- public void addRule(String expression, ColorRule rule) {
- ruleMap.put(expression, rule);
+ public void addRule(String ruleSetName, ColorRule rule) {
+ if (rules.containsKey(ruleSetName)) {
+ ((List)rules.get(ruleSetName)).add(rule);
+ } else {
+ List list = new ArrayList();
+ list.add(rule);
+ rules.put(ruleSetName, list);
+ }
colorChangeSupport.firePropertyChange("colorrule", false, true);
}
public void clear() {
- ruleMap.clear();
+ rules.clear();
}
- public void removeRule(String expression) {
- ruleMap.remove(expression);
+ public void removeRule(String ruleSetName, String expression) {
+ if (rules.containsKey(ruleSetName)) {
+ List list = (List)rules.get(ruleSetName);
+ for (int i = 0;i<list.size();i++) {
+ ColorRule rule = (ColorRule)list.get(i);
+ if (rule.getExpression().equals(expression)) {
+ list.remove(rule);
+ return;
+ }
+ }
+ }
+ }
+
+ public void setCurrentRuleSet(String ruleSetName) {
+ currentRuleSet = ruleSetName;
}
public Color getBackgroundColor(LoggingEvent event) {
- Iterator iter = ruleMap.values().iterator();
- while (iter.hasNext()) {
- ColorRule rule = (ColorRule) iter.next();
-
- if ((rule.getBackgroundColor() != null) && (rule.evaluate(event))) {
- return rule.getBackgroundColor();
- }
+ if (rules.containsKey(currentRuleSet)) {
+ List list = (List)rules.get(currentRuleSet);
+ Iterator iter = list.iterator();
+ while (iter.hasNext()) {
+ ColorRule rule = (ColorRule) iter.next();
+ if ((rule.getBackgroundColor() != null) && (rule.evaluate(event))) {
+ return rule.getBackgroundColor();
+ }
+ }
}
return null;
}
public Color getForegroundColor(LoggingEvent event) {
- Iterator iter = ruleMap.values().iterator();
- while (iter.hasNext()) {
- ColorRule rule = (ColorRule) iter.next();
-
- if ((rule.getForegroundColor() != null) && (rule.evaluate(event))) {
- return rule.getForegroundColor();
+ if (rules.containsKey(currentRuleSet)) {
+ List list = (List)rules.get(currentRuleSet);
+ Iterator iter = list.iterator();
+ while (iter.hasNext()) {
+ ColorRule rule = (ColorRule) iter.next();
+ if ((rule.getForegroundColor() != null) && (rule.evaluate(event))) {
+ return rule.getForegroundColor();
+ }
+ }
}
- }
return null;
}
1.3 +1 -1 jakarta-log4j/src/java/org/apache/log4j/UtilLoggingLevel.java
Index: UtilLoggingLevel.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/UtilLoggingLevel.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UtilLoggingLevel.java 2 Nov 2003 19:53:48 -0000 1.2
+++ UtilLoggingLevel.java 14 Dec 2003 10:50:44 -0000 1.3
@@ -111,7 +111,7 @@
return FINEST;
default:
- return FINEST;
+ return defaultLevel;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]