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]