psmith 2003/08/31 19:02:32
Modified: src/java/org/apache/log4j/chainsaw
LogPanelLoggerTreeModel.java
Log:
more effecient notification of the addition of nodes.
The original method sent a nodeStructureChanged msg
but this is pretty expensive, and tends to have the side
effect of the Tree gui's constantly collapsing the icons.
This model now notifies in the Swing event dispatching
thread, and notifies each additional logger name node.
Revision Changes Path
1.2 +13 -8
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LogPanelLoggerTreeModel.java 29 Aug 2003 05:53:36 -0000 1.1
+++ LogPanelLoggerTreeModel.java 1 Sep 2003 02:02:32 -0000 1.2
@@ -73,14 +73,8 @@
*/
class LogPanelLoggerTreeModel extends DefaultTreeModel
implements LoggerNameListener {
- private LogUI.LogPanel logPanel;
- LogPanelLoggerTreeModel(LogUI.LogPanel logPanel) {
- this();
- this.logPanel = logPanel;
- }
-
- private LogPanelLoggerTreeModel() {
+ LogPanelLoggerTreeModel() {
super(new DefaultMutableTreeNode("Root"));
}
@@ -133,10 +127,21 @@
DefaultMutableTreeNode newChild =
new DefaultMutableTreeNode(packageName);
current.add(newChild);
+
+ final TreeNode changedNode = current;
+ final int[] changedIndices = new int[]{current.getIndex(newChild)};
+ SwingUtilities.invokeLater(new Runnable(){
+
+ public void run()
+ {
+ nodesWereInserted(changedNode, changedIndices);
+
+ }});
current = newChild;
}
- nodeStructureChanged((TreeNode) getRoot());
+
+// nodeStructureChanged((TreeNode) getRoot());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]