psmith 2003/09/16 18:16:27 Modified: src/java/org/apache/log4j/chainsaw LogPanelLoggerTreeModel.java Log: we now track each new FQN logger and it's associated TreeNode so that we can look up the TreeNode by full name. Revision Changes Path 1.6 +36 -5 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java Index: LogPanelLoggerTreeModel.java =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- LogPanelLoggerTreeModel.java 2 Sep 2003 01:07:00 -0000 1.5 +++ LogPanelLoggerTreeModel.java 17 Sep 2003 01:16:26 -0000 1.6 @@ -51,9 +51,13 @@ */ package org.apache.log4j.chainsaw; +import org.apache.log4j.helpers.LogLog; + import java.util.Collections; import java.util.Comparator; import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; import java.util.StringTokenizer; import javax.swing.SwingUtilities; @@ -61,6 +65,7 @@ import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.MutableTreeNode; + /** * * A TreeModel that represents the Loggers for a given LogPanel @@ -69,6 +74,8 @@ */ class LogPanelLoggerTreeModel extends DefaultTreeModel implements LoggerNameListener { + private Map fullPackageMap = new HashMap(); + LogPanelLoggerTreeModel() { super(new LogPanelTreeNode("Root Logger")); } @@ -132,6 +139,19 @@ */ final LogPanelTreeNode newChild = new LogPanelTreeNode(packageName); + StringBuffer fullPackageBuf = new StringBuffer(); + + for (int j = 0; j <= i; j++) { + fullPackageBuf.append(packages[i]); + + if (j < i) { + fullPackageBuf.append("."); + } + } + + LogLog.debug("Adding to Map " + fullPackageBuf.toString()); + fullPackageMap.put(fullPackageBuf.toString(), newChild); + final DefaultMutableTreeNode changedNode = current; changedNode.add(newChild); @@ -142,12 +162,21 @@ changedIndices[j] = j; } - nodesWereInserted(changedNode, new int[]{changedNode.getIndex(newChild)}); + nodesWereInserted( + changedNode, new int[] { changedNode.getIndex(newChild) }); nodesChanged(changedNode, changedIndices); current = newChild; } } + LogPanelTreeNode lookupLogger(String logger) { + if (fullPackageMap.containsKey(logger)) { + return (LogPanelTreeNode) fullPackageMap.get(logger); + } + + return null; + } + /** * Takes the loggerName and tokenizes it into it's * package name lements returning the elements @@ -186,12 +215,14 @@ } public void insert(MutableTreeNode newChild, int childIndex) { -// LogLog.debug("[" + this.getUserObject() + "] inserting child " + newChild + " @ index " + childIndex); -// LogLog.debug("Children now: " + this.children); + // LogLog.debug("[" + this.getUserObject() + "] inserting child " + newChild + " @ index " + childIndex); + // LogLog.debug("Children now: " + this.children); super.insert(newChild, childIndex); -// LogLog.debug("Children after insert: " + this.children); + + // LogLog.debug("Children after insert: " + this.children); Collections.sort(this.children, nodeComparator); -// LogLog.debug("Children after sort: " + this.children); + + // LogLog.debug("Children after sort: " + this.children); } } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]