psmith 2003/12/14 13:27:38 Modified: src/java/org/apache/log4j/chainsaw ChainsawToolBarAndMenus.java LogUI.java ApplicationPreferenceModel.java ApplicationPreferenceModelPanel.java Log: More refactoring of the Application Preference stuff. The state of the Toolbar and Receivers panel is now under the control of the ApplicationPreferenceModel, with all GUI items reacting to changes in that model. The state of visibility of these items can now be saved as a preference. Also resized the App Pref panel and got it to center on screen. Revision Changes Path 1.26 +23 -48 jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java Index: ChainsawToolBarAndMenus.java =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- ChainsawToolBarAndMenus.java 14 Dec 2003 05:04:19 -0000 1.25 +++ ChainsawToolBarAndMenus.java 14 Dec 2003 21:27:38 -0000 1.26 @@ -49,7 +49,6 @@ package org.apache.log4j.chainsaw; -import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Insets; import java.awt.event.ActionEvent; @@ -193,7 +192,15 @@ boolean value = ((Boolean)evt.getNewValue()).booleanValue(); toggleStatusBarCheck.setSelected(value); }}); - } + + logui.getApplicationPreferenceModel().addPropertyChangeListener("receivers", new PropertyChangeListener() { + + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean)evt.getNewValue()).booleanValue(); + showReceiversButton.setSelected(value); + toggleShowReceiversCheck.setSelected(value); + }}); + } /** * @return @@ -422,14 +429,18 @@ viewMenu.setMnemonic('V'); - JCheckBoxMenuItem lockToolbarCheck = - new JCheckBoxMenuItem(lockToolbarAction); - lockToolbarCheck.setSelected(true); - - JCheckBoxMenuItem showToolbarCheck = + final JCheckBoxMenuItem showToolbarCheck = new JCheckBoxMenuItem(toggleToolbarAction); - showToolbarCheck.setSelected(true); + showToolbarCheck.setSelected(logui.getApplicationPreferenceModel().isToolbar()); + + logui.getApplicationPreferenceModel().addPropertyChangeListener("toolbar", new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) + { + boolean value =((Boolean)evt.getNewValue()).booleanValue(); + showToolbarCheck.setSelected(value); + }}); + menuItemClose.setAction(closeAction); JCheckBoxMenuItem pause = new JCheckBoxMenuItem(pauseAction); @@ -662,7 +673,7 @@ final Action action = new AbstractAction("Show Receivers") { public void actionPerformed(ActionEvent arg0) { - logui.toggleReceiversPanel(); + logui.getApplicationPreferenceModel().setReceivers(!logui.getApplicationPreferenceModel().isReceivers()); } }; @@ -712,34 +723,9 @@ */ final Action toggleToolbarAction = new AbstractAction("Show Toolbar") { - private boolean hide = false; public void actionPerformed(ActionEvent e) { - hide = !hide; - - Runnable runnable = null; - - if (hide) { - runnable = - new Runnable() { - public void run() { - logui.getContentPane().remove(toolbar); - logui.getRootPane().repaint(); - logui.getRootPane().revalidate(); - } - }; - } else { - runnable = - new Runnable() { - public void run() { - logui.getContentPane().add(toolbar, BorderLayout.NORTH); - logui.getRootPane().repaint(); - logui.getRootPane().revalidate(); - } - }; - } - - SwingUtilities.invokeLater(runnable); + logui.getApplicationPreferenceModel().setToolbar(!logui.getApplicationPreferenceModel().isToolbar()); } }; @@ -871,23 +857,12 @@ } private void scanState() { -// switch (logui.getTabbedPane().getTabPlacement()) { -// case SwingConstants.TOP: -// tabsTop.setSelected(true); -// -// break; -// -// case SwingConstants.BOTTOM: -// tabsBottom.setSelected(true); -// -// break; -// } toggleStatusBarCheck.setSelected(logui.isStatusBarVisible()); - toggleShowReceiversCheck.setSelected(logui.isReceiverPanelVisible()); + toggleShowReceiversCheck.setSelected(logui.getApplicationPreferenceModel().isReceivers()); logTreePaneButton.setSelected(logui.isLogTreePanelVisible()); - showReceiversButton.setSelected(logui.isReceiverPanelVisible()); + showReceiversButton.setSelected(logui.getApplicationPreferenceModel().isReceivers()); menuItemClose.setSelected(logui.getTabbedPane().containsWelcomePanel()); /** 1.54 +23 -16 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.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- LogUI.java 14 Dec 2003 05:04:19 -0000 1.53 +++ LogUI.java 14 Dec 2003 21:27:38 -0000 1.54 @@ -417,6 +417,22 @@ boolean value = ((Boolean)evt.getNewValue()).booleanValue(); setStatusBarVisible(value); }}); + + applicationPreferenceModel.addPropertyChangeListener("receivers", new PropertyChangeListener() { + + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean)evt.getNewValue()).booleanValue(); + receiversPanel.setVisible(value); + }}); + receiversPanel.setVisible(applicationPreferenceModel.isReceivers()); + + applicationPreferenceModel.addPropertyChangeListener("toolbar", new PropertyChangeListener() { + + public void propertyChange(PropertyChangeEvent evt) { + boolean value = ((Boolean)evt.getNewValue()).booleanValue(); + toolbar.setVisible(value); + }}); + toolbar.setVisible(applicationPreferenceModel.isToolbar()); setStatusBarVisible(applicationPreferenceModel.isStatusBar()); @@ -660,7 +676,11 @@ ((ImageIcon) ChainsawIcons.ICON_PREFERENCES).getImage()); preferencesFrame.getContentPane().add(applicationPreferenceModelPanel); - preferencesFrame.setSize(640, 480); + preferencesFrame.setSize(640, 340); + + Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize(); + preferencesFrame.setLocation(new Point((screenDimension.width/2)-(preferencesFrame.getSize().width/2), (screenDimension.height/2)-(preferencesFrame.getSize().height/2) )); + getSettingsManager().configure( new SettingsListener() { public void loadSettings(LoadSettingsEvent event) { @@ -983,8 +1003,8 @@ dialog.dispose(); applicationPreferenceModel.setShowNoReceiverWarning(!noReceiversWarningPanel.isDontWarnMeAgain()); - if (noReceiversWarningPanel.getModel().isManualMode()) { - toggleReceiversPanel(); + if (noReceiversWarningPanel.getModel().isManualMode() ) { + applicationPreferenceModel.setReceivers(true); } else if (noReceiversWarningPanel.getModel().isSimpleReceiverMode()) { int port = noReceiversWarningPanel.getModel().getSimplePort(); Class receiverClass = @@ -1060,19 +1080,6 @@ getTabbedPane().remove( getTabbedPane().getComponentAt(getTabbedPane().indexOfTab("Welcome"))); } - } - - void toggleReceiversPanel() { - SwingUtilities.invokeLater( - new Runnable() { - public void run() { - receiversPanel.setVisible(!receiversPanel.isVisible()); - receiversPanel.invalidate(); - receiversPanel.validate(); - - getToolBarAndMenus().stateChange(); - } - }); } boolean isReceiverPanelVisible() { 1.6 +41 -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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ApplicationPreferenceModel.java 14 Dec 2003 05:04:19 -0000 1.5 +++ ApplicationPreferenceModel.java 14 Dec 2003 21:27:38 -0000 1.6 @@ -68,6 +68,9 @@ private boolean showNoReceiverWarning ; private boolean statusBar; + private boolean toolbar; + private boolean receivers; + private int responsiveness; @@ -198,6 +201,8 @@ setResponsiveness(event.asInt("Responsiveness")); setTabPlacement(event.asInt("tabPlacement")); setStatusBar(event.asBoolean("statusBar")); + setToolbar(event.asBoolean("toolbar")); + setReceivers(event.asBoolean("receivers")); } /* (non-Javadoc) @@ -209,6 +214,8 @@ event.saveSetting("Responsiveness", getResponsiveness()); event.saveSetting("tabPlacement", getTabPlacement()); event.saveSetting("statusBar", isStatusBar()); + event.saveSetting("toolbar", isToolbar()); + event.saveSetting("receivers", isReceivers()); } /** @@ -222,6 +229,8 @@ setResponsiveness(model.getResponsiveness()); setTabPlacement(model.getTabPlacement()); setStatusBar(model.isStatusBar()); + setToolbar(model.isToolbar()); + setReceivers(model.isReceivers()); } /** * @return Returns the responsiveness. @@ -271,4 +280,36 @@ firePropertyChange("statusBar", oldValue, this.statusBar); } + /** + * @return Returns the receivers. + */ + public final boolean isReceivers() + { + return receivers; + } + /** + * @param receivers The receivers to set. + */ + public final void setReceivers(boolean receivers) + { + boolean oldValue = this.receivers; + this.receivers = receivers; + firePropertyChange("receivers", oldValue, this.receivers); + } + /** + * @return Returns the toolbar. + */ + public final boolean isToolbar() + { + return toolbar; + } + /** + * @param toolbar The toolbar to set. + */ + public final void setToolbar(boolean toolbar) + { + boolean oldValue = this.toolbar; + this.toolbar = toolbar; + firePropertyChange("toolbar", oldValue, this.toolbar); + } } 1.5 +32 -1 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ApplicationPreferenceModelPanel.java 14 Dec 2003 05:04:19 -0000 1.4 +++ ApplicationPreferenceModelPanel.java 14 Dec 2003 21:27:38 -0000 1.5 @@ -170,6 +170,8 @@ private final JRadioButton bottomPlacement = new JRadioButton("Bottom"); private final JCheckBox statusBar = new JCheckBox("Show Status bar"); + private final JCheckBox toolBar = new JCheckBox("Show Toolbar"); + private final JCheckBox receivers = new JCheckBox("Show Receivers"); private VisualsPrefPanel() { super("Visuals"); @@ -198,6 +200,18 @@ uncommittedPreferenceModel.setStatusBar(statusBar.isSelected()); }}); + toolBar.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + uncommittedPreferenceModel.setToolbar(toolBar.isSelected()); + }}); + + receivers.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + uncommittedPreferenceModel.setReceivers(receivers.isSelected()); + }}); + uncommittedPreferenceModel.addPropertyChangeListener("tabPlacement", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -221,7 +235,21 @@ statusBar.setSelected(((Boolean)evt.getNewValue()).booleanValue()); }}); - } + + uncommittedPreferenceModel.addPropertyChangeListener("toolbar", new PropertyChangeListener() { + + public void propertyChange(PropertyChangeEvent evt) { + toolBar.setSelected(((Boolean)evt.getNewValue()).booleanValue()); + + }}); + + uncommittedPreferenceModel.addPropertyChangeListener("receivers", new PropertyChangeListener() { + + public void propertyChange(PropertyChangeEvent evt) { + receivers.setSelected(((Boolean)evt.getNewValue()).booleanValue()); + + }}); + } /** * @@ -246,6 +274,9 @@ add(tabPlacementBox); add(statusBar); + add(receivers); + add(toolBar); + }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]