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 }