Index: lutinutil/src/java/org/codelutin/option/ui/ConfigTableModel.java diff -u lutinutil/src/java/org/codelutin/option/ui/ConfigTableModel.java:1.4 lutinutil/src/java/org/codelutin/option/ui/ConfigTableModel.java:1.5 --- lutinutil/src/java/org/codelutin/option/ui/ConfigTableModel.java:1.4 Wed Jan 9 01:35:35 2008 +++ lutinutil/src/java/org/codelutin/option/ui/ConfigTableModel.java Wed Jan 9 02:34:33 2008 @@ -23,8 +23,7 @@ import org.codelutin.option.ConfigPropertyKey; import org.codelutin.util.ArrayUtil; -import javax.swing.event.TableModelListener; -import javax.swing.table.TableModel; +import javax.swing.table.AbstractTableModel; import java.util.LinkedHashMap; import java.util.Map; @@ -33,7 +32,9 @@ * * @author chemit */ -public class ConfigTableModel implements TableModel { +public class ConfigTableModel extends AbstractTableModel { + + private static final long serialVersionUID = -1457510439292016551L; /** * Une enum pour définir les types de données à ajouter au model @@ -124,11 +125,12 @@ if (isModified(i)) { ConfigPropertyKey key = (ConfigPropertyKey) getKey(i); Object value = props.get(key); - System.out.println(_("transfert property {0} value {1}",key.getKey(),value)); - config.addProperty(key,value); + System.out.println(_("transfert property {0} value {1}", key.getKey(), value)); + config.addProperty(key, value); } } } + public void reset() { for (int i = 0; i < getRowCount(); i++) { if (isModified(i)) { @@ -136,14 +138,7 @@ props.put(key, key.getCurrentValue()); } } - } - - public void addTableModelListener(TableModelListener l) { - - } - - public void removeTableModelListener(TableModelListener l) { - + fireTableDataChanged(); } public int getRowCount() { @@ -154,38 +149,47 @@ return 2; } + public Object getValueAt(int row, int column) { + ConfigPropertyKey key = getKey(row); + if (column == 0) { + return key.getKey(); + } + return props.get(key); + } + + @Override public String getColumnName(int columnIndex) { return columnNames[columnIndex]; } + @Override public Class getColumnClass(int columnIndex) { return columnClass[columnIndex]; } + @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return columnIndex == 1 && !keys[rowIndex].isFinal(); } - public Object getValueAt(int row, int column) { - ConfigPropertyKey key = getKey(row); - if (column == 0) { - return key.getKey(); - } - return props.get(key); - } - + @Override @SuppressWarnings({"unchecked"}) public void setValueAt(Object aValue, int row, int column) { if (column == 0) { return; } ConfigPropertyKey key = getKey(row); - Object val = key.convert(key.getType(), aValue); + Object val; + try { + val = key.convert(key.getType(), aValue); + } catch (Exception e) { + val=null; + } //System.out.println(_("new Value for {0} : {1} (oldValue:{2})", key.getKey(), val, key.getCurrentValue())); props.put(key, val); + if (column != 0) { + fireTableDataChanged(); + } } - public ConfigPropertyKey[] getKeys() { - return keys; - } }