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]