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