package hermes.browser.dialog.message; import hermes.swing.PropertyRow; import hermes.swing.PropertyTableModel; import hermes.swing.PropertyType; import javax.swing.DefaultCellEditor; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.TableColumn; import com.jidesoft.grid.JideTable; public class GenericPropertyTable extends JideTable { public GenericPropertyTable(final PropertyTableModel model) { setModel(model) ; TableColumn typeColumn = getColumnModel().getColumn(1) ; DefaultComboBoxModel typeComboModel = new DefaultComboBoxModel(PropertyType.values()) ; final JComboBox typeCombo = new JComboBox(typeComboModel) ; typeColumn.setCellEditor(new DefaultCellEditor(typeCombo)) ; getSelectionModel().addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { PropertyRow row = model.getRow(getSelectedRow()) ; typeCombo.setSelectedItem(row.type) ; } }) ; } }