Author: chatellier Date: 2010-10-25 13:29:14 +0000 (Mon, 25 Oct 2010) New Revision: 97 Log: Ajout du support de la sauvegarde des index dans les sauvegarde interm?\195?\169diaires de coser Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/AbstractDataEntity.java trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Catch.java trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Haul.java trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Length.java trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Strata.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java trunk/coser-business/src/main/resources/i18n/coser-business-en_GB.properties trunk/coser-business/src/main/resources/i18n/coser-business-fr_FR.properties trunk/coser-business/src/test/java/fr/ifremer/coser/services/ImportServiceTest.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlDataTableModel.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/AbstractDataEntity.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/AbstractDataEntity.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/AbstractDataEntity.java 2010-10-25 13:29:14 UTC (rev 97) @@ -25,6 +25,8 @@ package fr.ifremer.coser.bean; +import static org.nuiton.i18n.I18n.n_; + /** * Abstract entity to add all common data array code. * @@ -38,7 +40,10 @@ /** serialVersionUID. */ private static final long serialVersionUID = 4188448448464323807L; - + + public static final int INDEX_LINE = 0; + public static final String PROPERTY_LINE = n_("coser.business.line"); + protected String[] data; public String[] getData() { @@ -48,4 +53,14 @@ public void setData(String[] data) { this.data = data; } + + public void setLine(String value) { + String oldValue = data[INDEX_LINE]; + data[INDEX_LINE] = value; + getPropertyChangeSupport().firePropertyChange(PROPERTY_LINE, oldValue, value); + } + + public String getLine() { + return data[INDEX_LINE]; + } } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Catch.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Catch.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Catch.java 2010-10-25 13:29:14 UTC (rev 97) @@ -50,64 +50,71 @@ public static final String[] EN_HEADERS = { "Survey","Year","Haul","Species","Number","Weight" }; - + + public static final int INDEX_SURVEY = 1; + public static final int INDEX_YEAR = 2; + public static final int INDEX_HAUL = 3; + public static final int INDEX_SPECIES = 4; + public static final int INDEX_NUMBER = 5; + public static final int INDEX_WEIGHT = 6; + public void setSurvey(String value) { - String oldValue = data[0]; - data[0] = value; + String oldValue = data[INDEX_SURVEY]; + data[INDEX_SURVEY] = value; getPropertyChangeSupport().firePropertyChange("survey", oldValue, value); } public String getSurvey() { - return data[0]; + return data[INDEX_SURVEY]; } - + public void setYear(String value) { - String oldValue = data[1]; - data[1] = value; + String oldValue = data[INDEX_YEAR]; + data[INDEX_YEAR] = value; getPropertyChangeSupport().firePropertyChange("year", oldValue, value); } public String getYear() { - return data[1]; + return data[INDEX_YEAR]; } public void setHaul(String value) { - String oldValue = data[2]; - data[2] = value; + String oldValue = data[INDEX_HAUL]; + data[INDEX_HAUL] = value; getPropertyChangeSupport().firePropertyChange("haul", oldValue, value); } public String getHaul() { - return data[2]; + return data[INDEX_HAUL]; } public void setSpecies(String value) { - String oldValue = data[3]; - data[3] = value; + String oldValue = data[INDEX_SPECIES]; + data[INDEX_SPECIES] = value; getPropertyChangeSupport().firePropertyChange("species", oldValue, value); } public String getSpecies() { - return data[3]; + return data[INDEX_SPECIES]; } public void setNumber(String value) { - String oldValue = data[4]; - data[4] = String.valueOf(value); + String oldValue = data[INDEX_NUMBER]; + data[INDEX_NUMBER] = String.valueOf(value); getPropertyChangeSupport().firePropertyChange("number", oldValue, value); } public String getNumber() { - return data[4]; + return data[INDEX_NUMBER]; } public void setWeight(String value) { - String oldValue = data[5]; - data[5] = value; + String oldValue = data[INDEX_WEIGHT]; + data[INDEX_WEIGHT] = value; getPropertyChangeSupport().firePropertyChange("weight", oldValue, value); } public String getWeight() { - return data[5]; + return data[INDEX_WEIGHT]; } } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Haul.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Haul.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Haul.java 2010-10-25 13:29:14 UTC (rev 97) @@ -50,94 +50,104 @@ public static final String[] EN_HEADERS = { "Survey","Year","Haul","Month","Stratum","SweptSurface","Lat","Long","Depth" }; - + + public static final int INDEX_SURVEY = 1; + public static final int INDEX_YEAR = 2; + public static final int INDEX_HAUL = 3; + public static final int INDEX_MONTH = 4; + public static final int INDEX_STRATUM = 5; + public static final int INDEX_SWEPT_SURFACE = 6; + public static final int INDEX_LAT = 7; + public static final int INDEX_LONG = 8; + public static final int INDEX_DEPTH = 9; + public void setSurvey(String value) { - String oldValue = data[0]; - data[0] = value; + String oldValue = data[INDEX_SURVEY]; + data[INDEX_SURVEY] = value; getPropertyChangeSupport().firePropertyChange("survey", oldValue, value); } public String getSurvey() { - return data[0]; + return data[INDEX_SURVEY]; } public void setYear(String value) { - String oldValue = data[1]; - data[1] = value; + String oldValue = data[INDEX_YEAR]; + data[INDEX_YEAR] = value; getPropertyChangeSupport().firePropertyChange("year", oldValue, value); } public String getYear() { - return data[1]; + return data[INDEX_YEAR]; } public void setHaul(String value) { - String oldValue = data[2]; - data[2] = value; + String oldValue = data[INDEX_HAUL]; + data[INDEX_HAUL] = value; getPropertyChangeSupport().firePropertyChange("haul", oldValue, value); } public String getHaul() { - return data[2]; + return data[INDEX_HAUL]; } public void setMonth(String value) { - String oldValue = data[3]; - data[3] = value; + String oldValue = data[INDEX_MONTH]; + data[INDEX_MONTH] = value; getPropertyChangeSupport().firePropertyChange("month", oldValue, value); } public String getMonth() { - return data[3]; + return data[INDEX_MONTH]; } public void setStratum(String value) { - String oldValue = data[4]; - data[4] = value; + String oldValue = data[INDEX_STRATUM]; + data[INDEX_STRATUM] = value; getPropertyChangeSupport().firePropertyChange("stratum", oldValue, value); } public String getStratum() { - return data[4]; + return data[INDEX_STRATUM]; } public void setSweptSurface(String value) { - String oldValue = data[5]; - data[5] = value; + String oldValue = data[INDEX_SWEPT_SURFACE]; + data[INDEX_SWEPT_SURFACE] = value; getPropertyChangeSupport().firePropertyChange("sweptSurface", oldValue, value); } public String getSweptSurface() { - return data[5]; + return data[INDEX_SWEPT_SURFACE]; } public void setLat(String value) { - String oldValue = data[6]; - data[6] = value; + String oldValue = data[INDEX_LAT]; + data[INDEX_LAT] = value; getPropertyChangeSupport().firePropertyChange("lat", oldValue, value); } public String getLat() { - return data[6]; + return data[INDEX_LAT]; } public void setLong(String value) { - String oldValue = data[7]; - data[7] = value; + String oldValue = data[INDEX_LONG]; + data[INDEX_LONG] = value; getPropertyChangeSupport().firePropertyChange("long", oldValue, value); } public String getLong() { - return data[7]; + return data[INDEX_LONG]; } public void setDepth(String value) { - String oldValue = data[8]; - data[8] = value; + String oldValue = data[INDEX_DEPTH]; + data[INDEX_DEPTH] = value; getPropertyChangeSupport().firePropertyChange("depth", oldValue, value); } public String getDepth() { - return data[8]; + return data[INDEX_DEPTH]; } } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Length.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Length.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Length.java 2010-10-25 13:29:14 UTC (rev 97) @@ -49,105 +49,106 @@ public static final String[] EN_HEADERS = { "Survey","Year","Haul","Species","Sex","Maturity","Length","Number","Weight","Age" }; - - protected String[] data; - public String[] getData() { - return data; - } - - public void setData(String[] data) { - this.data = data; - } + public static final int INDEX_SURVEY = 1; + public static final int INDEX_YEAR = 2; + public static final int INDEX_HAUL = 3; + public static final int INDEX_SPECIES = 4; + public static final int INDEX_SEX = 5; + public static final int INDEX_MATURITY = 6; + public static final int INDEX_LENGTH = 7; + public static final int INDEX_NUMBER = 8; + public static final int INDEX_WEIGHT = 9; + public static final int INDEX_AGE = 10; public void setSurvey(String value) { - String oldValue = data[0]; - data[0] = value; + String oldValue = data[INDEX_SURVEY]; + data[INDEX_SURVEY] = value; getPropertyChangeSupport().firePropertyChange("survey", oldValue, value); } public String getSurvey() { - return data[0]; + return data[INDEX_SURVEY]; } public void setYear(String value) { - String oldValue = data[1]; - data[1] = value; + String oldValue = data[INDEX_YEAR]; + data[INDEX_YEAR] = value; getPropertyChangeSupport().firePropertyChange("year", oldValue, value); } public String getYear() { - return data[1]; + return data[INDEX_YEAR]; } public void setHaul(String value) { - String oldValue = data[2]; - data[2] = value; + String oldValue = data[INDEX_HAUL]; + data[INDEX_HAUL] = value; getPropertyChangeSupport().firePropertyChange("haul", oldValue, value); } public String getHaul() { - return data[2]; + return data[INDEX_HAUL]; } public void setSpecies(String value) { - String oldValue = data[3]; - data[3] = value; + String oldValue = data[INDEX_SPECIES]; + data[INDEX_SPECIES] = value; getPropertyChangeSupport().firePropertyChange("species", oldValue, value); } public String getSpecies() { - return data[3]; + return data[INDEX_SPECIES]; } public void setSex(String value) { - String oldValue = data[4]; - data[4] = value; + String oldValue = data[INDEX_SEX]; + data[INDEX_SEX] = value; getPropertyChangeSupport().firePropertyChange("sex", oldValue, value); } public String getSex() { - return data[4]; + return data[INDEX_SEX]; } public void setMaturity(String value) { - String oldValue = data[5]; - data[5] = value; + String oldValue = data[INDEX_MATURITY]; + data[INDEX_MATURITY] = value; getPropertyChangeSupport().firePropertyChange("maturity", oldValue, value); } public String getMaturity() { - return data[5]; + return data[INDEX_MATURITY]; } public void setLength(String value) { - String oldValue = data[6]; - data[6] = value; + String oldValue = data[INDEX_LENGTH]; + data[INDEX_LENGTH] = value; getPropertyChangeSupport().firePropertyChange("length", oldValue, value); } public String getLength() { - return data[6]; + return data[INDEX_LENGTH]; } public void setNumber(String value) { - String oldValue = data[7]; - data[7] = value; + String oldValue = data[INDEX_NUMBER]; + data[INDEX_NUMBER] = value; getPropertyChangeSupport().firePropertyChange("number", oldValue, value); } public String getNumber() { - return data[7]; + return data[INDEX_NUMBER]; } public void setWeight(String value) { - String oldValue = data[8]; - data[8] = value; + String oldValue = data[INDEX_WEIGHT]; + data[INDEX_WEIGHT] = value; getPropertyChangeSupport().firePropertyChange("weight", oldValue, value); } public String getWeight() { - return data[8]; + return data[INDEX_WEIGHT]; } /** @@ -156,8 +157,8 @@ * @param value new value to set */ public void setAge(String value) { - String oldValue = data[9]; - data[9] = value; + String oldValue = data[INDEX_AGE]; + data[INDEX_AGE] = value; getPropertyChangeSupport().firePropertyChange("age", oldValue, value); } @@ -167,6 +168,6 @@ * @return age */ public String getAge() { - return data[9]; + return data[INDEX_AGE]; } } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Strata.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Strata.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Strata.java 2010-10-25 13:29:14 UTC (rev 97) @@ -51,44 +51,38 @@ "Survey","Stratum","Surface" }; - protected String[] data; + public static final int INDEX_SURVEY = 1; + public static final int INDEX_STRATUM = 2; + public static final int INDEX_SURFACE = 3; - public String[] getData() { - return data; - } - - public void setData(String[] data) { - this.data = data; - } - public void setSurvey(String value) { - String oldValue = data[0]; - data[0] = value; + String oldValue = data[INDEX_SURVEY]; + data[INDEX_SURVEY] = value; getPropertyChangeSupport().firePropertyChange("survey", oldValue, value); } public String getSurvey() { - return data[0]; + return data[INDEX_SURVEY]; } public void setStratum(String value) { - String oldValue = data[1]; - data[1] = value; + String oldValue = data[INDEX_STRATUM]; + data[INDEX_STRATUM] = value; getPropertyChangeSupport().firePropertyChange("stratum", oldValue, value); } public String getStratum() { - return data[1]; + return data[INDEX_STRATUM]; } public void setSurface(String value) { - String oldValue = data[2]; - data[2] = value; + String oldValue = data[INDEX_SURFACE]; + data[INDEX_SURFACE] = value; getPropertyChangeSupport().firePropertyChange("surface", oldValue, value); } public String getSurface() { - return data[2]; + return data[INDEX_SURFACE]; } } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ImportService.java 2010-10-25 13:29:14 UTC (rev 97) @@ -43,6 +43,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; +import org.nuiton.util.ArrayUtil; import au.com.bytecode.opencsv.CSVReader; import au.com.bytecode.opencsv.CSVWriter; @@ -50,6 +51,7 @@ import fr.ifremer.coser.CoserBusinessException; import fr.ifremer.coser.CoserConstants; import fr.ifremer.coser.CoserConstants.Category; +import fr.ifremer.coser.bean.AbstractDataEntity; import fr.ifremer.coser.bean.Catch; import fr.ifremer.coser.bean.Haul; import fr.ifremer.coser.bean.Length; @@ -81,17 +83,19 @@ * @param project project * @param category category * @param file file to load + * @param originalLoading dans le cas d'un reload, la colonne "line" est a prendre en compte + * pour les data (elle est absente dans les jeux de données originaux) * @return project * @throws CoserBusinessException */ - public Project loadCSVFile(Project project, Category category, File file) throws CoserBusinessException { - + public Project loadCSVFile(Project project, Category category, File file, boolean originalLoading) throws CoserBusinessException { + DataStorage content = new MemoryListStorage(); - + Reader reader = null; CSVReader csvReader = null; try { - + reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), CoserConstants.CSV_FILE_ENCODING)); csvReader = new CSVReader(reader, CoserConstants.CSV_SEPARATOR_CHAR); @@ -102,12 +106,24 @@ file.getAbsolutePath(), CoserConstants.CSV_SEPARATOR_CHAR)); } else { - checkFileHeader(category, line); + if (originalLoading) { + checkFileHeader(category, line); + if (category.isDataCategory()) { + line = (String[])ArrayUtil.concat(new String[]{AbstractDataEntity.PROPERTY_LINE}, line); + } + } content.add(line); } - + + // pour alimenter la line index (si non reloading) + int lineIndex = 0; while ((line = csvReader.readNext()) != null) { if (line.length>1) { + if (originalLoading && category.isDataCategory()) { + // ajout de la colonne "line" en debut (seulement pour les data) + line = (String[])ArrayUtil.concat(new String[]{String.valueOf(lineIndex)}, line); + lineIndex++; + } content.add(line); } } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-10-25 13:29:14 UTC (rev 97) @@ -46,6 +46,8 @@ import fr.ifremer.coser.CoserBusinessException; import fr.ifremer.coser.CoserConstants; import fr.ifremer.coser.CoserConstants.Category; +import fr.ifremer.coser.bean.Catch; +import fr.ifremer.coser.bean.Haul; import fr.ifremer.coser.bean.Project; import fr.ifremer.coser.bean.Specy; @@ -118,7 +120,7 @@ CoserConstants.STORAGE_CSV_EXTENSION); if (inputFile.isFile()) { - project = importService.loadCSVFile(project, category, inputFile); + project = importService.loadCSVFile(project, category, inputFile, false); fileLoaded++; } else { @@ -139,7 +141,7 @@ category.getStorageFileName() + CoserConstants.STORAGE_CSV_EXTENSION); if (storageDataFile.isFile()) { - project = importService.loadCSVFile(project, category, storageDataFile); + project = importService.loadCSVFile(project, category, storageDataFile, true); } else { // si on arrive ici et qu'un fichier original @@ -156,7 +158,7 @@ CoserConstants.STORAGE_CSV_EXTENSION); if (inputFile.isFile()) { - project = importService.loadCSVFile(project, Category.REFTAX_SPECIES, inputFile); + project = importService.loadCSVFile(project, Category.REFTAX_SPECIES, inputFile, true); } else { // si on arrive ici et qu'un fichier original @@ -200,7 +202,7 @@ for (Map.Entry<Category, File> categoryAndFile : categoriesAndFiles.entrySet()) { Category category = categoryAndFile.getKey(); File dataFile = categoryAndFile.getValue(); - project = importService.loadCSVFile(project, category, dataFile); + project = importService.loadCSVFile(project, category, dataFile, true); } // create new project directory @@ -325,11 +327,11 @@ while (itTuple.hasNext()) { String[] tuple = itTuple.next(); // Campagne;Annee;Trait;Mois;Strate;SurfaceBalayee;Lat;Long;ProfMoy - String annee = tuple[1]; + String annee = tuple[Haul.INDEX_YEAR]; int intAnnee = Integer.parseInt(annee); if (intAnnee >= beginYear && intAnnee <= endYear) { - String strates = tuple[4]; + String strates = tuple[Haul.INDEX_STRATUM]; if (!result.contains(strates)) { result.add(strates); } @@ -356,7 +358,7 @@ itTuple.next(); // header while (itTuple.hasNext()) { String[] tuple = itTuple.next(); - String year = tuple[1]; + String year = tuple[Haul.INDEX_YEAR]; try { Integer integerYear = Integer.valueOf(year); years.add(integerYear); @@ -391,12 +393,12 @@ while (itTuple.hasNext()) { String[] tuple = itTuple.next(); // "Campagne","Annee","Trait","Espece","Nombre","Poids" - String annee = tuple[1]; + String annee = tuple[Catch.INDEX_YEAR]; try { int intAnnee = Integer.parseInt(annee); if (intAnnee >= beginYear && intAnnee <= endYear) { - String species = tuple[3]; + String species = tuple[Catch.INDEX_SPECIES]; if (!result.containsKey(species)) { Specy specy = new Specy(); specy.setName(species); @@ -502,9 +504,9 @@ // si les valeurs servant au bornes de regroupement // on changer, on reset les données du merge - String currentCampagne = tuple[0]; - String currentAnnee = tuple[1]; - String currentTraits = tuple[2]; + String currentCampagne = tuple[Catch.INDEX_SURVEY]; + String currentAnnee = tuple[Catch.INDEX_YEAR]; + String currentTraits = tuple[Catch.INDEX_HAUL]; if (!currentCampagne.equals(lastCampagne) || !currentAnnee.equals(lastAnnee) || !currentTraits.equals(lastTraits)) { @@ -516,7 +518,7 @@ } // test si l'espece en cours fait partie de celle a merger - String species = tuple[3]; + String species = tuple[Catch.INDEX_SPECIES]; boolean specyFound = false; for (String specy : speciesNames) { if (specy.equals(species)) { @@ -567,13 +569,13 @@ // "Campagne","Annee","Trait","Espece","Nombre","Poids" try { - double nombre1 = Double.parseDouble(tuple1[4]); - double nombre2 = Double.parseDouble(tuple2[4]); - double poids1 = Double.parseDouble(tuple1[5]); - double poids2 = Double.parseDouble(tuple2[5]); + double nombre1 = Double.parseDouble(tuple1[Catch.INDEX_NUMBER]); + double nombre2 = Double.parseDouble(tuple2[Catch.INDEX_NUMBER]); + double poids1 = Double.parseDouble(tuple1[Catch.INDEX_WEIGHT]); + double poids2 = Double.parseDouble(tuple2[Catch.INDEX_WEIGHT]); - tuple1[4] = String.valueOf(nombre1 + nombre2); - tuple1[5] = String.valueOf(poids1 + poids2); + tuple1[Catch.INDEX_NUMBER] = String.valueOf(nombre1 + nombre2); + tuple1[Catch.INDEX_WEIGHT] = String.valueOf(poids1 + poids2); } catch (NumberFormatException ex) { if (log.isWarnEnabled()) { Modified: trunk/coser-business/src/main/resources/i18n/coser-business-en_GB.properties =================================================================== --- trunk/coser-business/src/main/resources/i18n/coser-business-en_GB.properties 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/resources/i18n/coser-business-en_GB.properties 2010-10-25 13:29:14 UTC (rev 97) @@ -11,6 +11,7 @@ coser.business.category.length=Length coser.business.category.reftax.species= coser.business.category.strata=Stata +coser.business.line=Line coser.config.database.directory.description= coser.config.projects.directory.description= coser.config.reference.species.description= Modified: trunk/coser-business/src/main/resources/i18n/coser-business-fr_FR.properties =================================================================== --- trunk/coser-business/src/main/resources/i18n/coser-business-fr_FR.properties 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/main/resources/i18n/coser-business-fr_FR.properties 2010-10-25 13:29:14 UTC (rev 97) @@ -11,6 +11,7 @@ coser.business.category.length=Tailles coser.business.category.reftax.species=Reftax (esp\u00E8ce) coser.business.category.strata=Strates +coser.business.line=Ligne coser.config.database.directory.description=Emplacement de la base de campagnes de coser coser.config.projects.directory.description=Emplacement des projets Coser coser.config.reference.species.description=Emplacement du fichier de r\u00E9f\u00E9rence des esp\u00E8ces Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ImportServiceTest.java =================================================================== --- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ImportServiceTest.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ImportServiceTest.java 2010-10-25 13:29:14 UTC (rev 97) @@ -59,7 +59,7 @@ URL url = ImportServiceTest.class.getResource("/csv/badformat/capturesbadseparator.csv"); File file = new File(url.getFile()); - service.loadCSVFile(p, Category.CATCH, file); + service.loadCSVFile(p, Category.CATCH, file, true); } @Test(expected=CoserBusinessException.class) @@ -68,7 +68,7 @@ URL url = ImportServiceTest.class.getResource("/csv/badformat/stratesheadername.csv"); File file = new File(url.getFile()); - service.loadCSVFile(p, Category.STRATA, file); + service.loadCSVFile(p, Category.STRATA, file, true); } @Test(expected=CoserBusinessException.class) @@ -77,6 +77,6 @@ URL url = ImportServiceTest.class.getResource("/csv/badformat/traitsheaderorder.csv"); File file = new File(url.getFile()); - service.loadCSVFile(p, Category.HAUL, file); + service.loadCSVFile(p, Category.HAUL, file, true); } } Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlDataTableModel.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlDataTableModel.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlDataTableModel.java 2010-10-25 13:29:14 UTC (rev 97) @@ -49,9 +49,6 @@ protected String[] header; public ControlDataTableModel(ControlView controlView) { - /*Project project = controlView.getContextValue(Project.class); - data = project.getTailles(); - header = data.get(0).split(CoserConstants.CSV_SEPARATOR);*/ updateData(controlView); } @@ -87,20 +84,16 @@ */ @Override public int getColumnCount() { - return header.length + 1; + return header.length; } - @Override public String getColumnName(int column) { - String name = null; - - if ( column == 0) { - name = _("coser.ui.validation.data.index"); + String name = header[column]; + // only for column 0 (line index) + if (column == 0) { + name = _(name); } - else { - name = header[column - 1]; - } return name; } @@ -116,7 +109,7 @@ result = rowIndex + 1; } else { - result = data.get(rowIndex + 1)[columnIndex - 1]; + result = data.get(rowIndex + 1)[columnIndex]; } return result; Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2010-10-25 09:28:35 UTC (rev 96) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2010-10-25 13:29:14 UTC (rev 97) @@ -275,11 +275,12 @@ final AbstractDataEntity finalBean = bean; // add to panel - for (int fieldIndex = 0 ; fieldIndex < header.length ; fieldIndex++) { + // start at 1 (0 = line index) + for (int fieldIndex = 1 ; fieldIndex < header.length ; fieldIndex++) { String headerValue = header[fieldIndex]; String fieldValue = line[fieldIndex]; - final String beanFieldName = StringUtils.uncapitalize(enHeaders[fieldIndex]); + final String beanFieldName = StringUtils.uncapitalize(enHeaders[fieldIndex - 1]); JLabel label = new JLabel(headerValue + "\u2009:"); final JTextField fieldTextField = new JTextField(fieldValue);
participants (1)
-
chatellier@users.labs.libre-entreprise.org