psmith      2003/12/02 15:03:31

  Modified:    src/java/org/apache/log4j/chainsaw
                        LogPanelPreferencePanel.java LogPanel.java
                        LogPanelPreferenceModel.java
  Log:
  Added support for a Custom Date formatter.
  
  Currently the layout of the text box is not ideal, but functional.
  
  I believe that any panel preference file stored in the users
  home directory will not load as the model class has changed
  causing a mismatched serialId.  You will have to reset
  your preferences.  Apologies.
  
  Revision  Changes    Path
  1.8       +61 -0     
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
  
  Index: LogPanelPreferencePanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- LogPanelPreferencePanel.java      9 Nov 2003 09:59:28 -0000       1.7
  +++ LogPanelPreferencePanel.java      2 Dec 2003 23:03:31 -0000       1.8
  @@ -80,6 +80,8 @@
   import javax.swing.ListCellRenderer;
   import javax.swing.UIManager;
   import javax.swing.border.Border;
  +import javax.swing.event.DocumentEvent;
  +import javax.swing.event.DocumentListener;
   import javax.swing.event.TreeSelectionEvent;
   import javax.swing.event.TreeSelectionListener;
   import javax.swing.tree.DefaultMutableTreeNode;
  @@ -321,6 +323,17 @@
         dateFormatPanel.setLayout(
           new BoxLayout(dateFormatPanel, BoxLayout.Y_AXIS));
   
  +      final JTextField  customFormatText = new JTextField();
  +      final JRadioButton rdCustom =
  +      new JRadioButton(
  +      "Custom Format");
  +      rdCustom.addActionListener(
  +          new ActionListener() {
  +            public void actionPerformed(ActionEvent e) {
  +              customFormatText.setEnabled(rdCustom.isSelected());
  +            }
  +          });
  +      
         ButtonGroup bgDateFormat = new ButtonGroup();
         final JRadioButton rdISO =
           new JRadioButton(
  @@ -329,6 +342,7 @@
           new ActionListener() {
             public void actionPerformed(ActionEvent e) {
               getModel().setDateFormatPattern("ISO8601");
  +            customFormatText.setEnabled(rdCustom.isSelected());
             }
           });
         rdISO.setSelected(getModel().isUseISO8601Format());
  @@ -352,6 +366,7 @@
             new ActionListener() {
               public void actionPerformed(ActionEvent e) {
                 getModel().setDateFormatPattern(format);
  +              customFormatText.setEnabled(rdCustom.isSelected());
               }
             });
           getModel().addPropertyChangeListener(
  @@ -362,8 +377,54 @@
                   getModel().getDateFormatPattern().equals(format));
               }
             });
  +        
           dateFormatPanel.add(rdFormat);
         }
  +      
  +      // add a custom date format
  +      if(getModel().isCustomDateFormat())
  +      {
  +        customFormatText.setText(getModel().getDateFormatPattern());
  +      }
  +      customFormatText.getDocument().addDocumentListener(new DocumentListener() {
  +
  +        public void textChanged()
  +        {
  +          getModel().setDateFormatPattern(customFormatText.getText());
  +          
  +        }
  +
  +        public void changedUpdate(DocumentEvent e)
  +        {
  +          textChanged();
  +          
  +        }
  +
  +        public void insertUpdate(DocumentEvent e)
  +        {
  +          textChanged();
  +          
  +        }
  +
  +        public void removeUpdate(DocumentEvent e)
  +        {
  +          textChanged();
  +          
  +        }});
  +      
  +      rdCustom.setSelected(getModel().isCustomDateFormat());
  +      getModel().addPropertyChangeListener(
  +          "dateFormatPattern",
  +          new PropertyChangeListener() {
  +            public void propertyChange(PropertyChangeEvent evt) {
  +              rdCustom.setSelected(getModel().isCustomDateFormat());
  +            }
  +          });
  +      bgDateFormat.add(rdCustom);
  +
  +      dateFormatPanel.add(rdCustom);
  +      dateFormatPanel.add(customFormatText);
  +      
   
         add(dateFormatPanel);
   
  
  
  
  1.27      +1 -1      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.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- LogPanel.java     1 Dec 2003 01:57:31 -0000       1.26
  +++ LogPanel.java     2 Dec 2003 23:03:31 -0000       1.27
  @@ -473,7 +473,7 @@
               (LogPanelPreferenceModel) evt.getSource();
   
             isoButton.setSelected(model.isUseISO8601Format());
  -          simpleTimeButton.setSelected(!model.isUseISO8601Format());
  +          simpleTimeButton.setSelected(!model.isUseISO8601Format() && 
!model.isCustomDateFormat());
   
             if (model.isUseISO8601Format()) {
               renderer.setDateFormatter(new ISO8601DateFormat());
  
  
  
  1.8       +8 -0      
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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- LogPanelPreferenceModel.java      1 Dec 2003 01:57:31 -0000       1.7
  +++ LogPanelPreferenceModel.java      2 Dec 2003 23:03:31 -0000       1.8
  @@ -337,4 +337,12 @@
       propertySupport.firePropertyChange(
         "logTreePanelVisible", oldValue, this.logTreePanelVisible);
     }
  +
  +  /**
  +   * @return
  +   */
  +  public boolean isCustomDateFormat()
  +  {
  +    return !DATE_FORMATS.contains(getDateFormatPattern()) && !isUseISO8601Format();
  +  }
   }
  
  
  

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

Reply via email to