View Javadoc

1   /*
2    *  XNap - A P2P framework and client.
3    *
4    *  See the file AUTHORS for copyright information.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation.
9    *
10   *  This program is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   *  GNU General Public License for more details.
14   *
15   *  You should have received a copy of the GNU General Public License
16   *  along with this program; if not, write to the Free Software
17   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18   */
19  
20  package org.xnap.gui.tree;
21  
22  import java.awt.Component;
23  
24  import javax.swing.Icon;
25  import javax.swing.JTree;
26  import javax.swing.tree.DefaultTreeCellRenderer;
27  
28  import org.xnap.gui.table.LeafTreeTableNode;
29  import org.xnap.gui.table.TreeTableModel;
30  import org.xnap.gui.util.IconHelper;
31  
32  /***
33   */
34  public class NetworkTreeCellRenderer extends DefaultTreeCellRenderer
35  {
36  
37      //--- Constant(s) ---
38  
39      /***
40       * The icon for a node.
41       */
42      public static final Icon NETWORK_ICON 
43  	= IconHelper.getIcon("network.png", 16);
44  
45      /***
46       * The icon for a leaf.
47       */
48      public static final Icon HOST_ICON 
49  	= IconHelper.getIcon("network_local.png", 16);
50  
51      //--- Data Field(s) ---
52  
53      private TreeTableModel ttm;
54  
55      //--- Constructor(s) ---
56  
57      public NetworkTreeCellRenderer(TreeTableModel ttm) 
58      {
59  	this.ttm = ttm;
60      }
61  
62      //--- Method(s) ---
63  
64      public Component getTreeCellRendererComponent(JTree tree, Object value,
65  						  boolean sel,
66  						  boolean expanded,
67  						  boolean leaf, int row,
68  						  boolean hasFocus) 
69      {
70  	super.getTreeCellRendererComponent
71  	    (tree, value, sel, expanded, leaf, row, hasFocus);
72  
73  	Object o = ttm.getValueAt(value, 0);
74  	setText((o != null) ? o.toString() : null);
75  
76  	setIcon(value instanceof LeafTreeTableNode ? HOST_ICON : NETWORK_ICON);
77  
78  	return this;
79      }
80  
81  }