psmith 2003/12/16 13:57:40 Modified: src/java/org/apache/log4j/chainsaw LogPanelPreferencePanel.java LogPanel.java Log: added the Scroll To Bottom to the pref GUI. Also moved all the listener setup code for the Formatting pref panel into it's own method as it was getting a bit hard to read. Revision Changes Path 1.16 +144 -104 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.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- LogPanelPreferencePanel.java 16 Dec 2003 11:16:34 -0000 1.15 +++ LogPanelPreferencePanel.java 16 Dec 2003 21:57:40 -0000 1.16 @@ -172,10 +172,145 @@ "Show Event Detail Tooltips"); private final JCheckBox detailPanelVisible = new JCheckBox( "Show Event Detail panel"); - + private final JCheckBox scrollToBottom= new JCheckBox( + "Scroll to bottom (view tracks with new events)"); + private JRadioButton rdCustom = new JRadioButton("Custom Format"); + private JTextField customFormatText = new JTextField("", 10); + private final JRadioButton rdISO = new JRadioButton( + "<html><b>Fast</b> ISO 8601 format (yyyy-MM-dd HH:mm:ss)</html>"); + private final JRadioButton rdLevelIcons = new JRadioButton("Icons"); + private final JRadioButton rdLevelText = new JRadioButton("Text"); + private FormattingPanel() { super("Formatting"); this.initComponents(); + setupListeners(); + } + + /** + * + */ + private void setupListeners() + { + rdCustom.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + customFormatText.setEnabled(rdCustom.isSelected()); + customFormatText.setText(""); + customFormatText.grabFocus(); + } + }); + getModel().addPropertyChangeListener("dateFormatPattern", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + /** + * we need to make sure we are not reacting to the user typing, so only do this + * if the text box is not the same as the model + */ + if (getModel().isCustomDateFormat() && + !customFormatText.getText().equals(evt.getNewValue() + .toString())) { + customFormatText.setText(getModel() + .getDateFormatPattern()); + rdCustom.setSelected(true); + customFormatText.setEnabled(true); + } else { + rdCustom.setSelected(false); + } + } + }); + + + rdISO.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + getModel().setDateFormatPattern("ISO8601"); + customFormatText.setEnabled(rdCustom.isSelected()); + } + }); + getModel().addPropertyChangeListener("dateFormatPattern", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + rdISO.setSelected(getModel().isUseISO8601Format()); + } + }); + + + 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(); + } + }); + + ActionListener levelIconListener = new ActionListener() { + public void actionPerformed(ActionEvent e) { + getModel().setLevelIcons(rdLevelIcons.isSelected()); + } + }; + + rdLevelIcons.addActionListener(levelIconListener); + rdLevelText.addActionListener(levelIconListener); + + getModel().addPropertyChangeListener("levelIcons", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean) evt.getNewValue()).booleanValue(); + rdLevelIcons.setSelected(value); + rdLevelText.setSelected(!value); + } + }); + toolTips.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + getModel().setToolTips(toolTips.isSelected()); + } + }); + getModel().addPropertyChangeListener("toolTips", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean) evt.getNewValue()).booleanValue(); + toolTips.setSelected(value); + } + }); + + detailPanelVisible.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + getModel().setDetailPaneVisible(detailPanelVisible.isSelected()); + } + }); + + getModel().addPropertyChangeListener("detailPaneVisible", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean) evt.getNewValue()).booleanValue(); + detailPanelVisible.setSelected(value); + } + }); + + scrollToBottom.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + getModel().setScrollToBottom(scrollToBottom.isSelected()); + } + }); + + getModel().addPropertyChangeListener("scrollToBottom", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean) evt.getNewValue()).booleanValue(); + scrollToBottom.setSelected(value); + } + }); + + } private void initComponents() { @@ -183,6 +318,7 @@ add(toolTips); add(detailPanelVisible); + add(scrollToBottom); JPanel dateFormatPanel = new JPanel(); dateFormatPanel.setBorder(BorderFactory.createTitledBorder( @@ -191,59 +327,21 @@ BoxLayout.Y_AXIS)); dateFormatPanel.setAlignmentX(Component.LEFT_ALIGNMENT); - final JTextField customFormatText = new JTextField("", 10); customFormatText.setPreferredSize(new Dimension(100, 20)); customFormatText.setMaximumSize(customFormatText.getPreferredSize()); customFormatText.setMinimumSize(customFormatText.getPreferredSize()); customFormatText.setEnabled(false); - final JRadioButton rdCustom = new JRadioButton("Custom Format"); - rdCustom.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - customFormatText.setEnabled(rdCustom.isSelected()); - customFormatText.setText(""); - customFormatText.grabFocus(); - } - }); + rdCustom.setSelected(getModel().isCustomDateFormat()); - getModel().addPropertyChangeListener("dateFormatPattern", - new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - /** - * we need to make sure we are not reacting to the user typing, so only do this - * if the text box is not the same as the model - */ - if (getModel().isCustomDateFormat() && - !customFormatText.getText().equals(evt.getNewValue() - .toString())) { - customFormatText.setText(getModel() - .getDateFormatPattern()); - rdCustom.setSelected(true); - customFormatText.setEnabled(true); - } else { - rdCustom.setSelected(false); - } - } - }); + ButtonGroup bgDateFormat = new ButtonGroup(); - final JRadioButton rdISO = new JRadioButton( - "<html><b>Fast</b> ISO 8601 format (yyyy-MM-dd HH:mm:ss)</html>"); - rdISO.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getModel().setDateFormatPattern("ISO8601"); - customFormatText.setEnabled(rdCustom.isSelected()); - } - }); + rdISO.setAlignmentX(0); rdISO.setSelected(getModel().isUseISO8601Format()); - getModel().addPropertyChangeListener("dateFormatPattern", - new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - rdISO.setSelected(getModel().isUseISO8601Format()); - } - }); + bgDateFormat.add(rdISO); dateFormatPanel.add(rdISO); @@ -278,23 +376,6 @@ customFormatText.setEnabled(true); } - 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.setAlignmentX(0); bgDateFormat.add(rdCustom); @@ -319,28 +400,10 @@ levelFormatPanel.setAlignmentX(Component.LEFT_ALIGNMENT); ButtonGroup bgLevel = new ButtonGroup(); - final JRadioButton rdLevelIcons = new JRadioButton("Icons"); - final JRadioButton rdLevelText = new JRadioButton("Text"); bgLevel.add(rdLevelIcons); bgLevel.add(rdLevelText); - ActionListener levelIconListener = new ActionListener() { - public void actionPerformed(ActionEvent e) { - getModel().setLevelIcons(rdLevelIcons.isSelected()); - } - }; - - rdLevelIcons.addActionListener(levelIconListener); - rdLevelText.addActionListener(levelIconListener); - - getModel().addPropertyChangeListener("levelIcons", - new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - boolean value = ((Boolean) evt.getNewValue()).booleanValue(); - rdLevelIcons.setSelected(value); - rdLevelText.setSelected(!value); - } - }); + rdLevelIcons.setSelected(getModel().isLevelIcons()); levelFormatPanel.add(rdLevelIcons); @@ -350,33 +413,10 @@ toolTips.setSelected(getModel().isToolTips()); - toolTips.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getModel().setToolTips(toolTips.isSelected()); - } - }); - getModel().addPropertyChangeListener("toolTips", - new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - boolean value = ((Boolean) evt.getNewValue()).booleanValue(); - toolTips.setSelected(value); - } - }); + detailPanelVisible.setSelected(getModel().isDetailPaneVisible()); - detailPanelVisible.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getModel().setDetailPaneVisible(detailPanelVisible.isSelected()); - } - }); - - getModel().addPropertyChangeListener("detailPaneVisible", - new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - boolean value = ((Boolean) evt.getNewValue()).booleanValue(); - detailPanelVisible.setSelected(value); - } - }); + JPanel loggerFormatPanel = new JPanel(); loggerFormatPanel.setLayout(new BoxLayout(loggerFormatPanel, 1.39 +11 -3 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.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- LogPanel.java 16 Dec 2003 11:16:34 -0000 1.38 +++ LogPanel.java 16 Dec 2003 21:57:40 -0000 1.39 @@ -901,13 +901,21 @@ } }); - final JCheckBoxMenuItem menuItemScrollBottom = new JCheckBoxMenuItem("Scroll to bottom", - scrollToBottom.isScrolled()); + final JCheckBoxMenuItem menuItemScrollBottom = new JCheckBoxMenuItem("Scroll to bottom"); menuItemScrollBottom.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { - scrollToBottom.scroll(menuItemScrollBottom.isSelected()); + getPreferenceModel().setScrollToBottom(menuItemScrollBottom.isSelected()); } }); + getPreferenceModel().addPropertyChangeListener("scrollToBottom", new PropertyChangeListener() { + + public void propertyChange(PropertyChangeEvent evt) + { + boolean value = ((Boolean)evt.getNewValue()).booleanValue(); + menuItemScrollBottom.setSelected(value); + scrollToBottom.scroll(value); + }}); + menuItemScrollBottom.setIcon(new ImageIcon( ChainsawIcons.SCROLL_TO_BOTTOM));
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]