View Javadoc
1 package net.mlw.fball.gui;
2
3 import java.awt.BorderLayout;
4 import java.util.Iterator;
5 import java.util.List;
6
7 import javax.swing.Icon;
8 import javax.swing.ImageIcon;
9 import javax.swing.JPanel;
10 import javax.swing.JScrollPane;
11 import javax.swing.UIManager;
12
13 import net.mlw.fball.loader.Loader;
14 import net.mlw.fball.loader.LoaderGroup;
15 import net.mlw.util.swing.BasicTreeCellRenderer;
16 import net.mlw.util.swing.BasicTreeNode;
17 import net.mlw.util.swing.CheckTreeNode;
18 import net.mlw.util.swing.JCheckTree;
19
20 /***
21 * @author Matthew L. Wilson
22 * @version $Revision: 1.2 $ $Date: 2004/03/17 14:20:22 $
23 */
24 public class ExecutionTreeMenu extends JPanel
25 {
26 public ExecutionTreeMenu()
27 {
28 initComponents();
29 }
30
31 public void initComponents()
32 {
33 setLayout(new BorderLayout());
34
35 LoaderGroup group = AppContext.getRootLoader();
36
37 CheckTreeNode root =
38 new CheckTreeNode(
39 group.getName(),
40 new BasicTreeNode(AppContext.getMessage(group.getName()), UIManager.getIcon("Tree.openIcon")));
41
42 buildTree(group.getLoaders(), root, UIManager.getIcon("Tree.closedIcon"));
43
44 JCheckTree tree = new JCheckTree(root);
45 tree.setCellRenderer(new BasicTreeCellRenderer());
46 tree.setEditorRenderer(new BasicTreeCellRenderer());
47 tree.setRootVisible(true);
48 tree.setShowsRootHandles(false);
49 add(BorderLayout.CENTER, new JScrollPane(tree));
50 }
51
52 private void buildTree(List loaders, CheckTreeNode node, Icon icon)
53 {
54 for (Iterator iter = loaders.iterator(); iter.hasNext();)
55 {
56 Loader loader = (Loader) iter.next();
57
58 if (loader instanceof LoaderGroup)
59 {
60 LoaderGroup loaderGroup = (LoaderGroup) loader;
61 Icon currentIcon = icon;
62 if (loaderGroup.getIcon() != null)
63 {
64 currentIcon = new ImageIcon(getClass().getClassLoader().getResource(loaderGroup.getIcon()));
65 }
66 CheckTreeNode currentNode =
67 new CheckTreeNode(loader.getName(), new BasicTreeNode(AppContext.getMessage(loader.getName()), currentIcon));
68 node.add(currentNode);
69 buildTree(loaderGroup.getLoaders(), currentNode, currentIcon);
70 }
71 else
72 {
73 node.add(new CheckTreeNode(loader.getName(), new BasicTreeNode(AppContext.getMessage(loader.getName()), icon)));
74 }
75
76 }
77 }
78 }
This page was automatically generated by Maven