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);