psmith      2003/10/02 01:28:56

  Modified:    src/java/org/apache/log4j/chainsaw
                        LogPanelPreferenceModel.java
  Log:
  Simplified the use of date format patterns in this model.
  
  Added the Level's as Icon/Text property.
  
  Revision  Changes    Path
  1.3       +119 -88   
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelPreferenceModel.java
  
  Index: LogPanelPreferenceModel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelPreferenceModel.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LogPanelPreferenceModel.java      1 Oct 2003 23:35:43 -0000       1.2
  +++ LogPanelPreferenceModel.java      2 Oct 2003 08:28:56 -0000       1.3
  @@ -51,102 +51,133 @@
    */
   package org.apache.log4j.chainsaw;
   
  +import org.apache.log4j.chainsaw.prefs.SettingsManager;
  +
   import java.beans.PropertyChangeListener;
   import java.beans.PropertyChangeSupport;
   
  +import java.util.ArrayList;
  +import java.util.Collection;
  +import java.util.Collections;
  +import java.util.Iterator;
  +import java.util.Map;
  +import java.util.Properties;
  +
   
   /**
    *  Used to encapsulate all the preferences for a given LogPanel
    * @author Paul Smith
    */
   public class LogPanelPreferenceModel {
  -     private final PropertyChangeSupport propertySupport = new 
PropertyChangeSupport(this);
  -     
  -     private boolean useISO8601Format = true;
  -     private String alternateDateFormatPattern = "HH:mm:ss"; 
  -     /**
  -      * Returns the Date Pattern string for the alternate date formatter.
  -      * @return
  -      */
  -     public final String getAlternateDateFormatPattern() {
  -             return alternateDateFormatPattern;
  -     }
  -
  -     /**
  -      * Configures the Date pattern to use when using the alternate
  -      * pattern
  -      * @param alternateDateFormatPattern
  -      */
  -     public final void setAlternateDateFormatPattern(String 
alternateDateFormatPattern) {
  -             String oldVal = this.alternateDateFormatPattern;
  -             this.alternateDateFormatPattern = alternateDateFormatPattern;
  -             propertySupport.firePropertyChange("alternateDateFormatPattern", 
oldVal, this.alternateDateFormatPattern);
  -     }
  -
  -     /**
  -      * Whether to use the faster ISO8601Format object for
  -      * renderring dates, or not.
  -      * @return
  -      */
  -     public boolean isUseISO8601Format() {
  -             return useISO8601Format;
  -     }
  -
  -     /**
  -      * Sets whether to use the ISO8601Format object for rendering 
  -      * dates.
  -      * @param useISO8601Format
  -      */
  -     public void setUseISO8601Format(boolean useISO8601Format) {
  -             boolean oldVal = this.useISO8601Format;
  -             this.useISO8601Format = useISO8601Format;
  -             propertySupport.firePropertyChange("useISO8601Format", oldVal, 
this.useISO8601Format);
  -     }
  -
  -     /**
  -      * @param listener
  -      */
  -     public synchronized void addPropertyChangeListener(PropertyChangeListener 
listener) {
  -             propertySupport.addPropertyChangeListener(listener);
  -     }
  -
  -     /**
  -      * @param propertyName
  -      * @param listener
  -      */
  -     public synchronized void addPropertyChangeListener(
  -             String propertyName,
  -             PropertyChangeListener listener) {
  -             propertySupport.addPropertyChangeListener(propertyName, listener);
  -     }
  -
  -     /**
  -      * @param listener
  -      */
  -     public synchronized void removePropertyChangeListener(PropertyChangeListener 
listener) {
  -             propertySupport.removePropertyChangeListener(listener);
  -     }
  -
  -     /**
  -      * @param propertyName
  -      * @param listener
  -      */
  -     public synchronized void removePropertyChangeListener(
  -             String propertyName,
  -             PropertyChangeListener listener) {
  -             propertySupport.removePropertyChangeListener(propertyName, listener);
  -     }
  -
  -     /**
  -      * Applies all the properties of another model to this model
  -      * 
  -      * @param uncommitedPreferenceModel the model to copy
  -      * all the properties from
  -      */
  -     public void apply(LogPanelPreferenceModel that) {
  -             setAlternateDateFormatPattern(that.getAlternateDateFormatPattern());
  -             setUseISO8601Format(that.isUseISO8601Format());
  -             
  -     }
  +  public static final String ISO8601 = "ISO8601";
  +  public static final Collection DATE_FORMATS;
  +
  +  static {
  +    Collection list = new ArrayList();
  +
  +    Properties properties = SettingsManager.getInstance().getDefaultSettings();
   
  +    for (Iterator iter = properties.entrySet().iterator(); iter.hasNext();) {
  +      Map.Entry entry = (Map.Entry) iter.next();
  +
  +      if (entry.getKey().toString().startsWith("DateFormat")) {
  +        list.add(entry.getValue());
  +      }
  +    }
  +
  +    DATE_FORMATS = Collections.unmodifiableCollection(list);
  +  }
  +
  +  private final PropertyChangeSupport propertySupport =
  +    new PropertyChangeSupport(this);
  +  private String dateFormatPattern = ISO8601;
  +  private boolean levelIcons = true;
  +
  +  /**
  +   * Returns the Date Pattern string for the alternate date formatter.
  +   * @return
  +   */
  +  public final String getDateFormatPattern() {
  +    return dateFormatPattern;
  +  }
  +
  +  /**
  +   * @param dateFormatPattern
  +   */
  +  public final void setDateFormatPattern(String dateFormatPattern) {
  +    String oldVal = this.dateFormatPattern;
  +    this.dateFormatPattern = dateFormatPattern;
  +    propertySupport.firePropertyChange(
  +      "dateFormatPattern", oldVal, this.dateFormatPattern);
  +  }
  +
  +  /**
  +   * @param listener
  +   */
  +  public synchronized void addPropertyChangeListener(
  +    PropertyChangeListener listener) {
  +    propertySupport.addPropertyChangeListener(listener);
  +  }
  +
  +  /**
  +   * @param propertyName
  +   * @param listener
  +   */
  +  public synchronized void addPropertyChangeListener(
  +    String propertyName, PropertyChangeListener listener) {
  +    propertySupport.addPropertyChangeListener(propertyName, listener);
  +  }
  +
  +  /**
  +   * @param listener
  +   */
  +  public synchronized void removePropertyChangeListener(
  +    PropertyChangeListener listener) {
  +    propertySupport.removePropertyChangeListener(listener);
  +  }
  +
  +  /**
  +   * @param propertyName
  +   * @param listener
  +   */
  +  public synchronized void removePropertyChangeListener(
  +    String propertyName, PropertyChangeListener listener) {
  +    propertySupport.removePropertyChangeListener(propertyName, listener);
  +  }
  +
  +  /**
  +   * Applies all the properties of another model to this model
  +   *
  +   * @param uncommitedPreferenceModel the model to copy
  +   * all the properties from
  +   */
  +  public void apply(LogPanelPreferenceModel that) {
  +    setDateFormatPattern(that.getDateFormatPattern());
  +    setLevelIcons(that.isLevelIcons());
  +  }
  +
  +  /**
  +   * Returns true if this the fast ISO8601DateFormat object
  +   * should be used instead of SimpleDateFormat
  +   * @return
  +   */
  +  public boolean isUseISO8601Format() {
  +    return getDateFormatPattern().equals(ISO8601);
  +  }
  +
  +  /**
  +   * @return
  +   */
  +  public boolean isLevelIcons() {
  +    return levelIcons;
  +  }
  +
  +  /**
  +   * @param levelIcons
  +   */
  +  public void setLevelIcons(boolean levelIcons) {
  +    boolean oldVal = this.levelIcons;
  +    this.levelIcons = levelIcons;
  +    propertySupport.firePropertyChange("levelIcons", oldVal, this.levelIcons);
  +  }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to