View Javadoc

1   /*
2    * Copyright (c) 2004-2005 by Michael Connor. All Rights Reserved.
3    *
4    * Redistribution and use in source and binary forms, with or without 
5    * modification, are permitted provided that the following conditions are met:
6    * 
7    *  o Redistributions of source code must retain the above copyright notice, 
8    *    this list of conditions and the following disclaimer. 
9    *     
10   *  o Redistributions in binary form must reproduce the above copyright notice, 
11   *    this list of conditions and the following disclaimer in the documentation 
12   *    and/or other materials provided with the distribution. 
13   *     
14   *  o Neither the name of FormLayoutBuilder or Michael Connor nor the names of 
15   *    its contributors may be used to endorse or promote products derived 
16   *    from this software without specific prior written permission. 
17   *     
18   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
19   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
20   * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
21   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
22   * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
23   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
24   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
25   * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
26   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
27   * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
28   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
29   */
30  package org.mlc.swing.layout;
31  
32  import java.util.ArrayList;
33  import java.util.List;
34  import java.util.Map;
35  
36  import javax.swing.JScrollPane;
37  import javax.swing.JTable;
38  import javax.swing.table.AbstractTableModel;
39  
40  /***
41   * This is the ComponentBuilder used to build JTables. When a JTable is added,
42   * it will be given some default data just so the user can get an idea of what
43   * it might look like.
44   * 
45   * @author Michael Connor
46   */
47  public class JTableComponentBuilder implements ComponentBuilder
48  {
49    List<BeanProperty> properties = new ArrayList<BeanProperty>();
50  
51    public JTableComponentBuilder()
52    {
53    }
54  
55    public String getDeclaration(String name,
56        java.util.Map<String, Object> beanProperties)
57    {
58      return "javax.swing.JTable " + name
59          + "Control = new javax.swing.JTable();\njavax.swing.JScrollPane "
60          + name + " = new javax.swing.JScrollPane(" + name + "Control);\n";
61    }
62  
63    public java.awt.Component getInstance(
64        java.util.Map<String, Object> beanProperties) throws Exception
65    {
66      JTable table = new JTable();
67      table.setModel(new AbstractTableModel()
68      {
69        public int getRowCount()
70        {
71          return 10;
72        }
73  
74        public int getColumnCount()
75        {
76          return 10;
77        }
78  
79        public Object getValueAt(int row, int col)
80        {
81          return "" + row + ":" + col;
82        }
83      });
84  
85      JScrollPane scrollPane = new JScrollPane(table);
86      return scrollPane;
87    }
88  
89    public java.util.List<BeanProperty> getProperties()
90    {
91      return properties;
92    }
93  
94    public boolean isComponentALayoutContainer()
95    {
96      return false;
97    }
98  
99    public String toString()
100   {
101     return "javax.swing.JTable";
102   }
103   public ComponentDef getComponentDef(String name, Map<String, Object> beanProperties)
104   {
105 	String imp  = "import javax.swing.JTable;\n" +
106 	              "import javax.swing.JScrollPane;";
107 	String decl = "JTable ${name}Control = new JTable();\n" +
108 	              "JScrollPane ${name} = new JScrollPane(${name}Control);";
109 	String add  = "${container}.add(${name}, \"${name}\");";
110 	ComponentDef cd = new ComponentDef(name,imp,decl,add);
111 	return cd;
112   }
113 
114 }