psmith 2003/12/19 21:27:16 Modified: src/java/org/apache/log4j/chainsaw LogUI.java ApplicationPreferenceModel.java ApplicationPreferenceModelPanel.java src/java/org/apache/log4j/chainsaw/prefs default.properties Log: added a confirm on exit preference item, on by default. Revision Changes Path 1.62 +6 -0 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java Index: LogUI.java =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- LogUI.java 20 Dec 2003 04:59:53 -0000 1.61 +++ LogUI.java 20 Dec 2003 05:27:16 -0000 1.62 @@ -1215,6 +1215,12 @@ * Shutsdown by ensuring the Appender gets a chance to close. */ private void shutdown() { + if(getApplicationPreferenceModel().isConfirmExit()) { + if(JOptionPane.showConfirmDialog(LogUI.this, "Are you sure you want to exit Chainsaw?", "Confirm Exit", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE) != JOptionPane.YES_OPTION) { + return; + } + } + JWindow progress = new JWindow(); final ProgressPanel panel = new ProgressPanel(1, 3, "Shutting down"); progress.getContentPane().add(panel); 1.10 +20 -0 jakarta-log4j/src/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java Index: ApplicationPreferenceModel.java =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ApplicationPreferenceModel.java 19 Dec 2003 10:12:26 -0000 1.9 +++ ApplicationPreferenceModel.java 20 Dec 2003 05:27:16 -0000 1.10 @@ -70,6 +70,7 @@ private boolean statusBar; private boolean toolbar; private boolean receivers; + private boolean confirmExit; private String lookAndFeelClassName; @@ -189,6 +190,7 @@ setToolbar(event.asBoolean("toolbar")); setReceivers(event.asBoolean("receivers")); setLookAndFeelClassName(event.getSetting("lookAndFeelClassName")); + setConfirmExit(event.asBoolean("confirmExit")); } /* (non-Javadoc) @@ -203,6 +205,7 @@ event.saveSetting("toolbar", isToolbar()); event.saveSetting("receivers", isReceivers()); event.saveSetting("lookAndFeelClassName", getLookAndFeelClassName()); + event.saveSetting("confirmExit",isConfirmExit()); } /** @@ -219,6 +222,7 @@ setToolbar(model.isToolbar()); setReceivers(model.isReceivers()); setLookAndFeelClassName(model.getLookAndFeelClassName()); + setConfirmExit(model.isConfirmExit()); } /** * @return Returns the responsiveness. @@ -314,6 +318,22 @@ String oldValue = this.lookAndFeelClassName; this.lookAndFeelClassName = lookAndFeelClassName; firePropertyChange("lookAndFeelClassName", oldValue, this.lookAndFeelClassName); + } + + /** + * @return Returns the confirmExit. + */ + public final boolean isConfirmExit() { + return confirmExit; + } + + /** + * @param confirmExit The confirmExit to set. + */ + public final void setConfirmExit(boolean confirmExit) { + boolean oldValue = this.confirmExit; + this.confirmExit = confirmExit; + firePropertyChange("confirmExit", oldValue, this.confirmExit); } } 1.8 +44 -16 jakarta-log4j/src/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java Index: ApplicationPreferenceModelPanel.java =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ApplicationPreferenceModelPanel.java 19 Dec 2003 10:13:15 -0000 1.7 +++ ApplicationPreferenceModelPanel.java 20 Dec 2003 05:27:16 -0000 1.8 @@ -270,22 +270,26 @@ ((Boolean) evt.getNewValue()).booleanValue()); } }); - - uncommittedPreferenceModel.addPropertyChangeListener("lookAndFeelClassName", new PropertyChangeListener(){ - public void propertyChange(PropertyChangeEvent evt) { + uncommittedPreferenceModel.addPropertyChangeListener( + "lookAndFeelClassName", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + String lf = evt.getNewValue().toString(); + + Enumeration enumeration = lookAndFeelGroup.getElements(); + + while (enumeration.hasMoreElements()) { + JRadioButton button = (JRadioButton) enumeration.nextElement(); + + if (button.getName().equals(lf)) { + button.setSelected(true); - String lf = evt.getNewValue().toString(); - - Enumeration enumeration = lookAndFeelGroup.getElements(); - while(enumeration.hasMoreElements()) { - JRadioButton button = (JRadioButton) enumeration.nextElement(); - if(button.getName().equals(lf)) { - button.setSelected(true); - break; - } - } - }}); + break; + } + } + } + }); } /** @@ -352,9 +356,12 @@ } catch (Exception e) { LogLog.debug("Can't find new GTK L&F, might be Windows, or <JDK1.4.2"); } + add(lfPanel); - - add(new JLabel("Look and Feel change will apply the next time you start Chainsaw")); + + add( + new JLabel( + "Look and Feel change will apply the next time you start Chainsaw")); } } @@ -367,6 +374,7 @@ new JCheckBox("Prompt me on startup if there are no Receivers defined"); private final JSlider responsiveSlider = new JSlider(JSlider.HORIZONTAL, 1, 4, 2); + private final JCheckBox confirmExit = new JCheckBox("Confirm Exit"); Dictionary sliderLabelMap = new Hashtable(); /** @@ -388,6 +396,8 @@ p.add(showNoReceiverWarning); p.add(Box.createHorizontalGlue()); + confirmExit.setToolTipText("Is set, you will be prompted to confirm the exit Chainsaw"); + setupInitialValues(); setupListeners(); @@ -401,6 +411,7 @@ p1.add(identifierExpression); add(p1); add(p); + add(confirmExit); add(Box.createVerticalGlue()); } @@ -480,6 +491,23 @@ LogLog.debug("Adjust responsiveness to " + value); uncommittedPreferenceModel.setResponsiveness(value); } + } + }); + + uncommittedPreferenceModel.addPropertyChangeListener( + "confirmExit", + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean) evt.getNewValue()).booleanValue(); + confirmExit.setSelected(value); + } + }); + + confirmExit.addActionListener( + new ActionListener() { + public void actionPerformed(ActionEvent e) { + uncommittedPreferenceModel.setConfirmExit( + confirmExit.isSelected()); } }); } 1.11 +1 -0 jakarta-log4j/src/java/org/apache/log4j/chainsaw/prefs/default.properties Index: default.properties =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/prefs/default.properties,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- default.properties 19 Dec 2003 10:11:10 -0000 1.10 +++ default.properties 20 Dec 2003 05:27:16 -0000 1.11 @@ -22,6 +22,7 @@ showNoReceiverWarning=true identifierExpression=PROP.hostname - PROP.application lookAndFeelClassName= +confirmExit=true # These are the default LogPanel settings dateFormatPattern=ISO8601
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]