You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ps...@apache.org on 2003/05/09 09:47:12 UTC

cvs commit: jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw ChainsawAppenderHandler.java ChainsawToolBarAndMenus.java

psmith      2003/05/09 00:47:12

  Modified:    src/java/org/apache/log4j/chainsaw
                        ChainsawAppenderHandler.java
                        ChainsawToolBarAndMenus.java
  Log:
  allowed the ChainsawAppenderHandler to have a QueueInterval property
  and hooked this value up to the View menu's new Responsive
  slider, so a user can adjust how frequently things get posted to the GUI.
  
  This is pretty useful when you have events screeeeeaming in, stops
  the GUI from becoming molten lead.  Would like to eventually add this to
  a CTRL-RIGHT click popup menu maybe later.
  
  Revision  Changes    Path
  1.7       +11 -1     jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawAppenderHandler.java
  
  Index: ChainsawAppenderHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawAppenderHandler.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ChainsawAppenderHandler.java	9 May 2003 04:07:09 -0000	1.6
  +++ ChainsawAppenderHandler.java	9 May 2003 07:47:12 -0000	1.7
  @@ -273,11 +273,21 @@
             }
   
             try {
  -            Thread.sleep(1000);
  +            Thread.sleep(getQueueInterval());
             } catch (InterruptedException ie) {
             }
           }
         }
       }
     }
  +  
  +  public int getQueueInterval() {
  +  	return sleepInterval;
  +  }
  +  
  +  public void setQueueInterval(int interval) {
  +  	sleepInterval = interval;
  +  }
  +  
  +  private int sleepInterval = 1000;
   }
  
  
  
  1.16      +67 -3     jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
  
  Index: ChainsawToolBarAndMenus.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ChainsawToolBarAndMenus.java	8 May 2003 04:01:51 -0000	1.15
  +++ ChainsawToolBarAndMenus.java	9 May 2003 07:47:12 -0000	1.16
  @@ -17,14 +17,18 @@
   import javax.swing.AbstractAction;
   import javax.swing.Action;
   import javax.swing.Box;
  +import javax.swing.BoxLayout;
   import javax.swing.ImageIcon;
   import javax.swing.JButton;
   import javax.swing.JCheckBoxMenuItem;
   import javax.swing.JComponent;
   import javax.swing.JFrame;
  +import javax.swing.JLabel;
   import javax.swing.JMenu;
   import javax.swing.JMenuBar;
   import javax.swing.JMenuItem;
  +import javax.swing.JPanel;
  +import javax.swing.JSlider;
   import javax.swing.JTabbedPane;
   import javax.swing.JTextField;
   import javax.swing.JToggleButton;
  @@ -380,13 +384,68 @@
   
       Box findBox = Box.createHorizontalBox();
       findBox.add(findTextField);
  -    findBox.add(Box.createGlue());
       toolbar.add(findBox);
   
  +    toolbar.add(Box.createHorizontalGlue());
  +
       toolbar.setMargin(buttonMargins);
       toolbar.setFloatable(false);
     }
   
  +  private JComponent createResponsivenessSlider() {
  +  	JPanel responsiveNessPanel = new JPanel();
  +	BoxLayout layout =new BoxLayout(responsiveNessPanel, BoxLayout.Y_AXIS);
  +	
  +  	responsiveNessPanel.setLayout(layout);
  +		final JSlider responsiveSlider =
  +			new JSlider(JSlider.VERTICAL,1, 5, logui.handler.getQueueInterval()/1000);
  +		
  +		responsiveSlider.setAlignmentY(JComponent.CENTER_ALIGNMENT);
  +		responsiveSlider.setAlignmentX(JComponent.CENTER_ALIGNMENT);
  +		
  +		responsiveSlider.setMajorTickSpacing(1);
  +		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();
  +					value = value * 1000;
  +					if (value ==0) {
  +						value = 250;
  +					}
  +					System.out.println(
  +						"Adjust responsiveness to "
  +							+ value
  +							+ "ms");
  +					logui.handler.setQueueInterval(value);
  +
  +				}
  +
  +			}
  +		});
  +		
  +		JLabel l1 = new JLabel("Update frequently");
  +		JLabel l2= new JLabel("Update infrequently");
  +		responsiveNessPanel.add(l1);
  +		responsiveNessPanel.add(responsiveSlider);
  +		responsiveNessPanel.add(l2);
  +		
  +		
  +		return responsiveNessPanel;
  +
  +  }
  +  
     private void resizeToolbarButton(JComponent button) {
       Dimension d = new Dimension(24, 24);
       button.setPreferredSize(d);
  @@ -444,9 +503,15 @@
           logui.tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
         }
       });
  +    
  +    JMenu responsiveNess = new JMenu("Responsiveness");
  +    responsiveNess.add(createResponsivenessSlider());
  +    
       tabMenu.add(tabsTop);
       tabMenu.add(tabsBottom);
       viewMenu.add(tabMenu);
  +    viewMenu.add(responsiveNess);
  +    
   
       menuBar.add(fileMenu);
       menuBar.add(viewMenu);
  @@ -508,8 +573,7 @@
       undockedClearAction.putValue(
         Action.SHORT_DESCRIPTION,
         "Removes all the events from the current view");
  -    final JButton dockClearButton =
  -      new JButton(undockedClearAction);
  +    final JButton dockClearButton = new JButton(undockedClearAction);
       dockClearButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
         KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, InputEvent.CTRL_MASK),
         undockedClearAction.getValue(Action.NAME));
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-dev-help@jakarta.apache.org