001    /*
002     @license.text@
003      */
004    package biz.hammurapi.swing;
005    
006    import java.util.ArrayList;
007    import java.util.List;
008    
009    import javax.swing.tree.TreeNode;
010    
011    import biz.hammurapi.convert.Converter;
012    import biz.hammurapi.convert.ConvertingService;
013    
014    /**
015     * @author Pavel Vlasov
016     *
017     * @version $Revision: 1.1 $
018     */
019    public class ArrayVisualizer  {
020            
021            public Visualizable convert(final Object[] oa, final Converter master) {
022                    return new Visualizable() {
023    
024                            public TreeNode toTreeNode(TreeNode parent, String title) {
025                                    return new LazyTreeNode(parent, title+" ["+oa.length+"]") {
026    
027                                            protected List loadChildren() {
028                                                    ArrayList ret = new ArrayList();
029                                                    for (int i=0; i<oa.length; ++i) {
030                                                            Visualizable ev = (Visualizable) ConvertingService.convert(oa[i], Visualizable.class);
031                                                            ret.add(ev.toTreeNode(this, "["+i+"]"));
032                                                    }
033                                                    return ret;
034                                            }
035                                            
036                                    };
037                            }
038                            
039                    };
040            }
041    }