Author: dlanglais Date: 2010-03-25 21:57:50 +0100 (Thu, 25 Mar 2010) New Revision: 294 Log: Am?\195?\169lioration des ColumnModel et TableModel en vue de pouvoir effectuer des modifications sur une BigTable. cell editable si ce n'est pas une cellule de cl?\195?\169s. Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/TableModel.java Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java 2010-03-25 20:51:53 UTC (rev 293) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ColumnModel.java 2010-03-25 20:57:50 UTC (rev 294) @@ -5,9 +5,13 @@ import java.util.List; import java.util.Map; import java.util.Set; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.mapstoragemanager.plugins.BigTable; import static org.nuiton.i18n.I18n._; @@ -17,9 +21,20 @@ * @author Copyright CodeLutin * @since 0.1-SNAPSHOT */ -public class ColumnModel extends AbstractTableModel { +public class ColumnModel extends AbstractTableModel + implements TableModelListener { + /** + * Logger. + */ + private static final Log LOG = LogFactory.getLog(ApplicationEngine.class); + /** The table's name. */ + private String tableName; + + /** The column's name. */ + private String columnName; + /** * columnNames. */ @@ -38,8 +53,8 @@ public ColumnModel(final TreeNode parent, final DefaultMutableTreeNode node) { // table and column names. - String tableName = parent.toString(); - String columnName = node.toString(); + tableName = parent.toString(); + columnName = node.toString(); ApplicationEngine engine = ApplicationEngine.getInstance(); BigTable bigTable = engine.getBigTable(); @@ -105,8 +120,32 @@ */ @Override public final boolean isCellEditable(final int row, final int col) { - return false; + /** If column is the key column, it's impossible to edit it */ + return (col == 0 ? false : true); } + /** + * {@inheritDoc} + */ + @Override + public void tableChanged(TableModelEvent e) { + /** row and column */ + final int row = e.getFirstRow(); + final int column = e.getColumn(); + final TableModel model = (TableModel)e.getSource(); + /** Get Engine and BigTable instance */ + final ApplicationEngine engine = ApplicationEngine.getInstance(); + final BigTable bigTable = engine.getBigTable(); + + /** Get table Name, ColumnName... to put them in the bigTable */ + final String tableName = ""; + final String columnName = model.getColumnName(column); + final String key = (String) model.getValueAt(row, 0); + final String content = (String) model.getValueAt(row, column); + + LOG.info(tableName + ":" + columnName + ":" + key + "=>" + content); + + bigTable.put(tableName, columnName, key, content); + } } Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/TableModel.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/TableModel.java 2010-03-25 20:51:53 UTC (rev 293) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/TableModel.java 2010-03-25 20:57:50 UTC (rev 294) @@ -14,7 +14,9 @@ */ public class TableModel extends AbstractTableModel { - + /** The table's name. */ + private String tableName; + /** * columnNames. */ @@ -35,14 +37,14 @@ * @param node the selected node. */ public TableModel(final DefaultMutableTreeNode node) { - String table = node.toString(); + tableName = node.toString(); ApplicationEngine engine = ApplicationEngine.getInstance(); BigTable bigTable = engine.getBigTable(); - Set<String> columnsNames = bigTable.getColumnsNames(table); + Set<String> columnsNames = bigTable.getColumnsNames(tableName); //content - Set<String> tableKeys = bigTable.getKeys(table); + Set<String> tableKeys = bigTable.getKeys(tableName); // Iterator<String> columnName = columnsNames.iterator(); /** @@ -68,7 +70,7 @@ rowindex = 0; for (String key : tableKeys) { - String str = bigTable.get(table, columnName, key); + String str = bigTable.get(tableName, columnName, key); if (showTableKeys) { data[0][rowindex] = key; } @@ -116,7 +118,8 @@ */ @Override public final boolean isCellEditable(final int row, final int col) { - return false; + /** If column is the key column, it's impossible to edit it */ + return (col == 0 ? false : true); }
participants (1)
-
dlanglais@users.nuiton.org