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    /**
012     * @author Pavel Vlasov
013     * @revision $Revision: 1.1 $
014     */
015    public class PrimitivesVisualizer {
016            private static class PrimitiveVisualizable implements Visualizable {
017                    Object o;
018                    
019                    public PrimitiveVisualizable(Object o) {
020                            this.o=o;
021                    }
022                    
023                    public MutableTreeNode toTree(final String title) {
024                            return new DefaultMutableTreeNode(o) {
025                                    public String toString() {
026                                            return title+" ["+o.getClass().getName()+"] "+o;
027                                    }
028                            }; 
029                    }
030    
031                    public TableModel toTable() {
032                            DefaultTableModel tm=new DefaultTableModel(1,2);
033                            tm.setColumnIdentifiers(new String[] {"Type", "Value"});
034                            tm.setValueAt(o.getClass().getName(), 0, 0);
035                            tm.setValueAt(o, 0, 1);
036                            
037                            return tm;
038                    }
039                    
040            }
041            
042            
043            public Visualizable toVisualizable(final String o) {
044                    return new PrimitiveVisualizable(o);
045            }
046    
047            public Visualizable toVisualizable(final Number o) {
048                    return new PrimitiveVisualizable(o);
049            }
050    
051            public Visualizable toVisualizable(final Boolean o) {
052                    return new PrimitiveVisualizable(o);
053            }
054    
055            public Visualizable toVisualizable(final Character o) {
056                    return new PrimitiveVisualizable(o);
057            }
058    }