1 7 package org.jdesktop.swing.binding; 8 9 import javax.swing.JComponent ; 10 import javax.swing.JTable ; 11 import javax.swing.table.TableModel ; 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 26 public class TableBinding extends AbstractBinding implements Binding { 27 28 private JTable table; 29 30 protected TableBinding(JComponent component, DataModel dataModel, String fieldName) { 31 super(component, dataModel, fieldName, AUTO_VALIDATE_NONE); 32 } 34 35 public boolean isModified() { 36 return false; 37 } 38 39 public boolean isValid() { 40 return true; 41 } 42 43 protected void setComponent(JComponent component) { 44 table = (JTable ) component; 45 46 } 47 48 protected Object getComponentValue() { 49 return null; 51 } 52 53 protected void setComponentValue(Object value) { 54 if (value instanceof TabularDataModel) { 55 TableModel model = createTabularAdapter((TabularDataModel) value); 56 table.setModel(model); 57 } 58 59 } 60 61 62 private TableModel createTabularAdapter(TabularDataModel model) { 63 String [] fieldNames = null; 64 if (metaData instanceof TabularMetaData) { 65 fieldNames = ((TabularMetaData) metaData).getFieldNames(); 66 } 67 return new DataModelToTableModelAdapter(model, fieldNames); 68 } 69 70 public JComponent getComponent() { 71 return table; 72 } 73 74 } 75 | Popular Tags |