001 /*
002 @license.text@
003 */
004 package biz.hammurapi.swing;
005
006 import javax.swing.table.DefaultTableModel;
007 import javax.swing.table.TableModel;
008 import javax.swing.tree.DefaultMutableTreeNode;
009 import javax.swing.tree.MutableTreeNode;
010
011 import biz.hammurapi.swing.CompositeVisualizer.Member;
012
013 /**
014 * @author Pavel Vlasov
015 *
016 * @version $Revision: 1.1 $
017 */
018 public class ArrayVisualizer implements Member {
019
020 private CompositeVisualizer owner;
021
022 public Visualizable toVisualizable(final Object[] oa) {
023 return new Visualizable() {
024
025 public MutableTreeNode toTree(final String title) {
026 DefaultMutableTreeNode ret=new DefaultMutableTreeNode(oa) {
027 public String toString() {
028 return title;
029 }
030 };
031
032 for (int i=0; i<oa.length; i++) {
033 Visualizable ev=owner.getStackHead().toVisualizable(oa[i]);
034 if (ev!=null) {
035 ret.add(ev.toTree("element["+i+"]"));
036 }
037 }
038
039 return ret;
040 }
041
042 public TableModel toTable() {
043 DefaultTableModel tm=new DefaultTableModel(2,2);
044 tm.setColumnIdentifiers(new String[] {"Property", "Value"});
045 tm.setValueAt("type", 0, 0);
046 tm.setValueAt(oa.getClass().getName(), 0, 1);
047 tm.setValueAt("size", 1, 0);
048 tm.setValueAt(String.valueOf(oa.length), 1, 1);
049
050 return tm;
051 }
052
053 };
054 }
055
056 /**
057 * Callback method
058 */
059 public void setOwner(CompositeVisualizer owner) {
060 this.owner=owner;
061 }
062 }