1 29 30 package nextapp.echo2.testapp.interactive.testscreen; 31 32 import nextapp.echo2.app.Column; 33 import nextapp.echo2.app.Component; 34 import nextapp.echo2.app.Extent; 35 import nextapp.echo2.app.Insets; 36 import nextapp.echo2.app.SelectField; 37 import nextapp.echo2.app.Table; 38 import nextapp.echo2.app.TextField; 39 import nextapp.echo2.app.layout.SplitPaneLayoutData; 40 import nextapp.echo2.app.list.AbstractListModel; 41 import nextapp.echo2.app.list.DefaultListModel; 42 import nextapp.echo2.app.list.ListModel; 43 import nextapp.echo2.app.table.DefaultTableModel; 44 import nextapp.echo2.app.table.TableCellRenderer; 45 import nextapp.echo2.app.text.StringDocument; 46 47 51 public class ListRenderTableTest extends Column { 52 53 private ListModel monthModel = new DefaultListModel(new Object []{ "January", "Februrary", "March", "April", "May", 54 "June", "July", "August", "September", "October", "November", "December"}); 55 56 private ListModel dayModel = new AbstractListModel(){ 57 58 61 public int size() { 62 return 31; 63 } 64 65 68 public Object get(int index) { 69 return Integer.toString(index + 1); 70 } 71 }; 72 73 private ListModel yearModel = new AbstractListModel(){ 74 75 78 public int size() { 79 return 200; 80 } 81 82 85 public Object get(int index) { 86 return Integer.toString(index + 1850); 87 } 88 }; 89 90 public ListRenderTableTest() { 91 setCellSpacing(new Extent(10)); 92 93 SplitPaneLayoutData splitPaneLayoutData = new SplitPaneLayoutData(); 94 splitPaneLayoutData.setInsets(new Insets(10)); 95 setLayoutData(splitPaneLayoutData); 96 97 DefaultTableModel model = new DefaultTableModel(); 98 model.setColumnCount(4); 99 for (int i = 0; i < 10; ++i) { 100 model.addRow(new Object []{"John Smith", new Integer (0), new Integer (4), new Integer (1982)}); 101 } 102 103 TableCellRenderer renderer = new TableCellRenderer() { 104 105 public Component getTableCellRendererComponent(Table table, Object value, int column, int row) { 106 switch (column) { 107 case 0: 108 TextField tf = new TextField(new StringDocument(), value.toString(), 30); 109 return tf; 110 case 1: 111 SelectField monthField = new SelectField(monthModel); 112 monthField.setSelectedIndex(((Integer ) value).intValue()); 113 return monthField; 114 case 2: 115 SelectField dayField = new SelectField(dayModel); 116 dayField.setSelectedIndex(((Integer ) value).intValue() - 1); 117 return dayField; 118 case 3: 119 SelectField yearField = new SelectField(yearModel); 120 yearField.setSelectedIndex(((Integer ) value).intValue() - 1850); 121 return yearField; 122 } 123 return null; 124 } 125 }; 126 127 Table table = new Table(model); 128 table.setStyleName("Default"); 129 table.setDefaultRenderer(Object .class, renderer); 130 add(table); 131 } 132 } 133 | Popular Tags |