1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.gui.action;
21
22 import java.awt.event.ActionEvent;
23
24 import javax.swing.AbstractAction;
25 import javax.swing.Action;
26 import javax.swing.JTree;
27 import javax.swing.tree.TreeModel;
28 import javax.swing.tree.TreePath;
29
30 import org.xnap.XNap;
31 import org.xnap.gui.util.IconHelper;
32
33 /***
34 * Provides an action that collapses all nodes of a {@link JTree}.
35 */
36 public class CollapseAllNodesAction extends AbstractAction
37 {
38
39
40
41
42
43 private JTree jt;
44
45
46
47 public CollapseAllNodesAction(JTree jt)
48 {
49 this.jt = jt;
50
51 putValue(Action.NAME, XNap.tr("Collapse All"));
52 putValue(Action.SHORT_DESCRIPTION, XNap.tr("Collapses all nodes."));
53 putValue(IconHelper.XNAP_ICON, "edit_remove.png");
54 }
55
56
57
58 public void actionPerformed(ActionEvent event)
59 {
60 TreeModel m = jt.getModel();
61 for (int i = m.getChildCount(m.getRoot()) - 1; i >= 0; i--) {
62 Object[] path
63 = new Object[] { m.getRoot(), m.getChild(m.getRoot(), i) };
64 jt.collapsePath(new TreePath(path ));
65 }
66 }
67
68 }