Author: fgilet Date: 2010-02-28 17:50:11 +0100 (Sun, 28 Feb 2010) New Revision: 146 Added: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ColumnModel.java Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/MSMNavigationListener.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/TableModel.java Log: Affichage d'une colonne suppl?\195?\169mentaire si besoin rajout?\195?\169e Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-02-28 15:19:21 UTC (rev 145) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-02-28 16:50:11 UTC (rev 146) @@ -161,11 +161,26 @@ DefaultTreeModel dtm = ((DefaultTreeModel) ui.getNavigation().getModel()); Set<String> tableNames = ohm.getTablesNames(); + Iterator i = tableNames.iterator(); while(i.hasNext()){ + + //display the node table String tableName = (String)i.next(); - dtm.insertNodeInto(new DefaultMutableTreeNode(tableName), root, root.getChildCount()); + DefaultMutableTreeNode tableNameToInsert = new DefaultMutableTreeNode(tableName); + dtm.insertNodeInto(tableNameToInsert, root, root.getChildCount()); + + //display the node column + Set<String> columnNames = ohm.getColumnsNames(tableName); + Iterator i2 = columnNames.iterator(); + while(i2.hasNext()){ + String columnName = (String)i2.next(); + DefaultMutableTreeNode columnNameToInsert = new DefaultMutableTreeNode(columnName); + dtm.insertNodeInto(columnNameToInsert, tableNameToInsert, tableNameToInsert.getChildCount()); + } + + } ui.getNavigation().repaint(); Added: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ColumnModel.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ColumnModel.java (rev 0) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ColumnModel.java 2010-02-28 16:50:11 UTC (rev 146) @@ -0,0 +1,84 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package org.nuiton.mapstoragemanager.ui.gui; + +import java.util.Iterator; +import java.util.Set; +import javax.swing.table.AbstractTableModel; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.TreeNode; +import org.nuiton.mapstoragemanager.plugins.OurHashMap2; + +/** + * Model of a table content + * @author E045231P + */ +public class ColumnModel extends AbstractTableModel { + + + /** + * columnNames. + */ + String[] titres; + + /** + * data. + */ + String[][] data; + + /** + * Constructor. + */ + public ColumnModel(TreeNode parent, DefaultMutableTreeNode node) { + String table = parent.toString(); + String column = node.toString(); + ApplicationEngine engine = ApplicationEngine.getInstance(); + OurHashMap2 testHashmap2 = engine.getOurHashMap(); + titres = new String[2]; + titres[0]="Key"; + titres[1]="Value"; + + //content + Set<String> keySetTable = testHashmap2.getKeys(table,column); + Iterator i = keySetTable.iterator(); + data = new String[2][keySetTable.size()]; + int j=0; + while(i.hasNext()){ + String key = (String)i.next(); + String value = testHashmap2.get(table, column, key); + data[0][j]=key; + data[1][j]=value; + j++; + } + } + + @Override + public Object getValueAt(int rowIndex, int colIndex) { + return data[colIndex][rowIndex]; + } + + @Override + public int getColumnCount() { + return titres.length; + } + + @Override + public int getRowCount() { + return data[0].length; + } + + @Override + public String getColumnName(int col){ + return titres[col]; + } + + @Override + public boolean isCellEditable(int row, int col) { + return false; + } + + +} Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/MSMNavigationListener.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/MSMNavigationListener.java 2010-02-28 15:19:21 UTC (rev 145) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/MSMNavigationListener.java 2010-02-28 16:50:11 UTC (rev 146) @@ -36,6 +36,20 @@ /* if nothing is selected */ if (node == null || node.isRoot()) { return; + } else if (node.isLeaf()){ + //we create a standard model of column + ColumnModel model = new ColumnModel(node.getParent(),node); + JTable jTable = new JTable(model); + + JScrollPane scrollPane = new JScrollPane(jTable); + jTable.setFillsViewportHeight(true); + + //we check attributes and values of the select table + + + //and display the result into the JPanel named 'tableContent' + ui.getTableContent().add(scrollPane); + } else { //we create a standard model of table TableModel model = new TableModel(node); @@ -54,6 +68,8 @@ ui.getTableName().add(new JLabel("<html><b><u>"+node.toString()+"</b></u></html>")); ui.getTableContent().repaint(); ui.getTableContent().revalidate(); + ui.getTableName().repaint(); + ui.getTableName().revalidate(); } Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/TableModel.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/TableModel.java 2010-02-28 15:19:21 UTC (rev 145) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/TableModel.java 2010-02-28 16:50:11 UTC (rev 146) @@ -39,99 +39,49 @@ OurHashMap2 hashmap = engine.getOurHashMap(); Set<String> columnsNames = hashmap.getColumnsNames(table); - titles = new String[columnsNames.size()+1]; + titles = new String[columnsNames.size()]; //content - Set<String> tableKeys = hashmap.getKeys(table); - Iterator<String> i = columnsNames.iterator(); - int colIndex = 0; - int rowIndex = 0; - System.out.println("set.size() : " + columnsNames.size() - + " | keySet.size() : " + tableKeys.size()); - data = new String[columnsNames.size()+1][tableKeys.size()]; - - // a column which shows keys. - titles[colIndex++] = n_("keys"); - + Set<String> keySetTable = hashmap.getKeys(table); + Iterator i = columnsNames.iterator(); + int colIndex=0; + int rowindex=0; + data = new String[columnsNames.size()][keySetTable.size()]; while(i.hasNext()){ - String titreTemp = i.next(); + String titreTemp = (String)i.next(); titles[colIndex] = titreTemp; - Set<String> columnKeys = - hashmap.getKeys(table, titles[colIndex]); + Set<String> columnKeys = hashmap.getKeys(table, titles[colIndex]); Iterator<String> i2 = columnKeys.iterator(); while(i2.hasNext()){ - String key = i2.next(); - System.out.println("table = " + table); - System.out.println("titreTemp = " + titreTemp); - String str = hashmap.get(table, titreTemp, key); - //data[j][k]=str; - // the key - this.setValueAt(rowIndex, 0, key); - this.setValueAt(rowIndex, colIndex, str); - System.out.println("data[" + colIndex + "][" + rowIndex + "] = " - + data[colIndex][rowIndex]); - rowIndex++; + String str = hashmap.get(table,titreTemp,(String)i2.next()); + data[colIndex][rowindex]=str; + rowindex++; } colIndex++; } } - /** - * put data into the table. - * @param rowIndex the rox index - * @param colIndex the column index - * @param value to put in the table. - */ - public void setValueAt(int rowIndex, int colIndex, String value) { - data[colIndex][rowIndex] = value; - } - - /** - * get data from the table. - * @param rowIndex the rox index - * @param colIndex the column index - */ @Override public Object getValueAt(int rowIndex, int colIndex) { return data[colIndex][rowIndex]; } - /** - * count the number of column. - * @return the column count - */ @Override public int getColumnCount() { return titles.length; } - /** - * count the number of line. - * @return the line count - */ @Override public int getRowCount() { return data[0].length; } - /** - * count the number of column. - * @param col the column number - * @return the name of the column col - */ @Override public String getColumnName(int col){ return titles[col]; } - - /** - * Check if the cell is editable. - * @param row the line number - * @param col the column number - * @return false - */ @Override public boolean isCellEditable(int row, int col) { return false;