sdeboy 2003/12/12 18:57:23
Modified: src/java/org/apache/log4j/chainsaw LogUI.java LogPanel.java
src/java/org/apache/log4j/chainsaw/color ColorPanel.java
RuleColorizer.java
src/java/org/apache/log4j/chainsaw/rule AbstractRule.java
Log:
Adding save support for the color rules - in process.
Revision Changes Path
1.52 +1 -0 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java
Index: LogUI.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- LogUI.java 12 Dec 2003 10:32:40 -0000 1.51
+++ LogUI.java 13 Dec 2003 02:57:23 -0000 1.52
@@ -159,6 +159,7 @@
private static final String LOOK_AND_FEEL = "LookAndFeel";
private static final String STATUS_BAR = "StatusBar";
static final String COLUMNS_EXTENSION = ".columns";
+ static final String COLORS_EXTENSION = ".colors";
private final JFrame preferencesFrame = new JFrame();
private static ChainsawSplash splash;
1.31 +78 -6 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.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- LogPanel.java 11 Dec 2003 22:31:29 -0000 1.30
+++ LogPanel.java 13 Dec 2003 02:57:23 -0000 1.31
@@ -212,6 +212,7 @@
private boolean tooltipsEnabled;
private final ChainsawStatusBar statusBar;
private final JToolBar undockedToolbar;
+ private RuleColorizer colorizer = new RuleColorizer();
public LogPanel(
final ChainsawStatusBar statusBar, final String ident, String eventType) {
@@ -286,7 +287,6 @@
colorFrame.setTitle("'" + ident + "' Color Filter");
colorFrame.setIconImage(
((ImageIcon) ChainsawIcons.ICON_PREFERENCES).getImage());
- RuleColorizer colorizer = new RuleColorizer();
colorizer.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equalsIgnoreCase("colorrule")) {
@@ -1482,6 +1482,35 @@
}
}
saveColumnSettings();
+ saveColorSettings();
+ }
+
+ void saveColorSettings() {
+ ObjectOutputStream o = null;
+
+ try {
+ File f =
+ new File(
+ SettingsManager.getInstance().getSettingsDirectory()
+ + File.separator + getIdentifier() + LogUI.COLORS_EXTENSION);
+ o = new ObjectOutputStream(
+ new BufferedOutputStream(new FileOutputStream(f)));
+
+ o.writeObject(colorizer.getColors());
+ o.flush();
+ } catch (FileNotFoundException fnfe) {
+ fnfe.printStackTrace();
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ } finally {
+ try {
+ if (o != null) {
+ o.close();
+ }
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ }
+ }
}
void saveColumnSettings() {
@@ -1538,11 +1567,13 @@
new File(
SettingsManager.getInstance().getSettingsDirectory()
+ File.separator + getIdentifier()+ ".prefs");
- o = new ObjectInputStream(
- new BufferedInputStream(new FileInputStream(f)));
-
- LogPanelPreferenceModel model = (LogPanelPreferenceModel) o.readObject();
- getPreferenceModel().apply(model);
+ if (f.exists()) {
+ o = new ObjectInputStream(
+ new BufferedInputStream(new FileInputStream(f)));
+
+ LogPanelPreferenceModel model = (LogPanelPreferenceModel)
o.readObject();
+ getPreferenceModel().apply(model);
+ }
}
catch(Exception e)
{
@@ -1575,6 +1606,13 @@
} else {
loadDefaultColumnSettings(event);
}
+ File f2 =
+ new File(
+ SettingsManager.getInstance().getSettingsDirectory() + File.separator
+ + identifier + LogUI.COLORS_EXTENSION);
+ if (f2.exists()) {
+ loadColorSettings(identifier);
+ }
}
void loadDefaultColumnSettings(LoadSettingsEvent event) {
@@ -1649,6 +1687,40 @@
});
}
+ void loadColorSettings(String ident) {
+ File f =
+ new File(
+ SettingsManager.getInstance().getSettingsDirectory() + File.separator
+ + ident + LogUI.COLORS_EXTENSION);
+
+ if (f.exists()) {
+ ObjectInputStream s = null;
+
+ try {
+ s = new ObjectInputStream(
+ new BufferedInputStream(new FileInputStream(f)));
+
+ while (true) {
+ Map map = (Map) s.readObject();
+ colorizer.setColors(map);
+ }
+ } catch (EOFException eof) { //end of file - ignore..
+ }catch (IOException ioe) {
+ ioe.printStackTrace();
+ } catch (ClassNotFoundException cnfe) {
+ cnfe.printStackTrace();
+ } finally {
+ if (s != null) {
+ try {
+ s.close();
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+
void loadColumnSettings(String ident, TableColumnModel model) {
File f =
new File(
1.7 +24 -7
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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ColorPanel.java 8 Dec 2003 08:38:25 -0000 1.6
+++ ColorPanel.java 13 Dec 2003 02:57:23 -0000 1.7
@@ -60,8 +60,9 @@
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
import java.util.Vector;
import javax.swing.AbstractAction;
@@ -125,6 +126,23 @@
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");
@@ -136,9 +154,9 @@
data2.add(Color.yellow.brighter());
data2.add(Color.black);
- Vector data = new Vector();
data.add(data1);
data.add(data2);
+ }
table = buildTable(data);
table.sizeColumnsToFit(0);
@@ -191,7 +209,6 @@
if (table.getRowCount() > 0) {
table.getSelectionModel().setSelectionInterval(0, 0);
}
-
}
public static void main(String[] args) {
@@ -314,7 +331,7 @@
table.getColumnModel().getColumn(0).getCellEditor().stopCellEditing();
colorizer.clear();
- List list = new ArrayList();
+ Map map = new HashMap();
Vector vector = tableModel.getDataVector();
StringBuffer result = new StringBuffer();
@@ -335,7 +352,7 @@
}
ColorRule r = new ColorRule(expressionRule, background, foreground);
- list.add(r);
+ map.put(v.elementAt(0), r);
} catch (IllegalArgumentException iae) {
if (!result.toString().equals("")) {
result.append("<br>");
@@ -355,7 +372,7 @@
.setToolTipText("<html>" + result.toString() + "</html>");
}
- colorizer.addRules(list);
+ colorizer.addRules(map);
}
JPanel buildClosePanel() {
1.2 +31 -21
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RuleColorizer.java 9 Nov 2003 09:59:28 -0000 1.1
+++ RuleColorizer.java 13 Dec 2003 02:57:23 -0000 1.2
@@ -49,16 +49,15 @@
package org.apache.log4j.chainsaw.color;
-import org.apache.log4j.chainsaw.rule.ColorRule;
-import org.apache.log4j.spi.LoggingEvent;
-
import java.awt.Color;
-
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
-import java.util.LinkedList;
-import java.util.List;
+import org.apache.log4j.chainsaw.rule.ColorRule;
+import org.apache.log4j.spi.LoggingEvent;
/**
@@ -68,37 +67,47 @@
* @author Scott Deboy <[EMAIL PROTECTED]>
*/
public class RuleColorizer implements Colorizer {
- private final List ruleList = new LinkedList();
+ private Map ruleMap = new HashMap();
private final PropertyChangeSupport colorChangeSupport =
new PropertyChangeSupport(this);
public RuleColorizer() {
}
+
+ public void setColors(Map ruleMap) {
+ this.ruleMap = ruleMap;
+ }
+
+ public Map getColors() {
+ return ruleMap;
+ }
- public void addRules(List rules) {
- for (int i = 0, j = rules.size(); i < j; i++) {
- ruleList.add((ColorRule) rules.get(i));
- }
-
+ 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());
+ }
colorChangeSupport.firePropertyChange("colorrule", false, true);
}
- public void addRule(ColorRule rule) {
- ruleList.add(rule);
+ public void addRule(String expression, ColorRule rule) {
+ ruleMap.put(expression, rule);
colorChangeSupport.firePropertyChange("colorrule", false, true);
}
public void clear() {
- ruleList.clear();
+ ruleMap.clear();
}
- public void removeRule(ColorRule rule) {
- ruleList.remove(rule);
+ public void removeRule(String expression) {
+ ruleMap.remove(expression);
}
public Color getBackgroundColor(LoggingEvent event) {
- for (int i = 0, j = ruleList.size(); i < j; i++) {
- ColorRule rule = (ColorRule) ruleList.get(i);
+ Iterator iter = ruleMap.values().iterator();
+ while (iter.hasNext()) {
+ ColorRule rule = (ColorRule) iter.next();
if ((rule.getBackgroundColor() != null) && (rule.evaluate(event))) {
return rule.getBackgroundColor();
@@ -109,8 +118,9 @@
}
public Color getForegroundColor(LoggingEvent event) {
- for (int i = 0, j = ruleList.size(); i < j; i++) {
- ColorRule rule = (ColorRule) ruleList.get(i);
+ Iterator iter = ruleMap.values().iterator();
+ while (iter.hasNext()) {
+ ColorRule rule = (ColorRule) iter.next();
if ((rule.getForegroundColor() != null) && (rule.evaluate(event))) {
return rule.getForegroundColor();
1.3 +2 -1
jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/AbstractRule.java
Index: AbstractRule.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/rule/AbstractRule.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AbstractRule.java 9 Oct 2003 22:05:21 -0000 1.2
+++ AbstractRule.java 13 Dec 2003 02:57:23 -0000 1.3
@@ -52,6 +52,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
/**
@@ -60,7 +61,7 @@
* @author Paul Smith <[EMAIL PROTECTED]>
* @author Scott Deboy <[EMAIL PROTECTED]>
*/
-public abstract class AbstractRule implements Rule {
+public abstract class AbstractRule implements Rule, Serializable {
private PropertyChangeSupport propertySupport =
new PropertyChangeSupport(this);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]