|
|
|
@ -108,17 +108,18 @@ public abstract class RefreshableJTree extends CheckBoxTree {
|
|
|
|
|
for (int i = 0; i < nodes.length; i++) { |
|
|
|
|
treeNode.add(nodes[i]); |
|
|
|
|
} |
|
|
|
|
DefaultTreeModel treeModel = (DefaultTreeModel) RefreshableJTree.this.getModel(); |
|
|
|
|
|
|
|
|
|
// 主要耗时是用在了treeUI的渲染上了,所以把这个放到工作线程里面
|
|
|
|
|
if (treeNode.getChildCount() >= 1 && ((ExpandMutableTreeNode) treeNode.getFirstChild()).getUserObject() == PENDING) { |
|
|
|
|
treeNode.remove(0); |
|
|
|
|
} |
|
|
|
|
treeModel.nodeStructureChanged(treeNode); |
|
|
|
|
return System.currentTimeMillis() - startTime; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
protected void done() { |
|
|
|
|
DefaultTreeModel treeModel = (DefaultTreeModel) RefreshableJTree.this.getModel(); |
|
|
|
|
treeModel.nodeStructureChanged(treeNode); |
|
|
|
|
RefreshableJTree.this.updateUI(); |
|
|
|
|
// 恢复Tree的可用性
|
|
|
|
|
RefreshableJTree.this.setEnabled(true); |
|
|
|
|