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]

Reply via email to