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 javax.swing.table.DefaultTableModel;
26: import javax.swing.table.TableModel;
27: import javax.swing.tree.DefaultMutableTreeNode;
28: import javax.swing.tree.MutableTreeNode;
29:
30: import biz.hammurapi.swing.CompositeVisualizer.Member;
31:
32: /**
33: * @author Pavel Vlasov
34: *
35: * @version $Revision: 1.1 $
36: */
37: public class ArrayVisualizer implements Member {
38:
39: private CompositeVisualizer owner;
40:
41: public Visualizable toVisualizable(final Object[] oa) {
42: return new Visualizable() {
43:
44: public MutableTreeNode toTree(final String title) {
45: DefaultMutableTreeNode ret = new DefaultMutableTreeNode(
46: oa) {
47: public String toString() {
48: return title;
49: }
50: };
51:
52: for (int i = 0; i < oa.length; i++) {
53: Visualizable ev = owner.getStackHead()
54: .toVisualizable(oa[i]);
55: if (ev != null) {
56: ret.add(ev.toTree("element[" + i + "]"));
57: }
58: }
59:
60: return ret;
61: }
62:
63: public TableModel toTable() {
64: DefaultTableModel tm = new DefaultTableModel(2, 2);
65: tm.setColumnIdentifiers(new String[] { "Property",
66: "Value" });
67: tm.setValueAt("type", 0, 0);
68: tm.setValueAt(oa.getClass().getName(), 0, 1);
69: tm.setValueAt("size", 1, 0);
70: tm.setValueAt(String.valueOf(oa.length), 1, 1);
71:
72: return tm;
73: }
74:
75: };
76: }
77:
78: /**
79: * Callback method
80: */
81: public void setOwner(CompositeVisualizer owner) {
82: this.owner = owner;
83: }
84: }
|