r307 - in trunk: echobase-entities/src/main/java/fr/ifremer/echobase echobase-services/src/main/java/fr/ifremer/echobase/services echobase-services/src/main/java/fr/ifremer/echobase/services/configurations echobase-services/src/main/java/fr/ifremer/echobase/services/csv echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData echobase-ui/src/main/webapp/WEB-INF/jsp/importData echobase-ui/src/main/webapp/js
Author: tchemit Date: 2012-02-07 02:28:50 +0100 (Tue, 07 Feb 2012) New Revision: 307 Url: http://forge.codelutin.com/repositories/revision/echobase/307 Log: add operation imports + improve csv import model rows + reuse in ui voyage/transit/vessel selector Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/AcousticDataImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp trunk/echobase-ui/src/main/webapp/js/gridHelper.js Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-07 01:28:50 UTC (rev 307) @@ -208,6 +208,13 @@ } }; + public static final Function<Gear, String> GEAR_NAME = new Function<Gear, String>() { + @Override + public String apply(Gear input) { + return input.getName(); + } + }; + public static final Function<Operation, String> OPERATION_ID = new Function<Operation, String>() { @Override public String apply(Operation input) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-07 01:28:50 UTC (rev 307) @@ -68,8 +68,11 @@ EchoBaseUser user) throws ImportException { Map<InputFile, CsvImportResult> result = Maps.newHashMap(); + // get selected transit Transit transit = getEntityById(Transit.class, configuration.getTransitId()); + + // get selected vessel Vessel vessel = getEntityById(Vessel.class, configuration.getVesselId()); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-07 01:28:50 UTC (rev 307) @@ -26,10 +26,10 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.InputFile; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.data.GearMetadataValue; -import fr.ifremer.echobase.entities.data.GearMetadataValueDAO; -import fr.ifremer.echobase.entities.data.Operation; -import fr.ifremer.echobase.entities.data.OperationDAO; +import fr.ifremer.echobase.entities.data.Sample; +import fr.ifremer.echobase.entities.data.SampleDAO; +import fr.ifremer.echobase.entities.data.SampleData; +import fr.ifremer.echobase.entities.data.SampleDataDAO; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.configurations.CatchesDataImportConfiguration; @@ -75,9 +75,7 @@ SampleImportModel csvModel = new SampleImportModel(getCsvSeparator()); - OperationDAO dao = getDAO(Operation.class, OperationDAO.class); - GearMetadataValueDAO metadataValuedao = - getDAO(GearMetadataValue.class, GearMetadataValueDAO.class); + SampleDAO dao = getDAO(Sample.class, SampleDAO.class); Reader reader = getInputFileReader(inputFile); try { @@ -103,10 +101,9 @@ SampleDataImportModel csvModel = new SampleDataImportModel(getCsvSeparator()); - OperationDAO dao = getDAO(Operation.class, OperationDAO.class); - GearMetadataValueDAO metadataValuedao = - getDAO(GearMetadataValue.class, GearMetadataValueDAO.class); + SampleDataDAO dao = getDAO(SampleData.class, SampleDataDAO.class); + Reader reader = getInputFileReader(inputFile); try { Import<SampleDataImportModelRow> importer = Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-07 01:28:50 UTC (rev 307) @@ -33,7 +33,10 @@ import fr.ifremer.echobase.entities.data.OperationDAO; import fr.ifremer.echobase.entities.data.OperationMetadataValue; import fr.ifremer.echobase.entities.data.OperationMetadataValueDAO; -import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.references.DepthStratum; +import fr.ifremer.echobase.entities.references.Gear; import fr.ifremer.echobase.entities.references.GearMetadata; import fr.ifremer.echobase.entities.references.OperationMetadata; import fr.ifremer.echobase.entities.references.Vessel; @@ -48,6 +51,7 @@ import org.nuiton.util.csv.ImportRuntimeException; import java.io.Reader; +import java.util.Arrays; import java.util.Map; /** @@ -59,36 +63,61 @@ public class OperationImportService extends AbstractImportDataService<OperationImportConfiguration> { @Override - public Map<InputFile, CsvImportResult> startImport(OperationImportConfiguration configuration, - EchoBaseUser user) throws ImportException { + public Map<InputFile, CsvImportResult> startImport( + OperationImportConfiguration configuration, + EchoBaseUser user) throws ImportException { Map<InputFile, CsvImportResult> result = Maps.newHashMap(); + // get selected transit + Transit transit = getEntityById(Transit.class, + configuration.getTransitId()); + + // get selected vessel Vessel vessel = getEntityById(Vessel.class, configuration.getVesselId()); - Voyage voyage = getEntityById(Voyage.class, - configuration.getVoyageId()); + // find out the correct transect to use + Transect transect = transit.getTransect(vessel); - importOperationFile(configuration.getOperationFile(), voyage, vessel); + // authorize only to use this vessel in import files + Map<String, Vessel> vesselMap = Maps.uniqueIndex( + Arrays.asList(vessel), EchoBaseFunctions.VESSEL_NAME); + Map<String, Gear> gearMap = getEntitiesMap( + Gear.class, EchoBaseFunctions.GEAR_NAME); + + importOperationFile(configuration.getOperationFile(), + transect, + vesselMap, + gearMap); + importOperationMetadataFile(configuration.getOperationMetadataFile(), - voyage, vessel); + transect, + vesselMap); importGearMetadataFile(configuration.getGearMetadataFile(), - voyage, - vessel); + transect, + vesselMap, + gearMap); commitTransaction("Could not commit transaction of operation import"); return result; } protected void importOperationFile(InputFile inputFile, - Voyage voyage, - Vessel vessel) throws ImportException { + Transect transect, + Map<String, Vessel> vesselMap, + Map<String, Gear> gearMap) throws ImportException { + Map<String, DepthStratum> depthStratumMap = getEntitiesMap( + DepthStratum.class, EchoBaseFunctions.DEPTH_STRATUM_ID); + OperationImportModel csvModel = - new OperationImportModel(getCsvSeparator()); + new OperationImportModel(getCsvSeparator(), + vesselMap, + gearMap, + depthStratumMap); OperationDAO dao = getDAO(Operation.class, OperationDAO.class); @@ -99,8 +128,11 @@ for (OperationImportModelRow row : importer) { - //TODO + Operation operationToCreate = row.getOperation(); + Operation operation = create(dao, operationToCreate); + + transect.addOperation(operation); } } catch (ImportRuntimeException e) { @@ -111,20 +143,25 @@ } protected void importOperationMetadataFile(InputFile inputFile, - Voyage voyage, - Vessel vessel) throws ImportException { + Transect transect, + Map<String, Vessel> vesselMap) throws ImportException { Map<String, OperationMetadata> operationMetadatasByName = getEntitiesMap(OperationMetadata.class, EchoBaseFunctions.OPERATION_METADATA_NAME); + Map<String, Operation> operationById = Maps.uniqueIndex( + transect.getOperation(), EchoBaseFunctions.OPERATION_ID); + OperationMetadataValueImportModel csvModel = - new OperationMetadataValueImportModel(getCsvSeparator()); + new OperationMetadataValueImportModel(getCsvSeparator(), + vesselMap, + operationMetadatasByName, + operationById); - OperationDAO dao = getDAO(Operation.class, OperationDAO.class); - OperationMetadataValueDAO metadataValuedao = - getDAO(OperationMetadataValue.class, - OperationMetadataValueDAO.class); + OperationMetadataValueDAO dao = getDAO( + OperationMetadataValue.class, + OperationMetadataValueDAO.class); Reader reader = getInputFileReader(inputFile); try { @@ -133,8 +170,15 @@ for (OperationMetadataValueImportModelRow row : importer) { - //TODO + Operation operation = row.getOperation(); + OperationMetadataValue operationMetadataValueToCreate = + row.getOperationMetadataValue(); + OperationMetadataValue operationMetadataValue = create( + dao, operationMetadataValueToCreate); + + operation.addOperationMetadataValue(operationMetadataValue); + } } catch (ImportRuntimeException e) { @@ -145,18 +189,25 @@ } protected void importGearMetadataFile(InputFile inputFile, - Voyage voyage, - Vessel vessel) throws ImportException { + Transect transect, + Map<String, Vessel> vesselMap, + Map<String, Gear> gearMap) throws ImportException { Map<String, GearMetadata> gearMetadatasByType = getEntitiesMap(GearMetadata.class, EchoBaseFunctions.GEAR_METADATA_TYPE); + Map<String, Operation> operationById = Maps.uniqueIndex( + transect.getOperation(), EchoBaseFunctions.OPERATION_ID); + GearMetadataValueImportModel csvModel = - new GearMetadataValueImportModel(getCsvSeparator()); + new GearMetadataValueImportModel(getCsvSeparator(), + vesselMap, + gearMetadatasByType, + gearMap, + operationById); - OperationDAO dao = getDAO(Operation.class, OperationDAO.class); - GearMetadataValueDAO metadataValuedao = - getDAO(GearMetadataValue.class, GearMetadataValueDAO.class); + GearMetadataValueDAO dao = getDAO(GearMetadataValue.class, + GearMetadataValueDAO.class); Reader reader = getInputFileReader(inputFile); try { @@ -165,8 +216,15 @@ for (GearMetadataValueImportModelRow row : importer) { - //TODO + Operation operation = row.getOperation(); + GearMetadataValue gearMetadataValuetoCreate = + row.getGearMetadataValue(); + GearMetadataValue gearMetadataValue = create( + dao, gearMetadataValuetoCreate); + + operation.addGearMetadataValue(gearMetadataValue); + } } catch (ImportRuntimeException e) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-07 01:28:50 UTC (rev 307) @@ -58,6 +58,7 @@ import org.nuiton.util.csv.ImportRuntimeException; import java.io.Reader; +import java.util.Arrays; import java.util.Map; /** @@ -77,9 +78,14 @@ switch (importMode) { case VOYAGE: - Map<String, Voyage> voyageMap = getEntitiesMap( - Voyage.class, EchoBaseFunctions.VOYAGE_NAME); + // get selected voyage + Voyage voyage = getEntityById(Voyage.class, + configuration.getVoyageId()); + // authorize only the selected voyage to be imported + Map<String, Voyage> voyageMap = Maps.uniqueIndex(Arrays.asList( + voyage), EchoBaseFunctions.VOYAGE_NAME); + Map<String, Species> speciesMap = getEntitiesMap( Species.class, EchoBaseFunctions.SPECIES_BARACOUDA_CODE); @@ -198,10 +204,11 @@ Voyage voyage = row.getVoyage(); - LengthWeightKey lengthWeightKey = create(dao); + LengthWeightKey lengthWeightKeyToCreate = + row.getLengthWeightKey(); + LengthWeightKey lengthWeightKey = create( + dao, lengthWeightKeyToCreate); - lengthWeightKey.setAParameter(row.getaParameter()); - lengthWeightKey.setBParameter(row.getbParameter()); //TODO should we import it ? //lengthWeightKey.setMetadata(row.getMetadata()); @@ -261,15 +268,9 @@ Voyage voyage = row.getVoyage(); - LengthAgeKey lengthAgeKey = create(dao); + LengthAgeKey lengthAgeKeyToCreate = row.getLengthAgeKey(); + LengthAgeKey lengthAgeKey = create(dao, lengthAgeKeyToCreate); - lengthAgeKey.setAge(row.getAge()); - lengthAgeKey.setLength(row.getLength()); - lengthAgeKey.setPercentAtAge(row.getPercentAtAge()); - lengthAgeKey.setMetadata(row.getMetadata()); - lengthAgeKey.setSpecies(row.getSpecies()); - lengthAgeKey.setStrata(row.getStrata()); - // attach it to voyage voyage.addLengthAgeKey(lengthAgeKey); @@ -314,8 +315,10 @@ if (!voyage.isEchotypeEmpty()) { - echotype = Iterables.find(voyage.getEchotype(), - EchoBasePredicates.newEchotypeByNamePredicate(echotypeName)); + echotype = Iterables.find( + voyage.getEchotype(), + EchoBasePredicates.newEchotypeByNamePredicate( + echotypeName)); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java 2012-02-07 01:28:50 UTC (rev 307) @@ -42,6 +42,9 @@ /** Selected voyage id where to import datas. */ protected String voyageId; + /** Selected transit id where to import datas. */ + protected String transitId; + /** Selected vessel to use for transect. */ protected String vesselId; @@ -71,6 +74,14 @@ this.voyageId = voyageId; } + public String getTransitId() { + return transitId; + } + + public void setTransitId(String transitId) { + this.transitId = transitId; + } + public String getVesselId() { return vesselId; } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/AcousticDataImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/AcousticDataImportModel.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/AcousticDataImportModel.java 2012-02-07 01:28:50 UTC (rev 307) @@ -107,29 +107,6 @@ newIgnoredColumn("MOVIES_EILayer\\eilayer\\sv");//BL newIgnoredColumn("MOVIES_EILayer\\eilayer\\ni");//BM newIgnoredColumn("MOVIES_EILayer\\eilayer\\nt");//BN - -// // Cell ESDU Datas -// newIgnoredColumn("MOVIES_EILayer\\cellset2");//BO -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\cellnum");//BP -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\celltype");//BQ -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\depthstart");//BR -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\depthend");//BS -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\indexstart");//BT -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\indexend");//BU -// newMandatoryColumn("MOVIES_EILayer\\cellset2\\datestart", AcousticDataImportModelRow.PROPERTY_CELL_DATE_START);//BV -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\dateend");//BW -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\diststart");//BX -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\distend");//BY -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\thresholdup");//BZ -// newIgnoredColumn("MOVIES_EILayer\\cellset2\\thresholdlow");//CA -// newIgnoredColumn("MOVIES_EILayer\\eilayer2");//CB -// newMandatoryColumn("MOVIES_EILayer\\eilayer2\\sa", AcousticDataImportModelRow.PROPERTY_CELL_SA);//CC -// newIgnoredColumn("MOVIES_EILayer\\eilayer2\\sv");//CD -// newIgnoredColumn("MOVIES_EILayer\\eilayer2\\ni");//CE -// newIgnoredColumn("MOVIES_EILayer\\eilayer2\\nt");//CF -// newIgnoredColumn("MOVIES_EILayer\\boterr");//CG -// newIgnoredColumn("MOVIES_EILayer\\boterr\\sa");//CH -// newIgnoredColumn("MOVIES_EILayer\\boterr\\ni");//CI } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java 2012-02-07 01:28:50 UTC (rev 307) @@ -24,7 +24,13 @@ package fr.ifremer.echobase.services.csv; import fr.ifremer.echobase.entities.data.GearMetadataValue; +import fr.ifremer.echobase.entities.data.Operation; +import fr.ifremer.echobase.entities.references.Gear; +import fr.ifremer.echobase.entities.references.GearMetadata; +import fr.ifremer.echobase.entities.references.Vessel; +import java.util.Map; + /** * Model to import {@link GearMetadataValue}. * @@ -33,8 +39,28 @@ */ public class GearMetadataValueImportModel extends CsvModelUtil.AbstractImportModel<GearMetadataValueImportModelRow> { - public GearMetadataValueImportModel(char separator) { + public GearMetadataValueImportModel(char separator, + Map<String, Vessel> vesselMap, + Map<String, GearMetadata> gearMetadataMap, + Map<String, Gear> gearMap, + Map<String, Operation> operationMap) { super(separator); + + /* + vesselName + id + gearID + metadataType + gearMetadataValue + */ + + newMandatoryColumn("vesselName", GearMetadataValueImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap)); + newMandatoryColumn("id", GearMetadataValueImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap)); + + newMandatoryColumn("metadataType", GearMetadataValue.PROPERTY_GEAR_METADATA, CsvModelUtil.newForeignKeyValue(GearMetadata.class, gearMetadataMap)); + newMandatoryColumn("gearID", GearMetadataValue.PROPERTY_GEAR, CsvModelUtil.newForeignKeyValue(Gear.class, gearMap)); + newMandatoryColumn("gearMetadataValue", GearMetadataValue.PROPERTY_DATA_VALUE); + } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307) @@ -23,16 +23,60 @@ */ package fr.ifremer.echobase.services.csv; +import fr.ifremer.echobase.entities.data.GearMetadataValue; +import fr.ifremer.echobase.entities.data.GearMetadataValueImpl; +import fr.ifremer.echobase.entities.data.Operation; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.references.GearMetadata; +import fr.ifremer.echobase.entities.references.Vessel; + /** - * Bean used as a row for import of {@link OperationMetadataValueImportModel}. + * Bean used as a row for import of {@link GearMetadataValueImportModel}. * * @author tchemit <chemit@codelutin.com> * @since 0.3 */ public class GearMetadataValueImportModelRow { + public static final String PROPERTY_VESSEL = Transect.PROPERTY_VESSEL; + public static final String PROPERTY_OPERATION = Transect.PROPERTY_OPERATION; + + protected Vessel vessel; + + protected Operation operation; + + protected final GearMetadataValue gearMetadataValue; + public GearMetadataValueImportModelRow() { + gearMetadataValue = new GearMetadataValueImpl(); } + public GearMetadataValue getGearMetadataValue() { + return gearMetadataValue; + } + + public void setGearMetadata(GearMetadata gearMetadata) { + gearMetadataValue.setGearMetadata(gearMetadata); + } + + public void setDataValue(String dataValue) { + gearMetadataValue.setDataValue(dataValue); + } + + public Operation getOperation() { + return operation; + } + + public void setOperation(Operation operation) { + this.operation = operation; + } + + public Vessel getVessel() { + return vessel; + } + + public void setVessel(Vessel vessel) { + this.vessel = vessel; + } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModel.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModel.java 2012-02-07 01:28:50 UTC (rev 307) @@ -53,15 +53,15 @@ this.strataMap = strataMap; this.speciesMap = speciesMap; - newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_AGE, CsvModelUtil.PRIMITIVE_INTEGER); - newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_PERCENT_AT_AGE, CsvModelUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_LENGTH, CsvModelUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_METADATA); - newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_VOYAGE, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); - newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_STRATA, CsvModelUtil.newForeignKeyValue(Strata.class, strataMap)); - newMandatoryColumn("codeMemo", LengthAgeKeyImportModelRow.PROPERTY_SPECIES, CsvModelUtil.newForeignKeyValue(Species.class, speciesMap)); + newMandatoryColumn(LengthAgeKey.PROPERTY_AGE, CsvModelUtil.PRIMITIVE_INTEGER); + newMandatoryColumn(LengthAgeKey.PROPERTY_PERCENT_AT_AGE, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(LengthAgeKey.PROPERTY_LENGTH, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(LengthAgeKey.PROPERTY_METADATA); + newMandatoryColumn(LengthAgeKey.PROPERTY_STRATA, CsvModelUtil.newForeignKeyValue(Strata.class, strataMap)); + newMandatoryColumn("codeMemo", LengthAgeKey.PROPERTY_SPECIES, CsvModelUtil.newForeignKeyValue(Species.class, speciesMap)); + } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307) @@ -25,6 +25,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.LengthAgeKey; +import fr.ifremer.echobase.entities.references.LengthAgeKeyImpl; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.Strata; @@ -40,50 +41,20 @@ private static final long serialVersionUID = 1L; - public static final String PROPERTY_SPECIES = LengthAgeKey.PROPERTY_SPECIES; - - public static final String PROPERTY_AGE = LengthAgeKey.PROPERTY_AGE; - public static final String PROPERTY_VOYAGE = "voyage"; - public static final String PROPERTY_LENGTH = LengthAgeKey.PROPERTY_LENGTH; - - public static final String PROPERTY_PERCENT_AT_AGE = LengthAgeKey.PROPERTY_PERCENT_AT_AGE; - - public static final String PROPERTY_METADATA = LengthAgeKey.PROPERTY_METADATA; - - public static final String PROPERTY_STRATA = LengthAgeKey.PROPERTY_STRATA; - - protected Species species; - - protected int age; - protected Voyage voyage; - protected float length; + protected final LengthAgeKey lengthAgeKey; - protected float percentAtAge; - - protected String metadata; - - protected Strata strata; - - public Species getSpecies() { - return species; + public LengthAgeKeyImportModelRow() { + lengthAgeKey = new LengthAgeKeyImpl(); } - public void setSpecies(Species species) { - this.species = species; + public LengthAgeKey getLengthAgeKey() { + return lengthAgeKey; } - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - public Voyage getVoyage() { return voyage; } @@ -92,35 +63,27 @@ this.voyage = voyage; } - public float getLength() { - return length; + public void setAge(int age) { + lengthAgeKey.setAge(age); } public void setLength(float length) { - this.length = length; + lengthAgeKey.setLength(length); } - public float getPercentAtAge() { - return percentAtAge; - } - public void setPercentAtAge(float percentAtAge) { - this.percentAtAge = percentAtAge; + lengthAgeKey.setPercentAtAge(percentAtAge); } - public String getMetadata() { - return metadata; - } - public void setMetadata(String metadata) { - this.metadata = metadata; + lengthAgeKey.setMetadata(metadata); } - public Strata getStrata() { - return strata; + public void setStrata(Strata strata) { + lengthAgeKey.setStrata(strata); } - public void setStrata(Strata strata) { - this.strata = strata; + public void setSpecies(Species species) { + lengthAgeKey.setSpecies(species); } } \ No newline at end of file Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java 2012-02-07 01:28:50 UTC (rev 307) @@ -61,8 +61,8 @@ codeMemo */ - newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_APARAMETER, CsvModelUtil.PRIMITIVE_FLOAT); - newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_BPARAMETER, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(LengthWeightKey.PROPERTY_APARAMETER, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(LengthWeightKey.PROPERTY_BPARAMETER, CsvModelUtil.PRIMITIVE_FLOAT); newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_VOYAGE, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap)); newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_SIZE_CATEGORY, CsvModelUtil.newForeignKeyValue(SizeCategory.class, sizeCategoryMap)); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307) @@ -25,6 +25,7 @@ import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.LengthWeightKey; +import fr.ifremer.echobase.entities.references.LengthWeightKeyImpl; import fr.ifremer.echobase.entities.references.SizeCategory; import fr.ifremer.echobase.entities.references.Species; @@ -46,20 +47,22 @@ public static final String PROPERTY_SIZE_CATEGORY = "sizeCategory"; - public static final String PROPERTY_APARAMETER = LengthWeightKey.PROPERTY_APARAMETER; - - public static final String PROPERTY_BPARAMETER = LengthWeightKey.PROPERTY_BPARAMETER; - protected Species species; protected SizeCategory sizeCategory; protected Voyage voyage; - protected float aParameter; + protected final LengthWeightKey lengthWeightKey; - protected float bParameter; + public LengthWeightKeyImportModelRow() { + lengthWeightKey = new LengthWeightKeyImpl(); + } + public LengthWeightKey getLengthWeightKey() { + return lengthWeightKey; + } + public Species getSpecies() { return species; } @@ -84,19 +87,11 @@ this.voyage = voyage; } - public float getaParameter() { - return aParameter; + public void setBParameter(float BParameter) { + lengthWeightKey.setBParameter(BParameter); } - public void setaParameter(float aParameter) { - this.aParameter = aParameter; + public void setAParameter(float AParameter) { + lengthWeightKey.setAParameter(AParameter); } - - public float getbParameter() { - return bParameter; - } - - public void setbParameter(float bParameter) { - this.bParameter = bParameter; - } } \ No newline at end of file Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-07 01:28:50 UTC (rev 307) @@ -24,7 +24,12 @@ package fr.ifremer.echobase.services.csv; import fr.ifremer.echobase.entities.data.Operation; +import fr.ifremer.echobase.entities.references.DepthStratum; +import fr.ifremer.echobase.entities.references.Gear; +import fr.ifremer.echobase.entities.references.Vessel; +import java.util.Map; + /** * Model to import {@link Operation}. * @@ -33,8 +38,39 @@ */ public class OperationImportModel extends CsvModelUtil.AbstractImportModel<OperationImportModelRow> { - public OperationImportModel(char separator) { + public OperationImportModel(char separator, + Map<String, Vessel> vesselMap, + Map<String, Gear> gearMap, + Map<String, DepthStratum> depthStratumMap) { super(separator); + + /* + vesselName // + id // + depthStratumID // + gearShootingStartTime // + midHaulLatitude // + midHaulLongitude // + gearShootingStartLatitude // + gearShootingStartLongitude // + gearShootingEndTime // + gearShootingEndLatitude // + gearShootingEndLongitude // + gearName // + */ + newMandatoryColumn("vesselName", OperationImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap)); + + newMandatoryColumn("gearName", Operation.PROPERTY_GEAR, CsvModelUtil.newForeignKeyValue(Gear.class, gearMap)); + newMandatoryColumn("depthStratumID", Operation.PROPERTY_DEPTH_STRATUM, CsvModelUtil.newForeignKeyValue(DepthStratum.class, depthStratumMap)); + newMandatoryColumn(Operation.PROPERTY_ID); + newMandatoryColumn(Operation.PROPERTY_MID_HAULE_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_MID_HAULE_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_TIME, CsvModelUtil.DAY_TIME_SECOND); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_TIME, CsvModelUtil.DAY_TIME_SECOND); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT); + newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT); } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307) @@ -23,6 +23,15 @@ */ package fr.ifremer.echobase.services.csv; +import fr.ifremer.echobase.entities.data.Operation; +import fr.ifremer.echobase.entities.data.OperationImpl; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.references.DepthStratum; +import fr.ifremer.echobase.entities.references.Gear; +import fr.ifremer.echobase.entities.references.Vessel; + +import java.util.Date; + /** * Bean used as a row for import of {@link OperationImportModel}. * @@ -31,8 +40,69 @@ */ public class OperationImportModelRow { + public static final String PROPERTY_VESSEL = Transect.PROPERTY_VESSEL; + protected Vessel vessel; + + protected final Operation operation; + public OperationImportModelRow() { + operation = new OperationImpl(); } + public Operation getOperation() { + return operation; + } + + public Vessel getVessel() { + return vessel; + } + + public void setVessel(Vessel vessel) { + this.vessel = vessel; + } + + public void setId(String id) { + operation.setId(id); + } + + public void setGearShootingStartTime(Date gearShootingStartTime) { + operation.setGearShootingStartTime(gearShootingStartTime); + } + + public void setGearShootingEndTime(Date gearShootingEndTime) { + operation.setGearShootingEndTime(gearShootingEndTime); + } + + public void setGearShootingStartLatitude(Float gearShootingStartLatitude) { + operation.setGearShootingStartLatitude(gearShootingStartLatitude); + } + + public void setGearShootingEndLatitude(Float gearShootingEndLatitude) { + operation.setGearShootingEndLatitude(gearShootingEndLatitude); + } + + public void setGearShootingStartLongitude(Float gearShootingStartLongitude) { + operation.setGearShootingStartLongitude(gearShootingStartLongitude); + } + + public void setGearShootingEndLongitude(Float gearShootingEndLongitude) { + operation.setGearShootingEndLongitude(gearShootingEndLongitude); + } + + public void setMidHauleLatitude(float midHauleLatitude) { + operation.setMidHauleLatitude(midHauleLatitude); + } + + public void setMidHauleLongitude(float midHauleLongitude) { + operation.setMidHauleLongitude(midHauleLongitude); + } + + public void setDepthStratum(DepthStratum depthStratum) { + operation.setDepthStratum(depthStratum); + } + + public void setGear(Gear gear) { + operation.setGear(gear); + } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java 2012-02-07 01:28:50 UTC (rev 307) @@ -23,8 +23,13 @@ */ package fr.ifremer.echobase.services.csv; +import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.OperationMetadataValue; +import fr.ifremer.echobase.entities.references.OperationMetadata; +import fr.ifremer.echobase.entities.references.Vessel; +import java.util.Map; + /** * Model to import {@link OperationMetadataValue}. * @@ -33,8 +38,24 @@ */ public class OperationMetadataValueImportModel extends CsvModelUtil.AbstractImportModel<OperationMetadataValueImportModelRow> { - public OperationMetadataValueImportModel(char separator) { + public OperationMetadataValueImportModel(char separator, + Map<String, Vessel> vesselMap, + Map<String, OperationMetadata> operationMetadataMap, + Map<String, Operation> operationMap) { super(separator); + + /* + vesselName/ + id/ + metadataType/ + operationMetadataValue/ + */ + + newMandatoryColumn("vesselName", OperationMetadataValueImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap)); + newMandatoryColumn("id", OperationMetadataValueImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap)); + + newMandatoryColumn("metadataType", OperationMetadataValue.PROPERTY_OPERATION_METADATA, CsvModelUtil.newForeignKeyValue(OperationMetadata.class, operationMetadataMap)); + newMandatoryColumn("operationMetadataValue", OperationMetadataValue.PROPERTY_DATA_VALUE); } @Override Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307) @@ -23,6 +23,13 @@ */ package fr.ifremer.echobase.services.csv; +import fr.ifremer.echobase.entities.data.Operation; +import fr.ifremer.echobase.entities.data.OperationMetadataValue; +import fr.ifremer.echobase.entities.data.OperationMetadataValueImpl; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.references.OperationMetadata; +import fr.ifremer.echobase.entities.references.Vessel; + /** * Bean used as a row for import of {@link OperationMetadataValueImportModel}. * @@ -31,8 +38,45 @@ */ public class OperationMetadataValueImportModelRow { + public static final String PROPERTY_VESSEL = Transect.PROPERTY_VESSEL; + public static final String PROPERTY_OPERATION = Transect.PROPERTY_OPERATION; + + protected Operation operation; + + protected Vessel vessel; + + protected final OperationMetadataValue operationMetadataValue; + public OperationMetadataValueImportModelRow() { + operationMetadataValue = new OperationMetadataValueImpl(); } + public OperationMetadataValue getOperationMetadataValue() { + return operationMetadataValue; + } + + public void setOperationMetadata(OperationMetadata operationMetadata) { + operationMetadataValue.setOperationMetadata(operationMetadata); + } + + public void setDataValue(String dataValue) { + operationMetadataValue.setDataValue(dataValue); + } + + public Operation getOperation() { + return operation; + } + + public void setOperation(Operation operation) { + this.operation = operation; + } + + public Vessel getVessel() { + return vessel; + } + + public void setVessel(Vessel vessel) { + this.vessel = vessel; + } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-07 01:28:50 UTC (rev 307) @@ -24,7 +24,6 @@ package fr.ifremer.echobase.ui.actions.importData; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.configurations.AccousticDataImportConfiguration; import fr.ifremer.echobase.services.configurations.CellPositionReference; @@ -45,8 +44,8 @@ /** Universe of existing voyages. */ protected Map<String, String> voyages; - /** Universe of existing vessels. */ - protected Map<String, String> vessels; +// /** Universe of existing vessels. */ +// protected Map<String, String> vessels; protected Map<String, String> cellPositionReferences; @@ -68,7 +67,7 @@ newService(EchoBaseServiceSupport.class); voyages = loadSortAndDecorate(service, Voyage.class); - vessels = loadSortAndDecorate(service, Vessel.class); +// vessels = loadSortAndDecorate(service, Vessel.class); cellPositionReferences = decorateEnums(CellPositionReference.values()); if (getModel().getCellPositionReference() == null) { @@ -83,9 +82,9 @@ return voyages; } - public Map<String, String> getVessels() { - return vessels; - } +// public Map<String, String> getVessels() { +// return vessels; +// } public Map<String, String> getCellPositionReferences() { return cellPositionReferences; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java 2012-02-07 01:28:50 UTC (rev 307) @@ -24,7 +24,6 @@ package fr.ifremer.echobase.ui.actions.importData; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.configurations.OperationImportConfiguration; @@ -44,8 +43,8 @@ /** Universe of existing voyages. */ protected Map<String, String> voyages; - /** Universe of existing vessels. */ - protected Map<String, String> vessels; +// /** Universe of existing vessels. */ +// protected Map<String, String> vessels; public ConfigureOperation() { super(OperationImportConfiguration.class); @@ -65,7 +64,7 @@ newService(EchoBaseServiceSupport.class); voyages = loadSortAndDecorate(service, Voyage.class); - vessels = loadSortAndDecorate(service, Vessel.class); +// vessels = loadSortAndDecorate(service, Vessel.class); return INPUT; } @@ -74,9 +73,9 @@ return voyages; } - public Map<String, String> getVessels() { - return vessels; - } +// public Map<String, String> getVessels() { +// return vessels; +// } public void setOperationFile(File file) { getModel().getOperationFile().setFile(file); Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml =================================================================== --- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml 2012-02-07 01:28:50 UTC (rev 307) @@ -36,6 +36,12 @@ </field-validator> </field> + <field name="model.transitId"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.transit.required"/> + </field-validator> + </field> + <field name="model.vesselId"> <field-validator type="nrequiredstring"> <message key="echobase.error.import.vessel.required"/> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-02-07 01:28:50 UTC (rev 307) @@ -31,68 +31,21 @@ Configuration <s:text name="echobase.common.importDataMode.accousticData"/> </title> -<s:url id="getTransitsUrl" action="getTransits" namespace="/importData"/> -<s:url id="getVesselsUrl" action="getVessels" namespace="/importData"/> - <script type="text/javascript"> + jQuery(document).ready(function () { - var voyageSelectBox = $('[name="model.voyageId"]'); - var transitSelectBox = $('[name="model.transitId"]'); - var vesselSelectBox = $('[name="model.vesselId"]'); - - voyageSelectBox.change({transitSelectBox:transitSelectBox, - vesselSelectBox:vesselSelectBox}, function (event) { - - $.updateSelectBoxContent('${getTransitsUrl}', - {voyageId:this.value}, - 'transits', - event.data.transitSelectBox - ); - event.data.vesselSelectBox.html(""); - }); - - transitSelectBox.change({vesselSelectBox:vesselSelectBox}, function (event) { - - $.updateSelectBoxContent('${getVesselsUrl}', - {transitId:this.value}, - 'vessels', - event.data.vesselSelectBox); - }); - - var voyageId = "${model.voyageId}"; - - if (voyageId) { - - console.info("reload voyageId " + voyageId); - voyageSelectBox.change(voyageId); - $.updateSelectBoxContent( - '${getTransitsUrl}', - {voyageId:voyageId}, - 'transits', - transitSelectBox, - function () { - - var transitId = "${model.transitId}"; - if (transitId) { - - transitSelectBox.val(transitId); - $.updateSelectBoxContent('${getVesselsUrl}', - {transitId:transitId}, - 'vessels', - vesselSelectBox, function () { - - var vesselId = "${model.vesselId}"; - if (vesselId) { - vesselSelectBox.val(vesselId); - } - }); - } - } - ); - } - + $.autoSelectVoyageTransitAndVessel( + $('[name="model.voyageId"]'), + $('[name="model.transitId"]'), + $('[name="model.vesselId"]'), + '<s:url action="getTransits" namespace="/importData"/>', + '<s:url action="getVessels" namespace="/importData"/>', + '<s:property value="model.voyageId"/>', + '<s:property value="model.transitId"/>', + '<s:property value="model.vesselId"/>' + ); }); </script> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp 2012-02-07 01:28:50 UTC (rev 307) @@ -23,6 +23,9 @@ --%> <%@page contentType="text/html" pageEncoding="UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> +<%@ taglib prefix="sj" uri="/struts-jquery-tags" %> +<script type="text/javascript" + src="<s:url value='/js/gridHelper.js' />"></script> <title> Configuration <s:text name="echobase.common.importDataMode.operation"/> @@ -31,7 +34,16 @@ <script type="text/javascript"> jQuery(document).ready(function () { - + $.autoSelectVoyageTransitAndVessel( + $('[name="model.voyageId"]'), + $('[name="model.transitId"]'), + $('[name="model.vesselId"]'), + '<s:url action="getTransits" namespace="/importData"/>', + '<s:url action="getVessels" namespace="/importData"/>', + '<s:property value="model.voyageId"/>', + '<s:property value="model.transitId"/>', + '<s:property value="model.vesselId"/>' + ); }); </script> @@ -47,10 +59,12 @@ label='%{getText("echobase.common.voyage")}' list="voyages" headerKey="" headerValue=""/> - <s:select key="model.vesselId" required="true" - label='%{getText("echobase.common.vessel")}' - list="vessels" headerKey="" headerValue=""/> + <sj:select key="model.transitId" required="true" + label='%{getText("echobase.common.transit")}'/> + <sj:select key="model.vesselId" required="true" + label='%{getText("echobase.common.vessel")}'/> + <s:file key="operationFile" required="true" label='%{getText("echobase.common.operationFile")}'/> Modified: trunk/echobase-ui/src/main/webapp/js/gridHelper.js =================================================================== --- trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-02-04 09:20:28 UTC (rev 306) +++ trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-02-07 01:28:50 UTC (rev 307) @@ -166,6 +166,58 @@ $('table tr:odd').addClass('odd'); }); + }, + + // auto-selection des voyages - transit - vessel + autoSelectVoyageTransitAndVessel:function (voyageSelectBox, transitSelectBox, vesselSelectBox, getTransitsUrl, getVesselsUrl, voyageId, transitId, vesselId) { + + voyageSelectBox.change({transitSelectBox:transitSelectBox, + vesselSelectBox:vesselSelectBox, + getTransitsUrl:getTransitsUrl}, function (event) { + + $.updateSelectBoxContent(event.data.getTransitsUrl, + {voyageId:this.value}, + 'transits', + event.data.transitSelectBox + ); + event.data.vesselSelectBox.html(""); + }); + + transitSelectBox.change({vesselSelectBox:vesselSelectBox, + getVesselsUrl:getVesselsUrl}, function (event) { + + $.updateSelectBoxContent(event.data.getVesselsUrl, + {transitId:this.value}, + 'vessels', + event.data.vesselSelectBox); + }); + + if (voyageId) { + + voyageSelectBox.change(voyageId); + $.updateSelectBoxContent( + getTransitsUrl, + {voyageId:voyageId}, + 'transits', + transitSelectBox, function () { + + if (transitId) { + + transitSelectBox.val(transitId); + $.updateSelectBoxContent( + getVesselsUrl, + {transitId:transitId}, + 'vessels', + vesselSelectBox, function () { + + if (vesselId) { + vesselSelectBox.val(vesselId); + } + }); + } + } + ); + } } }); @@ -200,6 +252,9 @@ }, addEvenAndOddClasses:function (gridId) { return $(document).addEvenAndOddClasses(gridId); + }, + autoSelectVoyageTransitAndVessel:function (voyageSelectBox, transitSelectBox, vesselSelectBox, getTransitsUrl, getVesselsUrl, voyageId, transitId, vesselId) { + return $(document).autoSelectVoyageTransitAndVessel(voyageSelectBox, transitSelectBox, vesselSelectBox, getTransitsUrl, getVesselsUrl, voyageId, transitId, vesselId); } }); })(jQuery);
participants (1)
-
tchemit@users.forge.codelutin.com