1 /*
2 Copyright (C) 2000 - 2007 Grid Systems, S.A.
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License, version 2, as
6 published by the Free Software Foundation.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software
15 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 */
17
18 /*
19 * Project: KernelConfigurator
20 * Created on 23-feb-2004
21 *
22 * Copyright (c)2003 Grid Systems
23 */
24 package com.gridsystems.config.app;
25
26 import java.awt.Dimension;
27
28 import javax.swing.JTree;
29 import javax.swing.ToolTipManager;
30
31 import com.gridsystems.config.Configurator;
32
33 /**
34 * Specialized JTree subclass that handles the Configurator tree.
35 *
36 * @author <a href="mailto:rruiz@gridsystems.com">Rodrigo Ruiz Aguayo</a>
37 * @version 1.0
38 */
39 public class ConfigTree extends JTree {
40
41 /**
42 * Shared root for the configuration tree.
43 */
44 private static ConfigNode root;
45
46 /**
47 * Creates an already configurated instance.
48 */
49 public ConfigTree() {
50 super();
51
52 ToolTipManager.sharedInstance().registerComponent(this);
53 this.setCellRenderer(new ConfigNodeCellRenderer());
54 this.setPreferredSize(new Dimension(200, 400));
55 //this.setRootVisible(false);
56
57 buildNodes();
58 setModel(new ConfigNodeModel(root));
59 }
60
61 /**
62 * Constructs the Configurator tree.
63 *
64 * @return The Configurator tree root
65 */
66 public static ConfigNode buildNodes() {
67 String rootName = UI.getString("tree.root");
68
69 if (root == null) {
70 root = new ConfigNode(rootName, null);
71
72 Configurator[] configs = UI.getConfigurators();
73 for (int i = 0; i < configs.length; i++) {
74 root.addConfigurator(configs[i]);
75 }
76 }
77 return root;
78 }
79 }