1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| if (ae.getActionCommand().equals(SecBabel.getString("sec.expand"))) {
trace_.debug("Clicks on expand button");
// A déplacer ici si on est bien dans l'EDT
AciModalityManager.startModality();
SwingWorker sw = new SwingWorker() {
// amell
public Object construct() {
// On parcours tous les noeuds en tâche de fond :
TreeNode root = (TreeNode) tree.getModel().getRoot();
// Traverse tree from root
expandAll(tree, new TreePath(root));
return null;
}
private void expandAll(final JTree tree, final TreePath parent) {
// Traverse children
TreeNode node = (TreeNode) parent.getLastPathComponent();
if (node.getChildCount() >= 0) {
for (Enumeration e = node.children(); e
.hasMoreElements();) {
TreeNode n = (TreeNode) e.nextElement();
TreePath path = parent.pathByAddingChild(n);
expandAll(tree, path);
}
}
// Lorsqu'on doit modifier l'interface on utilise l'EDT :
SwingUtilities.invokeLater(new Runnable() {
public void run() {
expandPathOnEDT(tree, parent);
}
});
}
private void expandPathOnEDT(JTree tree, TreePath parent) {
tree.expandPath(parent);
}
public void finished() {
AciModalityManager.stopModality();
}
};
sw.start("");
} |
Partager