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/05 05:13:12 UTC

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

psmith      2003/05/04 20:13:12

  Modified:    src/java/org/apache/log4j/chainsaw
                        ChainsawToolBarAndMenus.java
  Log:
  implemented State change tracking, so when components change state
  the menu's and toolbar buttons remain consistent with what can or 
  cannot be done at this point in time.
  
  Revision  Changes    Path
  1.2       +39 -6     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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ChainsawToolBarAndMenus.java	3 May 2003 06:53:13 -0000	1.1
  +++ ChainsawToolBarAndMenus.java	5 May 2003 03:13:12 -0000	1.2
  @@ -18,7 +18,6 @@
   import javax.swing.ImageIcon;
   import javax.swing.JButton;
   import javax.swing.JCheckBoxMenuItem;
  -import javax.swing.JComponent;
   import javax.swing.JMenu;
   import javax.swing.JMenuBar;
   import javax.swing.JMenuItem;
  @@ -26,6 +25,8 @@
   import javax.swing.JToolBar;
   import javax.swing.KeyStroke;
   import javax.swing.SwingUtilities;
  +import javax.swing.event.ChangeEvent;
  +import javax.swing.event.ChangeListener;
   
   import org.apache.log4j.chainsaw.icons.ChainsawIcons;
   
  @@ -34,7 +35,8 @@
    * @author Paul Smith <ps...@apache.org>
    *
    */
  -class ChainsawToolBarAndMenus {
  +class ChainsawToolBarAndMenus 
  +  implements ChangeListener{
   
   	ChainsawToolBarAndMenus(final LogUI logui) {
   		this.logui = logui;
  @@ -57,7 +59,36 @@
   	JMenuBar getMenubar() {
   		return menuBar;
   	}
  -	
  +  
  +  public void stateChanged(ChangeEvent e) {
  +    scanState();
  +  }
  +    
  +   private void scanState() {
  +     /**
  +      * We get the currently selected LogPanel, and if null, deactivate some
  +      * actions
  +      */
  +     LogUI.LogPanel logPanel = logui.getCurrentLogPanel();
  +
  +      
  +     if (logPanel == null) {
  +       pauseAction.setEnabled(false);
  +       fileMenu.getFileSaveAction().setEnabled(false);
  +     } else {
  +//       System.out.println("LogPanel is now " + logPanel.getIdentifier());
  +       fileMenu.getFileSaveAction().setEnabled(true);
  +       pauseAction.setEnabled(true);
  +       if (logui.pausedList.contains(logPanel.getIdentifier())) {
  +        pauseButton.getModel().setSelected(true);
  +      } else {
  +        pauseButton.getModel().setSelected(false);
  +      }
  +       
  +     }
  +
  +   }
  +
   	private Action createToggleToolbarAction() {
   		/**
   		 * -== Begin of Show/Hide toolbar action
  @@ -160,7 +191,7 @@
   		toolbar.add(fileSaveButton);
   		toolbar.addSeparator();
   		
  -		final JToggleButton pauseButton = new JToggleButton(pauseAction);
  +		pauseButton.setAction(pauseAction);
   		pauseButton.setText("");
         
   //		pauseButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F12"),pauseAction.getValue(Action.NAME) );
  @@ -168,6 +199,8 @@
   		Dimension d=new Dimension(24,24);
   		pauseButton.setPreferredSize(d);
   		pauseButton.setMaximumSize(d);
  +    
  +        
   
   		toolbar.add(pauseButton);
   		
  @@ -214,7 +247,7 @@
   	private final Action pauseAction;
   	
   	private final FileMenu fileMenu;
  -	
  -
  +  
  +    private final JToggleButton pauseButton = new JToggleButton();
   	
   }
  
  
  

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