psmith      2003/12/11 18:25:53

  Modified:    src/java/org/apache/log4j/chainsaw
                        ChainsawToolBarAndMenus.java LogUI.java
                        ApplicationPreferenceModel.java
                        ApplicationPreferenceModelPanel.java
  Log:
  Fixed previous bug of a checkbox being out of state with
  the pref model.
  
  moved the responiveness property into tho Pref model, and
  removed it from the View menu and placed it in the
  Preference panel.
  
  Responsiveness is now a value from 1-4, older style
  values in Milliseconds are automatically converted. (This
  change seems to look nicer, a bit friendlier)
  
  Other View menu options will be moved into the pref Model, but
  some will still be changable via the view menu directly
  as well as the Pref panel.
  
  Revision  Changes    Path
  1.22      +50 -52    
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.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ChainsawToolBarAndMenus.java      11 Dec 2003 22:31:28 -0000      1.21
  +++ ChainsawToolBarAndMenus.java      12 Dec 2003 02:25:53 -0000      1.22
  @@ -522,8 +522,6 @@
         new JMenu(ChainsawToolBarAndMenus.SETTING_RESPONSIVENESS);
       responsiveNess.setMnemonic('R');
   
  -    responsiveNess.add(createResponsivenessSlider());
  -
       final JMenu lookAndFeelMenu = new JMenu("Look & Feel");
       lookAndFeelMenu.setMnemonic('L');
   
  @@ -649,56 +647,56 @@
       return pauseAction;
     }
   
  -  private JComponent createResponsivenessSlider() {
  -    JPanel responsiveNessPanel = new JPanel();
  -    BoxLayout layout = new BoxLayout(responsiveNessPanel, BoxLayout.Y_AXIS);
  -
  -    responsiveNessPanel.setLayout(layout);
  -
  -    responsiveSlider.setAlignmentY(JComponent.CENTER_ALIGNMENT);
  -    responsiveSlider.setAlignmentX(JComponent.CENTER_ALIGNMENT);
  -
  -    responsiveSlider.setMinorTickSpacing(250);
  -    responsiveSlider.setMajorTickSpacing(1000);
  -    responsiveSlider.setToolTipText(
  -      "Adjust to set the responsiveness of the app.  How often the view is 
updated.");
  -    responsiveSlider.setSnapToTicks(true);
  -    responsiveSlider.setPaintTicks(true);
  -
  -    responsiveSlider.setPaintLabels(true);
  -    responsiveSlider.setPaintTrack(true);
  -    responsiveSlider.setInverted(true);
  -    responsiveSlider.getModel().addChangeListener(
  -      new ChangeListener() {
  -        public void stateChanged(ChangeEvent e) {
  -          if (responsiveSlider.getValueIsAdjusting()) {
  -            /**
  -             * We'll wait until it stops.
  -             */
  -          } else {
  -            int value = responsiveSlider.getValue();
  -
  -            if (value == 0) {
  -              value = 100;
  -            }
  -
  -            System.out.println("Adjust responsiveness to " + value + "ms");
  -            logui.handler.setQueueInterval(value);
  -          }
  -        }
  -      });
  -
  -    JLabel l1 = new JLabel("Update frequently (100ms)");
  -    JLabel l2 = new JLabel("Update infrequently (5 seconds)");
  -    responsiveNessPanel.add(l1);
  -
  -    JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
  -    panel.add(responsiveSlider);
  -    responsiveNessPanel.add(panel);
  -    responsiveNessPanel.add(l2);
  -
  -    return responsiveNessPanel;
  -  }
  +//  private JComponent createResponsivenessSlider() {
  +//    JPanel responsiveNessPanel = new JPanel();
  +//    BoxLayout layout = new BoxLayout(responsiveNessPanel, BoxLayout.Y_AXIS);
  +//
  +//    responsiveNessPanel.setLayout(layout);
  +//
  +//    responsiveSlider.setAlignmentY(JComponent.CENTER_ALIGNMENT);
  +//    responsiveSlider.setAlignmentX(JComponent.CENTER_ALIGNMENT);
  +//
  +//    responsiveSlider.setMinorTickSpacing(250);
  +//    responsiveSlider.setMajorTickSpacing(1000);
  +//    responsiveSlider.setToolTipText(
  +//      "Adjust to set the responsiveness of the app.  How often the view is 
updated.");
  +//    responsiveSlider.setSnapToTicks(true);
  +//    responsiveSlider.setPaintTicks(true);
  +//
  +//    responsiveSlider.setPaintLabels(true);
  +//    responsiveSlider.setPaintTrack(true);
  +//    responsiveSlider.setInverted(true);
  +//    responsiveSlider.getModel().addChangeListener(
  +//      new ChangeListener() {
  +//        public void stateChanged(ChangeEvent e) {
  +//          if (responsiveSlider.getValueIsAdjusting()) {
  +//            /**
  +//             * We'll wait until it stops.
  +//             */
  +//          } else {
  +//            int value = responsiveSlider.getValue();
  +//
  +//            if (value == 0) {
  +//              value = 100;
  +//            }
  +//
  +//            System.out.println("Adjust responsiveness to " + value + "ms");
  +//            logui.handler.setQueueInterval(value);
  +//          }
  +//        }
  +//      });
  +//
  +//    JLabel l1 = new JLabel("Update frequently (100ms)");
  +//    JLabel l2 = new JLabel("Update infrequently (5 seconds)");
  +//    responsiveNessPanel.add(l1);
  +//
  +//    JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
  +//    panel.add(responsiveSlider);
  +//    responsiveNessPanel.add(panel);
  +//    responsiveNessPanel.add(l2);
  +//
  +//    return responsiveNessPanel;
  +//  }
   
     private Action createShowPreferencesAction() {
       Action showPreferences =
  
  
  
  1.50      +7 -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.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- LogUI.java        11 Dec 2003 22:31:29 -0000      1.49
  +++ LogUI.java        12 Dec 2003 02:25:53 -0000      1.50
  @@ -397,6 +397,13 @@
                handler.setIdentifierExpression(evt.getNewValue().toString());
                }
        } );
  +    applicationPreferenceModel.addPropertyChangeListener("responsiveness", new 
PropertyChangeListener() {
  +      public void propertyChange(PropertyChangeEvent evt) {
  +        int value = ((Integer)evt.getNewValue()).intValue();
  +        handler.setQueueInterval((value*1000)-750);
  +      }
  +    } );
  +    
       
       final SocketNodeEventListener socketListener =
         new SocketNodeEventListener() {
  
  
  
  1.4       +23 -2     
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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ApplicationPreferenceModel.java   11 Dec 2003 22:31:29 -0000      1.3
  +++ ApplicationPreferenceModel.java   12 Dec 2003 02:25:53 -0000      1.4
  @@ -66,7 +66,9 @@
    */
   class ApplicationPreferenceModel implements SettingsListener {
   
  -    private boolean showNoReceiverWarning = true;
  +    private boolean showNoReceiverWarning  ;
  +    private int responsiveness;
  +    
       private String identifierExpression = Constants.HOSTNAME_KEY + " - " + 
Constants.APPLICATION_KEY; 
   
       private final PropertyChangeSupport propertySupport =
  @@ -190,6 +192,8 @@
       public void loadSettings(LoadSettingsEvent event) {
          setShowNoReceiverWarning(event.asBoolean("showNoReceiverWarning"));
          setIdentifierExpression(event.getSetting("identifierExpression"));
  +       setResponsiveness(event.asInt("Responsiveness"));
  +       
       }
   
       /* (non-Javadoc)
  @@ -198,6 +202,7 @@
       public void saveSettings(SaveSettingsEvent event) {
           event.saveSetting("showNoReceiverWarning", isShowNoReceiverWarning());
           event.saveSetting("identifierExpression", getIdentifierExpression());
  +        event.saveSetting("Responsiveness", getResponsiveness());
       }
   
       /**
  @@ -208,6 +213,22 @@
       {
         setIdentifierExpression(model.getIdentifierExpression());
         setShowNoReceiverWarning(model.isShowNoReceiverWarning());
  -      
  +      setResponsiveness(model.getResponsiveness());
  +    }
  +    /**
  +     * @return Returns the responsiveness.
  +     */
  +    public final int getResponsiveness()
  +    {
  +      return responsiveness;
  +    }
  +    /**
  +     * @param responsiveness The responsiveness to set.
  +     */
  +    public final void setResponsiveness(int responsiveness)
  +    {
  +      int oldvalue = this.responsiveness;
  +      this.responsiveness = responsiveness;
  +      firePropertyChange("responsiveness", oldvalue, responsiveness);
       }
   }
  
  
  
  1.2       +120 -7    
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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ApplicationPreferenceModelPanel.java      11 Dec 2003 22:31:29 -0000      1.1
  +++ ApplicationPreferenceModelPanel.java      12 Dec 2003 02:25:53 -0000      1.2
  @@ -45,19 +45,33 @@
    * on  behalf of the Apache Software  Foundation.  For more  information on the
    * Apache Software Foundation, please see <http://www.apache.org/>.
    *
  - */package org.apache.log4j.chainsaw;
  + */
  +package org.apache.log4j.chainsaw;
   
   import org.apache.log4j.helpers.LogLog;
   
  +import java.awt.Color;
  +import java.awt.Component;
   import java.awt.event.ActionEvent;
   import java.awt.event.ActionListener;
   
   import java.beans.PropertyChangeEvent;
   import java.beans.PropertyChangeListener;
   
  +import java.util.Dictionary;
  +import java.util.Hashtable;
  +
  +import javax.swing.BorderFactory;
  +import javax.swing.Box;
   import javax.swing.BoxLayout;
   import javax.swing.JCheckBox;
   import javax.swing.JFrame;
  +import javax.swing.JLabel;
  +import javax.swing.JPanel;
  +import javax.swing.JSlider;
  +import javax.swing.SwingConstants;
  +import javax.swing.event.ChangeEvent;
  +import javax.swing.event.ChangeListener;
   import javax.swing.tree.DefaultMutableTreeNode;
   import javax.swing.tree.DefaultTreeModel;
   import javax.swing.tree.TreeModel;
  @@ -65,7 +79,7 @@
   
   /**
    * A panel used by the user to modify any application-wide preferences.
  - * 
  + *
    * @author Paul Smith <[EMAIL PROTECTED]>
    *
    */
  @@ -116,15 +130,16 @@
           f.setSize(640, 480);
           f.show();
       }
  +
       /**
        * Ensures this panels DISPLAYED model is in sync with
        * the model initially passed to the constructor.
        *
        */
       public void updateModel() {
  -      this.uncommittedPreferenceModel.apply(committedPreferenceModel);
  +        this.uncommittedPreferenceModel.apply(committedPreferenceModel);
       }
  -    
  +
       /* (non-Javadoc)
        * @see org.apache.log4j.chainsaw.AbstractPreferencePanel#createTreeModel()
        */
  @@ -152,20 +167,86 @@
   
           private final JCheckBox showNoReceiverWarning = new JCheckBox(
                   "Prompt me on startup if there are no Receivers defined");
  +        private final JSlider responsiveSlider = new JSlider(JSlider.HORIZONTAL,
  +                1, 4, 2);
  +
  +        Dictionary sliderLabelMap = new Hashtable();
   
           /**
            * @param title
            */
           public GeneralAllPrefPanel() {
               super("General");
  +
               GeneralAllPrefPanel.this.initComponents();
  +
           }
   
           private void initComponents() {
               setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
   
  -            showNoReceiverWarning.setSelected(
  -                uncommittedPreferenceModel.isShowNoReceiverWarning());
  +
  +            Box p = new Box(BoxLayout.X_AXIS);
  +
  +            p.add(showNoReceiverWarning);
  +            p.add(Box.createHorizontalGlue());
  +
  +            setupInitialValues();
  +            setupListeners();
  +
  +            initSliderComponent();
  +
  +            add(responsiveSlider);
  +            add(p);
  +            add(Box.createVerticalGlue());
  +
  +
  +        }
  +
  +        private void initSliderComponent() {
  +            responsiveSlider.setToolTipText(
  +                "Adjust to set the responsiveness of the app.  How often the view 
is updated.");
  +            responsiveSlider.setSnapToTicks(true);
  +            responsiveSlider.setLabelTable(sliderLabelMap);
  +            responsiveSlider.setPaintLabels(true);
  +            responsiveSlider.setPaintTrack(true);
  +
  +            responsiveSlider.setBorder(BorderFactory.createTitledBorder(
  +                    BorderFactory.createEtchedBorder(), "Responsiveness"));
  +
  +//            responsiveSlider.setAlignmentY(0);
  +//            responsiveSlider.setAlignmentX(0);
  +        }
  +
  +        private void setupListeners() {
  +            uncommittedPreferenceModel.addPropertyChangeListener(
  +                "showNoReceiverWarning", new PropertyChangeListener() {
  +
  +                    public void propertyChange(PropertyChangeEvent evt) {
  +                        showNoReceiverWarning.setSelected(
  +                            ((Boolean) evt.getNewValue()).booleanValue());
  +
  +                    }
  +                });
  +            uncommittedPreferenceModel.addPropertyChangeListener(
  +                "responsiveness", new PropertyChangeListener() {
  +
  +                    public void propertyChange(PropertyChangeEvent evt) {
  +
  +                        int value = ((Integer) evt.getNewValue()).intValue();
  +
  +                        if (value >= 1000) {
  +
  +                            int newValue = (value - 750) / 1000;
  +                            LogLog.debug(
  +                                "Adjusting old Responsiveness value from " +
  +                                value + " to " + newValue);
  +                            value = newValue;
  +                        }
  +
  +                        responsiveSlider.setValue(value);
  +                    }
  +                });
               showNoReceiverWarning.addActionListener(new ActionListener() {
   
                       public void actionPerformed(ActionEvent e) {
  @@ -174,8 +255,40 @@
                       }
                   });
   
  -            add(showNoReceiverWarning);
  +            responsiveSlider.getModel().addChangeListener(
  +                new ChangeListener() {
  +                    public void stateChanged(ChangeEvent e) {
  +
  +                        if (responsiveSlider.getValueIsAdjusting()) {
  +
  +                            /**
  +                             * We'll wait until it stops.
  +                             */
  +                        } else {
  +
  +                            int value = responsiveSlider.getValue();
  +
  +                            if (value == 0) {
  +                                value = 1;
  +                            }
  +
  +                            LogLog.debug("Adjust responsiveness to " + value);
  +                            uncommittedPreferenceModel.setResponsiveness(
  +                                value);
  +                        }
  +                    }
  +                });
  +        }
  +
  +        private void setupInitialValues() {
  +            sliderLabelMap.put(new Integer(1), new JLabel("Fastest"));
  +            sliderLabelMap.put(new Integer(2), new JLabel("Fast"));
  +            sliderLabelMap.put(new Integer(3), new JLabel("Medium"));
  +            sliderLabelMap.put(new Integer(4), new JLabel("Slow"));
   
  +//          
  +            showNoReceiverWarning.setSelected(
  +                uncommittedPreferenceModel.isShowNoReceiverWarning());
           }
   
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to