psmith 2003/06/26 20:25:24 Modified: src/java/org/apache/log4j/chainsaw ReceiversTreeModel.java Log: Changes to allow the Root Receiver node to detect when the logger repository threshold had changed. Revision Changes Path 1.2 +24 -7 jakarta-log4j/src/java/org/apache/log4j/chainsaw/ReceiversTreeModel.java Index: ReceiversTreeModel.java =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ReceiversTreeModel.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ReceiversTreeModel.java 25 Jun 2003 04:05:21 -0000 1.1 +++ ReceiversTreeModel.java 27 Jun 2003 03:25:23 -0000 1.2 @@ -68,14 +68,17 @@ * @author Paul Smith <[EMAIL PROTECTED]> */ public class ReceiversTreeModel extends DefaultTreeModel { - final DefaultMutableTreeNode NoReceiversNode = new DefaultMutableTreeNode("You have no Receivers defined"); + private static final String ROOTNODE_LABEL = "Receivers"; + final DefaultMutableTreeNode NoReceiversNode = + new DefaultMutableTreeNode("You have no Receivers defined"); final DefaultMutableTreeNode RootNode; ReceiversTreeModel() { - super(new DefaultMutableTreeNode("Receivers")); + super(new DefaultMutableTreeNode(ROOTNODE_LABEL)); RootNode = (DefaultMutableTreeNode) getRoot(); refresh(); } + /** * Creates a new ReceiversTreeModel by querying the Log4j Plugin Repository * and building up the required information. @@ -84,15 +87,16 @@ */ public final synchronized ReceiversTreeModel refresh() { RootNode.removeAllChildren(); - + Collection receivers = PluginRegistry.getPlugins( LogManager.getLoggerRepository(), Receiver.class); - if( receivers.size() == 0){ - - getRootNode().add(NoReceiversNode); - }else { + updateRootDisplay(); + + if (receivers.size() == 0) { + getRootNode().add(NoReceiversNode); + } else { for (Iterator iter = receivers.iterator(); iter.hasNext();) { Receiver item = (Receiver) iter.next(); DefaultMutableTreeNode receiverNode = new DefaultMutableTreeNode(item); @@ -110,8 +114,21 @@ getRootNode().add(receiverNode); } } + reload(); + return this; + } + + /** + * Ensure the Root node of this tree is updated with the latest information + * and that listeners are notified. + */ + void updateRootDisplay() { + getRootNode().setUserObject( + ROOTNODE_LABEL + " (" + LogManager.getLoggerRepository().getThreshold() + + ")"); + nodeChanged(getRootNode()); } DefaultMutableTreeNode getRootNode() {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]