KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jdesktop > swing > binding > TableBinding


1 /*
2  * $Id: TableBinding.java,v 1.4 2005/03/01 13:27:09 kleopatra Exp $
3  *
4  * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
5  * Santa Clara, California 95054, U.S.A. All rights reserved.
6  */

7 package org.jdesktop.swing.binding;
8
9 import javax.swing.JComponent JavaDoc;
10 import javax.swing.JTable JavaDoc;
11 import javax.swing.table.TableModel JavaDoc;
12
13 import org.jdesktop.swing.data.DataModel;
14 import org.jdesktop.swing.data.DataModelToTableModelAdapter;
15 import org.jdesktop.swing.data.TabularDataModel;
16 import org.jdesktop.swing.data.TabularMetaData;
17
18 /**
19  * Binding a JTable to a field in a DataModel. The field value must be
20  * of type TabularDataModel.
21  *
22  * PENDING: no buffering, no validation.
23  *
24  * @author Jeanette Winzenburg
25  */

26 public class TableBinding extends AbstractBinding implements Binding {
27
28     private JTable JavaDoc table;
29
30     protected TableBinding(JComponent JavaDoc component, DataModel dataModel, String JavaDoc fieldName) {
31         super(component, dataModel, fieldName, AUTO_VALIDATE_NONE);
32         // TODO Auto-generated constructor stub
33
}
34
35     public boolean isModified() {
36         return false;
37     }
38
39     public boolean isValid() {
40         return true;
41     }
42     
43     protected void setComponent(JComponent JavaDoc component) {
44         table = (JTable JavaDoc) component;
45
46     }
47
48     protected Object JavaDoc getComponentValue() {
49         // TODO Auto-generated method stub
50
return null;
51     }
52
53     protected void setComponentValue(Object JavaDoc value) {
54         if (value instanceof TabularDataModel) {
55             TableModel JavaDoc model = createTabularAdapter((TabularDataModel) value);
56             table.setModel(model);
57         }
58
59     }
60
61
62     private TableModel JavaDoc createTabularAdapter(TabularDataModel model) {
63         String JavaDoc[] fieldNames = null;
64         if (metaData instanceof TabularMetaData) {
65             fieldNames = ((TabularMetaData) metaData).getFieldNames();
66         }
67         return new DataModelToTableModelAdapter(model, fieldNames);
68     }
69
70     public JComponent JavaDoc getComponent() {
71         return table;
72     }
73
74 }
75
Popular Tags