Author: dlanglais Date: 2010-02-27 03:06:19 +0100 (Sat, 27 Feb 2010) New Revision: 133 Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/TableModel.java Log: Am?\195?\169lioration code OurHashMap2 (plus compr?\195?\169hensible de mon point de vue, mais c'est subjectif). Ajout d'une colonne keys dans le tableau d'une table. -> modification des objets stock?\195?\169s pour "mieux s'y retrouver -> les doublons peuvent faire croire que tout marche...). Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java 2010-02-27 00:45:14 UTC (rev 132) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java 2010-02-27 02:06:19 UTC (rev 133) @@ -41,18 +41,18 @@ @Override public void createColumn(String table, String column) { - if(mapTable.containsKey(table)){ + // if the table exist and only if the column doesn't exist. + if (mapTable.containsKey(table) && !mapColumn.containsKey(column)) { mapColumn.put(column, new ArrayList<String>()); - ArrayList<String> list; - list = mapTable.get(table); - list.add(column); - mapTable.put(table,list); + mapTable.get(table).add(column); } } @Override public void deleteColumn(String table, String column) { - if(mapTable.containsKey(table)){ + // if the table exist and only if the column exist. + if (mapTable.containsKey(table) && + mapTable.get(table).contains(column)) { mapTable.get(table).remove(column); } } @@ -67,10 +67,7 @@ public void put(String table, String column, String key, String content) { if(mapTable.containsKey(table)){ if(mapColumn.containsKey(column)){ - ArrayList<String> list; - list = mapColumn.get(column); - list.add(key); - mapColumn.put(column,list); + mapColumn.get(column).add(key); mapData.put(key, content); } } @@ -104,17 +101,16 @@ @Override public Set<String> getKeys(String table) { - Set<String> keys = new HashSet(); - Set<String> column = new HashSet(mapTable.get(table)); - Iterator i = column.iterator(); + Set<String> tableKeys = new HashSet(); + Set<String> tableColumns = new HashSet(mapTable.get(table)); + Iterator<String> i = tableColumns.iterator(); + // we get and add all the keys of the column to the keys of the table while(i.hasNext()){ - String columnName = (String)i.next(); - ArrayList<String> al = mapColumn.get(columnName); - for(int j=0;j<al.size();j++){ - keys.add(al.get(j)); - } + String columnName = i.next(); + ArrayList<String> columnKeys = mapColumn.get(columnName); + tableKeys.addAll(columnKeys); } - return keys; + return tableKeys; } public Set<String> getKeys(String table, String column) { 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-27 00:45:14 UTC (rev 132) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-02-27 02:06:19 UTC (rev 133) @@ -74,12 +74,12 @@ ohm.put("table1", "column2", "3", "content3"); ohm.put("table1", "column2", "4", "content4"); - ohm.put("table2", "column3", "5", "content1"); - ohm.put("table2", "column3", "6", "content2"); - ohm.put("table2", "column4", "7", "content3"); - ohm.put("table2", "column4", "8", "content4"); - ohm.put("table2", "column5", "9", "content3"); - ohm.put("table2", "column5", "10", "content4"); + ohm.put("table2", "column3", "5", "content5"); + ohm.put("table2", "column3", "6", "content6"); + ohm.put("table2", "column4", "7", "content7"); + ohm.put("table2", "column4", "8", "content8"); + ohm.put("table2", "column5", "9", "content9"); + ohm.put("table2", "column5", "10", "content10"); } /** 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-27 00:45:14 UTC (rev 132) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/TableModel.java 2010-02-27 02:06:19 UTC (rev 133) @@ -21,7 +21,7 @@ /** * columnNames. */ - String[] titres; + String[] titles; /** * data. @@ -34,38 +34,59 @@ public TableModel(DefaultMutableTreeNode node) { String table = node.toString(); ApplicationEngine engine = ApplicationEngine.getInstance(); - OurHashMap2 testHashmap2 = engine.getOurHashMap(); - Set<String> set = testHashmap2.getColumnsNames(table); - titres = new String[set.size()]; + OurHashMap2 hashmap = engine.getOurHashMap(); + Set<String> columnsNames = hashmap.getColumnsNames(table); + titles = new String[columnsNames.size()+1]; + //content - Set<String> keySetTable = testHashmap2.getKeys(table); - Iterator i = set.iterator(); - int j=0; - int k=0; - System.out.println("set.size() : "+set.size()+" | keySet.size() : "+keySetTable.size()); - data = new String[set.size()][keySetTable.size()]; + 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++] = "keys"; + while(i.hasNext()){ - String titreTemp = (String)i.next(); - titres[j]=titreTemp; + String titreTemp = i.next(); + titles[colIndex] = titreTemp; - Set<String> keySet = testHashmap2.getKeys(table,titres[j]); - Iterator i2 = keySet.iterator(); + Set<String> columnKeys = + hashmap.getKeys(table, titles[colIndex]); + Iterator<String> i2 = columnKeys.iterator(); while(i2.hasNext()){ - System.out.println("table = "+table); - System.out.println("titreTemp = "+titreTemp); - String str = testHashmap2.get(table,titreTemp,(String)i2.next()); - data[j][k]=str; - System.out.println("data["+j+"]["+k+"] = "+data[j][k]); - k++; + 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++; } - j++; + 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; + } /** - * Add data into the table. + * get data from the table. * @param rowIndex the rox index * @param colIndex the column index */ @@ -80,7 +101,7 @@ */ @Override public int getColumnCount() { - return titres.length; + return titles.length; } /** @@ -99,7 +120,7 @@ */ @Override public String getColumnName(int col){ - return titres[col]; + return titles[col]; }