01: /*
02: * hgcommons 7
03: * Hammurapi Group Common Library
04: * Copyright (C) 2003 Hammurapi Group
05: *
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2 of the License, or (at your option) any later version.
10: *
11: * This program is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: *
20: * URL: http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/products/products/hgcommons/index.html
21: * e-Mail: support@hammurapi.biz
22: */
23: package biz.hammurapi.swing;
24:
25: import java.util.Collection;
26: import java.util.Iterator;
27:
28: import javax.swing.table.DefaultTableModel;
29: import javax.swing.table.TableModel;
30: import javax.swing.tree.DefaultMutableTreeNode;
31: import javax.swing.tree.MutableTreeNode;
32:
33: import biz.hammurapi.swing.CompositeVisualizer.Member;
34:
35: /**
36: * @author Pavel Vlasov
37: *
38: * @version $Revision: 1.1 $
39: */
40: public class CollectionVisualizer implements Member {
41:
42: private CompositeVisualizer owner;
43:
44: public Visualizable toVisualizable(final Collection col) {
45: return new Visualizable() {
46:
47: public MutableTreeNode toTree(final String title) {
48: DefaultMutableTreeNode ret = new DefaultMutableTreeNode(
49: col) {
50: public String toString() {
51: if (title != null && title.trim().length() > 0) {
52: return title;
53: }
54: return col.getClass().getName() + "["
55: + col.size() + "]";
56: }
57: };
58:
59: Iterator it = col.iterator();
60: while (it.hasNext()) {
61: Visualizable ev = owner.getStackHead()
62: .toVisualizable(it.next());
63: if (ev != null) {
64: ret.add(ev.toTree(""));
65: }
66: }
67:
68: return ret;
69: }
70:
71: public TableModel toTable() {
72: DefaultTableModel tm = new DefaultTableModel(2, 2);
73: tm.setColumnIdentifiers(new String[] { "Property",
74: "Value" });
75: tm.setValueAt("type", 0, 0);
76: tm.setValueAt(col.getClass().getName(), 0, 1);
77: tm.setValueAt("size", 1, 0);
78: tm.setValueAt(String.valueOf(col.size()), 1, 1);
79:
80: return tm;
81: }
82:
83: };
84: }
85:
86: /**
87: * Callback method
88: */
89: public void setOwner(CompositeVisualizer owner) {
90: this.owner = owner;
91: }
92: }
|