psmith 2003/06/22 20:50:33 Modified: src/java/org/apache/log4j/chainsaw ReceiversPanel.java Log: Changes because of TreeModel moving from static factory, to refresh methodology. Revision Changes Path 1.13 +50 -16 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java Index: ReceiversPanel.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- ReceiversPanel.java 23 Jun 2003 02:56:16 -0000 1.12 +++ ReceiversPanel.java 23 Jun 2003 03:50:33 -0000 1.13 @@ -91,6 +91,8 @@ import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreeModel; /** @@ -121,7 +123,7 @@ setMinimumSize(getPreferredSize()); setMaximumSize(getPreferredSize()); - receiversTree.setModel(ReceiversTreeModel.create()); + receiversTree.setModel(new ReceiversTreeModel()); receiversTree.setToolTipText("Allows you to manage Log4j Receivers"); newReceiverButtonAction = @@ -256,7 +258,10 @@ updateReceiverTree = new Runnable() { public void run() { - receiversTree.setModel(ReceiversTreeModel.create()); + ReceiversTreeModel model = + (ReceiversTreeModel) receiversTree.getModel(); + + model.refresh(); } }; @@ -347,7 +352,7 @@ * not user Object * @return Object representing currently seleted Node's User Object */ - private Object getCurrentlySeletedUserObject() { + private Object getCurrentlySelectedUserObject() { DefaultMutableTreeNode node = (DefaultMutableTreeNode) receiversTree.getLastSelectedPathComponent(); @@ -367,11 +372,12 @@ new Thread( new Runnable() { public void run() { - Receiver receiver = getCurrentlySelectedReceiver(); + Object obj = getCurrentlySelectedUserObject(); - if ((receiver != null) && receiver instanceof Pauseable) { - ((Pauseable) receiver).setPaused(false); - updateReceiverTreeInDispatchThread(); + if ((obj != null) && obj instanceof Pauseable) { + ((Pauseable) obj).setPaused(false); + + updateCurrentlySelectedNodeInDispatchThread(); } } }).start(); @@ -389,17 +395,38 @@ new Thread( new Runnable() { public void run() { - Receiver receiver = getCurrentlySelectedReceiver(); + Object obj = getCurrentlySelectedUserObject(); - if ((receiver != null) && receiver instanceof Pauseable) { - ((Pauseable) receiver).setPaused(true); - updateReceiverTreeInDispatchThread(); + if ((obj != null) && obj instanceof Pauseable) { + ((Pauseable) obj).setPaused(true); + updateCurrentlySelectedNodeInDispatchThread(); } } }).start(); } /** + * + */ + protected void updateCurrentlySelectedNodeInDispatchThread() { + SwingUtilities.invokeLater( + new Runnable() { + public void run() { + DefaultMutableTreeNode node = + (DefaultMutableTreeNode) receiversTree + .getLastSelectedPathComponent(); + + if (node == null) { + return; + } + + ((ReceiversTreeModel) receiversTree.getModel()).reload(node); + updateActions(); + } + }); + } + + /** * Takes the currently selected Receiver and stops it, which effectively * removes it from the PluginRegistry. * @@ -431,22 +458,19 @@ * */ private void updateActions() { - Object object = getCurrentlySeletedUserObject(); + Object object = getCurrentlySelectedUserObject(); if ((object != null) && object instanceof Pauseable) { Pauseable pauseable = (Pauseable) object; if (!pauseable.isPaused()) { - shutdownReceiverButtonAction.setEnabled(true); pauseReceiverButtonAction.setEnabled(true); playReceiverButtonAction.setEnabled(false); } else { - shutdownReceiverButtonAction.setEnabled(true); pauseReceiverButtonAction.setEnabled(false); playReceiverButtonAction.setEnabled(true); } } else { - shutdownReceiverButtonAction.setEnabled(false); pauseReceiverButtonAction.setEnabled(false); playReceiverButtonAction.setEnabled(false); } @@ -454,8 +478,10 @@ if (object instanceof Receiver) { editReceiverButtonAction.setEnabled(true); newReceiverButtonAction.setEnabled(true); + shutdownReceiverButtonAction.setEnabled(true); } else { editReceiverButtonAction.setEnabled(false); + shutdownReceiverButtonAction.setEnabled(false); newReceiverButtonAction.setEnabled(true); } } @@ -563,7 +589,7 @@ Object userObject = node.getUserObject(); removeAll(); - if (userObject == ReceiversTreeModel.RootNode.getUserObject()) { + if (userObject == getRootOfTree().getUserObject()) { buildForReceiversRoot(); } else { buildForReceiverNode(); @@ -573,6 +599,14 @@ this.validate(); super.show(invoker, x, y); + } + + /** + * + */ + private DefaultMutableTreeNode getRootOfTree() { + return (DefaultMutableTreeNode) receiversTree.getModel().getRoot(); + } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]