psmith      2003/09/01 20:39:16

  Modified:    src/java/org/apache/log4j/chainsaw
                        ChainsawToolBarAndMenus.java LogUI.java
  Log:
  Changes to menus/toolbar and Log panel so that
  the Logger Tree can be hidden/shown.
  
  Revision  Changes    Path
  1.3       +120 -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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ChainsawToolBarAndMenus.java      20 Jul 2003 15:41:48 -0000      1.2
  +++ ChainsawToolBarAndMenus.java      2 Sep 2003 03:39:16 -0000       1.3
  @@ -125,6 +125,7 @@
     private final Action pauseAction;
     private final Action showPreferencesAction;
     private final Action showReceiversAction;
  +  private final Action toggleLogTreeAction;
     private final Action toggleDetailPaneAction;
     private final Action toggleToolbarAction;
     private final Action undockAction;
  @@ -148,6 +149,7 @@
     private LogUI logui;
     private final SmallButton clearButton = new SmallButton();
     private final SmallToggleButton detailPaneButton = new SmallToggleButton();
  +  private final SmallToggleButton logTreePaneButton = new SmallToggleButton();
     private final SmallToggleButton pauseButton = new SmallToggleButton();
     private String lastFind = "";
     private String levelDisplay = ChainsawConstants.LEVEL_DISPLAY_ICONS;
  @@ -168,6 +170,7 @@
       showPreferencesAction = createShowPreferencesAction();
       lockToolbarAction = createLockableToolbarAction();
       toggleToolbarAction = createToggleToolbarAction();
  +    toggleLogTreeAction = createToggleLogTreeAction();
       pauseAction = createPauseAction();
       clearAction = createClearAction();
       undockAction = createUndockAction();
  @@ -179,46 +182,79 @@
         new JSlider(JSlider.VERTICAL, 0, 5000, logui.handler.getQueueInterval());
       createMenuBar();
       createToolbar();
  -    
  -    panelListener = new ChangeListener() {
  -     public void stateChanged(ChangeEvent e) {
  -             Map m = logui.getPanels();
  -             if (m !=null) {
  -                     Set s = m.entrySet();
  -                     Iterator iter = s.iterator();
  -                     while (iter.hasNext()) {
  -                             Map.Entry entry = (Map.Entry)iter.next();
  -                             if (!panelMenuMap.keySet().contains(entry.getKey())) {
  -                                     panelMenuMap.put(entry.getKey(), 
getDisplayPanelMenuItem(entry.getKey().toString()));
  -                                     //default to enabled
  -                                     panelEnabledMap.put(entry.getKey(), 
Boolean.TRUE);
  -                                     
showTabs.add((JCheckBoxMenuItem)panelMenuMap.get(entry.getKey()));
  -                             }
  -
  -                                     boolean entryEnabled = 
((Boolean)panelEnabledMap.get(entry.getKey())).booleanValue();
  -                             boolean newEnabled = 
((Boolean)entry.getValue()).booleanValue();
  -                                                                       
  -                             if (entryEnabled != newEnabled) {
  -                                     
((JCheckBoxMenuItem)panelMenuMap.get(entry.getKey())).getModel().setEnabled(newEnabled);
  -                                     panelEnabledMap.put(entry.getKey(), 
Boolean.valueOf(newEnabled));
  -                             }
  -                     }
  -             }
  -     }
  -    };
  -    
  +
  +    panelListener =
  +      new ChangeListener() {
  +          public void stateChanged(ChangeEvent e) {
  +            Map m = logui.getPanels();
  +
  +            if (m != null) {
  +              Set s = m.entrySet();
  +              Iterator iter = s.iterator();
  +
  +              while (iter.hasNext()) {
  +                Map.Entry entry = (Map.Entry) iter.next();
  +
  +                if (!panelMenuMap.keySet().contains(entry.getKey())) {
  +                  panelMenuMap.put(
  +                    entry.getKey(),
  +                    getDisplayPanelMenuItem(entry.getKey().toString()));
  +
  +                  //default to enabled
  +                  panelEnabledMap.put(entry.getKey(), Boolean.TRUE);
  +                  showTabs.add(
  +                    (JCheckBoxMenuItem) panelMenuMap.get(entry.getKey()));
  +                }
  +
  +                boolean entryEnabled =
  +                  ((Boolean) panelEnabledMap.get(entry.getKey())).booleanValue();
  +                boolean newEnabled =
  +                  ((Boolean) entry.getValue()).booleanValue();
  +
  +                if (entryEnabled != newEnabled) {
  +                  ((JCheckBoxMenuItem) panelMenuMap.get(entry.getKey())).getModel()
  +                   .setEnabled(newEnabled);
  +                  panelEnabledMap.put(
  +                    entry.getKey(), Boolean.valueOf(newEnabled));
  +                }
  +              }
  +            }
  +          }
  +        };
  +
       logPanelSpecificActions =
         new Action[] {
           pauseAction, findNextAction, clearAction, fileMenu.getFileSaveAction(),
  -        toggleDetailPaneAction, showPreferencesAction, undockAction
  +        toggleDetailPaneAction, showPreferencesAction, undockAction,
  +        toggleLogTreeAction
         };
     }
   
     /**
  -   * DOCUMENT ME!
  -   *
  -   * @param event DOCUMENT ME!
  -   */
  +  * @return
  +  */
  +  private Action createToggleLogTreeAction() {
  +    Action action =
  +      new AbstractAction() {
  +        public void actionPerformed(ActionEvent e) {
  +          if (logui.getCurrentLogPanel() != null) {
  +            logui.getCurrentLogPanel().toggleLogTreePanel();
  +          }
  +        }
  +      };
  +
  +    action.putValue(Action.NAME, "Logger Tree");
  +    action.putValue(Action.SHORT_DESCRIPTION, "Toggles the Log Tree panel");
  +
  +    //               TODO find an icon
  +    return action;
  +  }
  +
  +  /**
  +     * DOCUMENT ME!
  +     *
  +     * @param event DOCUMENT ME!
  +     */
     public void loadSettings(LoadSettingsEvent event) {
       try {
         levelDisplay = event.getSetting(ChainsawConstants.LEVEL_DISPLAY);
  @@ -343,7 +379,31 @@
       dockShowPrefsAction.putValue(
         Action.SMALL_ICON, showPreferencesAction.getValue(Action.SMALL_ICON));
   
  +    Action dockToggleLogTreeAction =
  +      new AbstractAction() {
  +        public void actionPerformed(ActionEvent e) {
  +          logPanel.toggleLogTreePanel();
  +        }
  +      };
  +
  +    dockToggleLogTreeAction.putValue(
  +      Action.SMALL_ICON, toggleLogTreeAction.getValue(Action.SMALL_ICON));
  +
  +    dockToggleLogTreeAction.putValue(
  +      Action.NAME, toggleLogTreeAction.getValue(Action.NAME));
  +
  +    dockToggleLogTreeAction.putValue(
  +      Action.SHORT_DESCRIPTION,
  +      toggleLogTreeAction.getValue(Action.SHORT_DESCRIPTION));
  +    dockToggleLogTreeAction.putValue(
  +      Action.SMALL_ICON, toggleLogTreeAction.getValue(Action.SMALL_ICON));
  +
       toolbar.add(new SmallButton(dockShowPrefsAction));
  +
  +    SmallToggleButton toggleLogTreeButton =
  +      new SmallToggleButton(dockToggleLogTreeAction);
  +    toggleLogTreeButton.setSelected(logPanel.isLogTreePanelVisible());
  +    toolbar.add(toggleLogTreeButton);
       toolbar.addSeparator();
   
       final Action undockedClearAction =
  @@ -564,13 +624,17 @@
       viewMenu.add(menuUndock);
       viewMenu.add(pause);
   
  -     showTabs = new JMenu("Display tabs");
  -     viewMenu.add(showTabs);    
  +    showTabs = new JMenu("Display tabs");
  +    viewMenu.add(showTabs);
   
       JCheckBoxMenuItem toggleDetailMenuItem =
         new JCheckBoxMenuItem(toggleDetailPaneAction);
       toggleDetailMenuItem.setSelected(true);
   
  +    JCheckBoxMenuItem toggleLogTreeMenuItem =
  +      new JCheckBoxMenuItem(toggleLogTreeAction);
  +    toggleLogTreeMenuItem.setSelected(true);
  +
       final Action toggleStatusBarAction =
         new AbstractAction("Show Status bar") {
           public void actionPerformed(ActionEvent arg0) {
  @@ -587,6 +651,7 @@
       toggleStatusBarCheck.setAction(toggleStatusBarAction);
       toggleStatusBarCheck.setSelected(true);
       viewMenu.add(toggleDetailMenuItem);
  +    viewMenu.add(toggleLogTreeMenuItem);
       viewMenu.add(menuPrefs);
   
       viewMenu.addSeparator();
  @@ -949,6 +1014,10 @@
         KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.ALT_MASK),
         toggleDetailPaneAction.getValue(Action.NAME));
   
  +    logTreePaneButton.setAction(toggleLogTreeAction);
  +
  +    //       logTreePaneButton.setText(null);
  +    //       TODO add accelerator to this action
       SmallButton prefsButton = new SmallButton(showPreferencesAction);
       SmallButton undockButton = new SmallButton(undockAction);
       undockButton.setText("");
  @@ -956,6 +1025,7 @@
       toolbar.add(undockButton);
       toolbar.add(pauseButton);
       toolbar.add(detailPaneButton);
  +    toolbar.add(logTreePaneButton);
       toolbar.add(prefsButton);
       toolbar.addSeparator();
   
  @@ -1053,6 +1123,7 @@
   
       toggleStatusBarCheck.setSelected(logui.isStatusBarVisible());
       toggleShowReceiversCheck.setSelected(logui.isReceiverPanelVisible());
  +    logTreePaneButton.setSelected(logui.isLogTreePanelVisible());
       showReceiversButton.setSelected(logui.isReceiverPanelVisible());
   
       /**
  @@ -1102,23 +1173,24 @@
         }
       }
     }
  -  
  +
     ChangeListener getPanelListener() {
  -     return panelListener;
  +    return panelListener;
     }
  -  
  +
     private JCheckBoxMenuItem getDisplayPanelMenuItem(final String panelName) {
  -     final JCheckBoxMenuItem item = new JCheckBoxMenuItem(panelName, true);
  -     
  -     final Action action =
  -       new AbstractAction(panelName) {
  -             public void actionPerformed(ActionEvent e) {
  -               logui.displayPanel(panelName, item.isSelected());
  -             }
  -       };
  -       item.setAction(action);
  +    final JCheckBoxMenuItem item = new JCheckBoxMenuItem(panelName, true);
  +
  +    final Action action =
  +      new AbstractAction(panelName) {
  +        public void actionPerformed(ActionEvent e) {
  +          logui.displayPanel(panelName, item.isSelected());
  +        }
  +      };
  +
  +    item.setAction(action);
   
  -     return item;
  +    return item;
     }
   
     private Action setupFindFieldsAndActions() {
  
  
  
  1.12      +57 -3     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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- LogUI.java        2 Sep 2003 01:07:00 -0000       1.11
  +++ LogUI.java        2 Sep 2003 03:39:16 -0000       1.12
  @@ -75,6 +75,8 @@
   import java.awt.Toolkit;
   import java.awt.event.ActionEvent;
   import java.awt.event.ActionListener;
  +import java.awt.event.ComponentEvent;
  +import java.awt.event.ComponentListener;
   import java.awt.event.InputEvent;
   import java.awt.event.KeyEvent;
   import java.awt.event.KeyListener;
  @@ -1332,6 +1334,17 @@
     }
   
     /**
  +   * @return
  +   */
  +  public boolean isLogTreePanelVisible() {
  +    if (getCurrentLogPanel() == null) {
  +      return false;
  +    }
  +
  +    return getCurrentLogPanel().isLogTreePanelVisible();
  +  }
  +
  +  /**
      * LogPanel encapsulates all the necessary bits and pieces of a
      * floating window of Events coming from a specific Location.
      *
  @@ -1372,6 +1385,7 @@
       Set noneSet = new HashSet();
       Point currentPoint;
       private final JSplitPane nameTreeAndMainPanelSplit;
  +    private final LoggerNameTreePanel logTreePanel;
   
       public LogPanel(
         final String ident, final EventContainer tableModel,
  @@ -1383,6 +1397,7 @@
         this.table = table;
   
         tableModel.addLoggerNameListener(logTreeModel);
  +      logTreePanel = new LoggerNameTreePanel(logTreeModel);
   
         levelSet = new HashSet((List) levelMap.get(eventType));
         map.put(ChainsawConstants.LEVEL_COL_NAME, levelSet);
  @@ -1671,8 +1686,6 @@
         statusLabelPanel.add(upperPanel, BorderLayout.CENTER);
         eventsAndStatusPanel.add(statusLabelPanel, BorderLayout.NORTH);
   
  -      final JPanel logTreePanel = new LoggerNameTreePanel(logTreeModel);
  -
         final JPanel detailPanel = new JPanel(new BorderLayout());
   
         //set valueisadjusting if holding down a key - don't process setdetail events
  @@ -1721,10 +1734,36 @@
         nameTreeAndMainPanelSplit.add(lowerPanel);
         nameTreeAndMainPanelSplit.setOneTouchExpandable(true);
         nameTreeAndMainPanelSplit.setToolTipText("Still under development....");
  -      nameTreeAndMainPanelSplit.setDividerLocation(120);
  +      nameTreeAndMainPanelSplit.setDividerLocation(160);
   
         add(nameTreeAndMainPanelSplit, BorderLayout.CENTER);
   
  +      /**
  +       * This listener deals with when the user hides the LogPanel,
  +       * by disabling the use of the splitpane
  +       */
  +      logTreePanel.addComponentListener(
  +        new ComponentListener() {
  +          public void componentHidden(ComponentEvent e) {
  +            nameTreeAndMainPanelSplit.setEnabled(false);
  +            nameTreeAndMainPanelSplit.setOneTouchExpandable(false);
  +            tbms.stateChange();
  +          }
  +
  +          public void componentMoved(ComponentEvent e) {
  +          }
  +
  +          public void componentResized(ComponentEvent e) {
  +          }
  +
  +          public void componentShown(ComponentEvent e) {
  +            nameTreeAndMainPanelSplit.setEnabled(true);
  +            nameTreeAndMainPanelSplit.setOneTouchExpandable(true);
  +            nameTreeAndMainPanelSplit.setDividerLocation(-1);
  +            tbms.stateChange();
  +          }
  +        });
  +
         //      add(lowerPanel, BorderLayout.CENTER);
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
   
  @@ -2171,6 +2210,14 @@
         }
       }
   
  +    void toggleLogTreePanel() {
  +      LogLog.debug(
  +        "Toggling logPanel, currently isVisible=" + logTreePanel.isVisible());
  +      logTreePanel.setVisible(!logTreePanel.isVisible());
  +      LogLog.debug(
  +        "Toggling logPanel, now isVisible=" + logTreePanel.isVisible());
  +    }
  +
       public void saveSettings() {
         saveColumnSettings(identifier, table.getColumnModel());
         colorDisplaySelector.save();
  @@ -2356,6 +2403,13 @@
             }
           }
         }
  +    }
  +
  +    /**
  +     * @return
  +     */
  +    public boolean isLogTreePanelVisible() {
  +      return logTreePanel.isVisible();
       }
     }
   
  
  
  

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

Reply via email to