sdeboy      2004/07/24 00:20:35

  Modified:    src/java/org/apache/log4j/chainsaw LogPanel.java
                        ChainsawToolBarAndMenus.java
               src/java/org/apache/log4j/chainsaw/help release-notes.html
  Log:
  Added scroll to bottom menu item, toolbar and ctrl-b accelerator.
  
  Revision  Changes    Path
  1.83      +51 -2     logging-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java
  
  Index: LogPanel.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java,v
  retrieving revision 1.82
  retrieving revision 1.83
  diff -u -r1.82 -r1.83
  --- LogPanel.java     23 Jul 2004 06:43:28 -0000      1.82
  +++ LogPanel.java     24 Jul 2004 07:20:34 -0000      1.83
  @@ -1290,8 +1290,26 @@
       eventsPane.addMouseListener(popupListener);
       table.addMouseListener(popupListener);
     }
  +  
  +  /**
  +   * Accessor
  +   *
  +   * @return scrollToBottom
  +   *
  +   */
  +  public boolean isScrollToBottom() {
  +     return preferenceModel.isScrollToBottom();
  +  }
   
     /**
  +   * Mutator
  +   *
  +   */
  +  public void toggleScrollToBottom() {
  +     preferenceModel.setScrollToBottom(!preferenceModel.isScrollToBottom());
  +  }
  +  
  +  /**
      * Accessor
      *
      * @return namespace
  @@ -1736,6 +1754,8 @@
       dockShowPrefsAction.putValue(
         Action.SMALL_ICON, ChainsawIcons.ICON_PREFERENCES);
   
  +    toolbar.add(new SmallButton(dockShowPrefsAction));
  +
       Action dockToggleLogTreeAction =
         new AbstractAction() {
           public void actionPerformed(ActionEvent e) {
  @@ -1752,8 +1772,6 @@
         dockToggleLogTreeAction.putValue(
           Action.SMALL_ICON, new ImageIcon(ChainsawIcons.WINDOW_ICON));
   
  -    toolbar.add(new SmallButton(dockShowPrefsAction));
  -
       final SmallToggleButton toggleLogTreeButton =
         new SmallToggleButton(dockToggleLogTreeAction);
       preferenceModel.addPropertyChangeListener("logTreePanelVisible", new 
PropertyChangeListener() {
  @@ -1789,6 +1807,37 @@
       toolbar.add(dockClearButton);
       toolbar.addSeparator();
   
  +    Action dockToggleScrollToBottomAction =
  +        new AbstractAction("Toggles Scroll to Bottom") {
  +          public void actionPerformed(ActionEvent e) {
  +            toggleScrollToBottom();
  +          }
  +        };
  +
  +        dockToggleScrollToBottomAction.putValue(Action.SHORT_DESCRIPTION, "Toggles 
Scroll to Bottom");
  +        dockToggleScrollToBottomAction.putValue("enabled", Boolean.TRUE);
  +        dockToggleScrollToBottomAction.putValue(
  +          Action.SMALL_ICON, new ImageIcon(ChainsawIcons.DOWN));
  +
  +      final SmallToggleButton toggleScrollToBottomButton =
  +        new SmallToggleButton(dockToggleScrollToBottomAction);
  +      preferenceModel.addPropertyChangeListener("scrollToBottom", new 
PropertyChangeListener() {
  +             public void propertyChange(PropertyChangeEvent evt) {
  +                 
toggleScrollToBottomButton.setSelected(preferenceModel.isScrollToBottom());            
     
  +             }
  +      });
  +
  +      toggleScrollToBottomButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
  +           KeyStroke.getKeyStroke(KeyEvent.VK_B, InputEvent.CTRL_MASK),
  +           dockToggleScrollToBottomAction.getValue(Action.NAME));
  +         toggleScrollToBottomButton.getActionMap().put(
  +           dockToggleScrollToBottomAction.getValue(Action.NAME), 
dockToggleScrollToBottomAction);
  +      
  +      toggleScrollToBottomButton.setSelected(isScrollToBottom());
  +      toggleScrollToBottomButton.setText("");
  +      toolbar.add(toggleScrollToBottomButton);
  +      toolbar.addSeparator();
  +    
       findField = new JTextField();
       findField.addKeyListener(
         new ExpressionRuleContext(filterModel, findField));
  
  
  
  1.44      +50 -1     
logging-log4j/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
  
  Index: ChainsawToolBarAndMenus.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- ChainsawToolBarAndMenus.java      22 May 2004 05:55:02 -0000      1.43
  +++ ChainsawToolBarAndMenus.java      24 Jul 2004 07:20:34 -0000      1.44
  @@ -78,6 +78,7 @@
     private final Action showColorPanelAction;
     private final Action showReceiversAction;
     private final Action toggleLogTreeAction;
  +  private final Action toggleScrollToBottomAction;
     private final Action toggleDetailPaneAction;
     private final Action toggleToolbarAction;
     private final Action undockAction;
  @@ -87,6 +88,8 @@
       new JCheckBoxMenuItem();
     private final JCheckBoxMenuItem toggleLogTreeMenuItem =
       new JCheckBoxMenuItem();
  +  private final JCheckBoxMenuItem toggleScrollToBottomMenuItem =
  +    new JCheckBoxMenuItem();
     private final JCheckBoxMenuItem toggleDetailMenuItem =
       new JCheckBoxMenuItem();
     private final JCheckBoxMenuItem toggleCyclicMenuItem =
  @@ -102,6 +105,7 @@
     private final SmallButton clearButton = new SmallButton();
     private final SmallToggleButton detailPaneButton = new SmallToggleButton();
     private final SmallToggleButton logTreePaneButton = new SmallToggleButton();
  +  private final SmallToggleButton scrollToBottomButton = new SmallToggleButton();
     private final SmallToggleButton pauseButton = new SmallToggleButton();
     private final SmallToggleButton toggleCyclicButton = new SmallToggleButton();
     private final Action[] logPanelSpecificActions;
  @@ -123,6 +127,7 @@
       showColorPanelAction = createShowColorPanelAction();
       toggleToolbarAction = createToggleToolbarAction();
       toggleLogTreeAction = createToggleLogTreeAction();
  +    toggleScrollToBottomAction = createScrollToBottomAction();
       pauseAction = createPauseAction();
       clearAction = createClearAction();
       undockAction = createUndockAction();
  @@ -151,7 +156,7 @@
           pauseAction, findNextAction, findPreviousAction, clearAction,
           fileMenu.getFileSaveAction(), toggleDetailPaneAction,
           showPreferencesAction, showColorPanelAction, undockAction,
  -        toggleLogTreeAction, changeModelAction,
  +        toggleLogTreeAction, toggleScrollToBottomAction, changeModelAction,
         };
   
       logui.getApplicationPreferenceModel().addPropertyChangeListener(
  @@ -219,6 +224,31 @@
     }
   
     /**
  +   * @return
  +   */
  +   private Action createScrollToBottomAction() {
  +     Action action =
  +       new AbstractAction("Toggle Scroll to Bottom") {
  +         public void actionPerformed(ActionEvent e) {
  +           if (logui.getCurrentLogPanel() != null) {
  +             logui.getCurrentLogPanel().toggleScrollToBottom();
  +           }
  +         }
  +       };
  +
  +     action.putValue(Action.SHORT_DESCRIPTION, "Toggles Scroll to Bottom");
  +     action.putValue("enabled", Boolean.TRUE);
  +     action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_B));
  +     action.putValue(
  +       Action.ACCELERATOR_KEY,
  +       KeyStroke.getKeyStroke(KeyEvent.VK_B, InputEvent.CTRL_MASK));
  +     action.putValue(
  +       Action.SMALL_ICON, new ImageIcon(ChainsawIcons.DOWN));
  +
  +     return action;
  +   }
  +
  +   /**
      * DOCUMENT ME!
      */
     public void stateChange() {
  @@ -351,6 +381,8 @@
       toggleLogTreeMenuItem.setAction(toggleLogTreeAction);
       toggleLogTreeMenuItem.setSelected(true);
   
  +    toggleScrollToBottomMenuItem.setAction(toggleScrollToBottomAction);
  +
       final Action toggleStatusBarAction =
         new AbstractAction("Show Status bar") {
           public void actionPerformed(ActionEvent arg0) {
  @@ -378,6 +410,7 @@
       activeTabMenu.addSeparator();
       activeTabMenu.add(new JMenuItem(clearAction));
       activeTabMenu.addSeparator();
  +    activeTabMenu.add(toggleScrollToBottomMenuItem);
       activeTabMenu.add(menuItemUseRightMouse);
   
       viewMenu.add(showToolbarCheck);
  @@ -630,6 +663,14 @@
         toggleLogTreeAction.getValue(Action.NAME));
       logTreePaneButton.setText(null);
   
  +    scrollToBottomButton.setAction(toggleScrollToBottomAction);
  +    scrollToBottomButton.getActionMap().put(
  +      toggleScrollToBottomAction.getValue(Action.NAME), toggleScrollToBottomAction);
  +    scrollToBottomButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
  +      KeyStroke.getKeyStroke(KeyEvent.VK_B, InputEvent.ALT_MASK),
  +      toggleScrollToBottomAction.getValue(Action.NAME));
  +    scrollToBottomButton.setText(null);
  +
       SmallButton prefsButton = new SmallButton(showPreferencesAction);
       SmallButton undockButton = new SmallButton(undockAction);
       undockButton.setText("");
  @@ -640,6 +681,7 @@
       toolbar.addSeparator();
       toolbar.add(detailPaneButton);
       toolbar.add(logTreePaneButton);
  +    toolbar.add(scrollToBottomButton);
       toolbar.add(prefsButton);
       toolbar.addSeparator();
   
  @@ -707,6 +749,12 @@
         logui.getApplicationPreferenceModel().isReceivers());
   
       logTreePaneButton.setSelected(logui.isLogTreePanelVisible());
  +    LogPanel panel = logui.getCurrentLogPanel();
  +    if (panel != null) {
  +     scrollToBottomButton.setSelected(panel.isScrollToBottom());
  +    } else {
  +     scrollToBottomButton.setSelected(false);
  +    }
       showReceiversButton.setSelected(
         logui.getApplicationPreferenceModel().isReceivers());
       menuItemClose.setSelected(logui.getTabbedPane().containsWelcomePanel());
  @@ -741,6 +789,7 @@
         toggleCyclicMenuItem.setSelected(logPanel.isCyclic());
         detailPaneButton.getModel().setSelected(logPanel.isDetailVisible());
         toggleLogTreeMenuItem.setSelected(logPanel.isLogTreeVisible());
  +      toggleScrollToBottomMenuItem.setSelected(logPanel.isScrollToBottom());
       }
   
       findPanel.invalidate();
  
  
  
  1.33      +5 -0      
logging-log4j/src/java/org/apache/log4j/chainsaw/help/release-notes.html
  
  Index: release-notes.html
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/chainsaw/help/release-notes.html,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- release-notes.html        23 Jul 2004 06:43:29 -0000      1.32
  +++ release-notes.html        24 Jul 2004 07:20:35 -0000      1.33
  @@ -9,6 +9,11 @@
   
   <h1>1.99.99</h2>
   
  +<h2>24 July 2004</h2>
  +<ul>
  + <li>Added scroll to bottom menu item, toolbar and ctrl-b accelerator.</li>
  +</ul>
  +
   <h2>22 July 2004</h2>
   <ul>
    <li>Corrected 'show all hidden' bug when undocked panels exist.</li>
  
  
  

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

Reply via email to