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]