Author: tchemit Date: 2013-01-30 13:38:14 +0100 (Wed, 30 Jan 2013) New Revision: 268 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/268 Log: refs #1912: [Ecran Trait] Filtrage des strates - sous-strates - localit?\195?\169s (put it back in ui) refs #1920: [Persistence] Sauvegarde des donn?\195?\169es th?\195?\169matiques dans la DB Allegro (rename trawlNumber) refs #1819: [PROTOCOLE] - Gestion des listes pr?\195?\169f?\195?\169r?\195?\169es / r?\195?\169f?\195?\169rentiel (debut de refactor) + use foreach (since java 1.5!) Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties =================================================================== --- trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-01-30 12:38:14 UTC (rev 268) @@ -40,9 +40,8 @@ fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.gearPmfmId.stereotype=ordered fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.environmentPmfmId.stereotype=ordered fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.hydrologyPmfmId.stereotype=ordered +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.lengthClassesPmfmId.stereotype=ordered fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.species.stereotype=ordered -fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.sampleCategoryOrder.stereotype=ordered -fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.benthosSpeciesId.stereotype=ordered -fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.planktonSpeciesId.stereotype=ordered +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.benthos.stereotype=ordered fr.ifremer.tutti.persistence.entities.referential.Caracteristic.attribute.qualitativeValue.stereotype=ordered Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo =================================================================== (Binary files differ) Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-01-30 12:38:14 UTC (rev 268) @@ -51,7 +51,6 @@ import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise; import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruiseDao; import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; -import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; import fr.ifremer.adagio.core.dao.referential.QualityFlag; import fr.ifremer.adagio.core.dao.referential.QualityFlagDao; import fr.ifremer.adagio.core.dao.referential.gear.GearDao; @@ -63,7 +62,6 @@ import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueDao; -import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueDaoImpl; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl; import fr.ifremer.adagio.core.dao.referential.vessel.VesselDao; import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus; @@ -269,7 +267,7 @@ } result.setGear(gears); if (maxTrawlNetFound > 0) { - result.setTrawlNet(maxTrawlNetFound); + result.setMultirigNumber(maxTrawlNetFound); } } return result; @@ -492,11 +490,11 @@ guf.setRankOrder((short)1); // Trawl net (store in Gear Physical features) - if (copyIfNull && source.getTrawlNet() == null) { + if (copyIfNull && source.getMultirigNumber() == null) { removeGearPhysicalMeasurement(guf, enumeration.PMFM_ID_MULTIRIG_NUMBER); } else { - setGearPhysicalMeasurement(target, guf, enumeration.PMFM_ID_MULTIRIG_NUMBER, Float.valueOf(source.getTrawlNet()), null, null); + setGearPhysicalMeasurement(target, guf, enumeration.PMFM_ID_MULTIRIG_NUMBER, Float.valueOf(source.getMultirigNumber()), null, null); } } } Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-01-30 12:38:14 UTC (rev 268) @@ -47,10 +47,8 @@ import org.springframework.stereotype.Service; import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import fr.ifremer.adagio.core.dao.data.batch.CatchBatch; import fr.ifremer.adagio.core.dao.data.batch.denormalized.DenormalizedBatch; import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea; import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea2RegulationLocation; @@ -70,12 +68,9 @@ import fr.ifremer.adagio.core.dao.data.vessel.feature.use.isActive; import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPosition; import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl; -import fr.ifremer.adagio.core.dao.referential.gear.GearDao; import fr.ifremer.adagio.core.dao.referential.gear.GearImpl; -import fr.ifremer.adagio.core.dao.referential.location.LocationDao; import fr.ifremer.adagio.core.dao.referential.location.LocationExtendDao; import fr.ifremer.adagio.core.dao.referential.location.LocationImpl; -import fr.ifremer.adagio.core.dao.referential.location.LocationLevelId; import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm; import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue; @@ -182,9 +177,9 @@ } // Trawl number net - Float trawlNetNumber = (Float)source[colIndex++]; + String trawlNetNumber = (String)source[colIndex++]; if (trawlNetNumber != null) { - fishingOperation.setTrawlNetNumber(trawlNetNumber.intValue()); + fishingOperation.setMultirigAggregation(trawlNetNumber); } fishingOperations.add(fishingOperation); @@ -259,8 +254,7 @@ if (!recorderPersonsStr.isEmpty()) { String[] recorderPersonsArray = recorderPersonsStr.split(","); List<Person> persons = new ArrayList<Person>(); - for (int i = 0; i < recorderPersonsArray.length; i++) { - String personId = recorderPersonsArray[i]; + for (String personId : recorderPersonsArray) { Person person = referentialService.getPerson(Integer.valueOf(personId)); persons.add(person); } @@ -452,8 +446,7 @@ if (enumeration.PMFM_ID_MULTIRIG_AGGREGATION.equals(pmfmId) && alphanumericalValue != null && alphanumericalValue.matches("\\d+")) { - // TODO TC : passer la propriété trawlNetNumber en String - result.setTrawlNetNumber(Integer.valueOf(alphanumericalValue)); + result.setMultirigAggregation(alphanumericalValue); } // Gear Shooting Caracteristics @@ -499,15 +492,13 @@ VesselPosition startPosition = null; VesselPosition endPosition = null; if (target.getVesselPositions() != null) { - for (Iterator iterator = target.getVesselPositions().iterator(); iterator.hasNext();) { - VesselPosition position = (VesselPosition) iterator.next(); - if (position.getDateTime() != null && position.getDateTime().getTime() == target.getStartDateTime().getTime()) { - startPosition = position; - } - else if (position.getDateTime() == null || (target.getEndDateTime() != null && position.getDateTime().getTime() == target.getEndDateTime().getTime())) { - endPosition = position; - } - } + for (VesselPosition position : target.getVesselPositions()) { + if (position.getDateTime() != null && position.getDateTime().getTime() == target.getStartDateTime().getTime()) { + startPosition = position; + } else if (position.getDateTime() == null || (target.getEndDateTime() != null && position.getDateTime().getTime() == target.getEndDateTime().getTime())) { + endPosition = position; + } + } } // Retrieve entities : Gear Use Features @@ -615,16 +606,15 @@ target.setName(nameBuffer.toString()); // Trawl net number - if (copyIfNull && source.getTrawlNetNumber() == null) { + if (copyIfNull && source.getMultirigAggregation() == null) { // Nothing to do : will be removed later, using notChangedGearUseMeasurements - } else if (source.getTrawlNetNumber() != null) { - // TODO TC : change the property into String + } else if (source.getMultirigAggregation() != null) { // TODO BLA : Then parse the String and validate content - if (source.getTrawlNetNumber().intValue() > trawlNet) { - throw new DataIntegrityViolationException("An operation could not have a 'trawl net number' greater than 'trawl net' defined in the cruise."); - } +// if (source.getMultirigAggregation() > multirigNumber) { +// throw new DataIntegrityViolationException("An operation could not have a 'trawl net number' greater than 'trawl net' defined in the cruise."); +// } // Store into Gear Use Features - GearUseMeasurement gum = setGearUseMeasurement(scientificCruise, gearUseFeatures, enumeration.PMFM_ID_MULTIRIG_AGGREGATION, null, source.getTrawlNetNumber().toString(), null); + GearUseMeasurement gum = setGearUseMeasurement(scientificCruise, gearUseFeatures, enumeration.PMFM_ID_MULTIRIG_AGGREGATION, null, source.getMultirigAggregation().toString(), null); notChangedGearUseMeasurements.remove(gum); } @@ -781,7 +771,7 @@ } Date endDateTime = convertUI2DatabaseMandatoryDate(target.getEndDateTime(), startPosition.getDateTime(), true); endPosition.setDateTime(endDateTime); - if (endDateTime.equals(target.getEndDateTime()) == false) { + if (!endDateTime.equals(target.getEndDateTime())) { // To link position with the operation end, Allegro need to have exactly the same dates target.setEndDateTime(endDateTime); target.setFishingEndDateTime(endDateTime); @@ -812,7 +802,7 @@ } // Recorder persons - StringBuffer miscDataBuffer = new StringBuffer(); + StringBuilder miscDataBuffer = new StringBuilder(); if (copyIfNull && (source.getSaisisseur() == null || source.getSaisisseur().size() == 0)) { miscDataBuffer.append(MISC_DATA_RECORDER_PERSONS_TAG); } else if (source.getSaisisseur() != null && source.getSaisisseur().size() > 0) { @@ -830,7 +820,7 @@ target.setComments(miscDataBuffer.toString()); } else if (source.getComment() != null) { // Store comment + misc data - target.setComments(source.getComment() + miscDataBuffer.toString()); + target.setComments(source.getComment() + miscDataBuffer.toString()); } // ---------------------------------------------------------------- @@ -1034,13 +1024,12 @@ Integer pmfmId, boolean createIfNotExists) { VesselUseMeasurement vesselUseMeasurement = null; if (vesselUseFeatures.getVesselUseMeasurements() != null) { - for (Iterator iterator = vesselUseFeatures.getVesselUseMeasurements().iterator(); iterator.hasNext();) { - VesselUseMeasurement vum = (VesselUseMeasurement) iterator.next(); - if (pmfmId.equals(vum.getPmfm().getId())) { - vesselUseMeasurement = vum; - break; - } - } + for (VesselUseMeasurement vum : vesselUseFeatures.getVesselUseMeasurements()) { + if (pmfmId.equals(vum.getPmfm().getId())) { + vesselUseMeasurement = vum; + break; + } + } } if (vesselUseMeasurement == null) { if (!createIfNotExists) { @@ -1159,13 +1148,12 @@ Integer pmfmId, boolean createIfNotExists) { GearUseMeasurement gearUseMeasurement = null; if (gearUseFeatures.getGearUseMeasurements() != null) { - for (Iterator iterator = gearUseFeatures.getGearUseMeasurements().iterator(); iterator.hasNext();) { - GearUseMeasurement vum = (GearUseMeasurement) iterator.next(); - if (pmfmId.equals(vum.getPmfm().getId())) { - gearUseMeasurement = vum; - break; - } - } + for (GearUseMeasurement vum : gearUseFeatures.getGearUseMeasurements()) { + if (pmfmId.equals(vum.getPmfm().getId())) { + gearUseMeasurement = vum; + break; + } + } } if (gearUseMeasurement == null) { if (!createIfNotExists) { @@ -1191,7 +1179,7 @@ protected DenormalizedBatch getDenormalizedBatch(Integer fishingOperationId) { Iterator<DenormalizedBatch> list = queryListTyped( "fishingOperationBatchs", - "fishingOperationId", IntegerType.INSTANCE, Integer.valueOf(fishingOperationId) + "fishingOperationId", IntegerType.INSTANCE, fishingOperationId ); CaracteristicMap environmentCaracteristics = new CaracteristicMap(); Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java =================================================================== --- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-30 12:38:14 UTC (rev 268) @@ -128,12 +128,8 @@ cruise.setComment("My comments on cruise"); - List<Person> allPersons = referentialService.getAllPerson(); - Person managerPerson1 = allPersons.get(0); - Person managerPerson2 = allPersons.get(1); - cruise.setHeadOfMission(Lists.newArrayList(managerPerson1, managerPerson2)); - - cruise.setHeadOfSortRoom(Lists.newArrayList(managerPerson2)); + Person managerPerson = referentialService.getAllPerson().get(0); + cruise.setHeadOfMission(Lists.newArrayList(managerPerson)); List<Vessel> vessels = Lists.newArrayList(); vessels.add(referentialService.getAllScientificVessel().get(0)); @@ -143,7 +139,7 @@ cruise.setVessel(vessels); - cruise.setTrawlNet(2); + cruise.setMultirigNumber(2); // Create cruise in database Cruise createdCruise = service.createCruise(cruise); @@ -165,13 +161,9 @@ calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); assertEquals(calendar.getTime(), reloadedCruise.getEndDate()); - assertEquals(cruise.getTrawlNet(), reloadedCruise.getTrawlNet()); - assertNotNull(reloadedCruise.getHeadOfMission()); - assertEquals(cruise.getHeadOfMission().size(), reloadedCruise.getHeadOfMission().size()); - assertNotNull(reloadedCruise.getHeadOfSortRoom()); - assertEquals(cruise.getHeadOfSortRoom().size(), reloadedCruise.getHeadOfSortRoom().size()); + assertEquals(cruise.getMultirigNumber(), reloadedCruise.getMultirigNumber()); - // ----------------------------------------------------------------------------- + // ----------------------------------------------------------------------------- // 2. Test with only mandatory properties // ----------------------------------------------------------------------------- createdCruise.setId(null); @@ -179,7 +171,7 @@ createdCruise.setBeginDate(null); createdCruise.setEndDate(null); createdCruise.setComment(null); - createdCruise.setTrawlNet(null); + createdCruise.setMultirigNumber(null); // Save cruise createdCruise = service.createCruise(cruise); @@ -193,7 +185,7 @@ assertEquals(createdCruise.getBeginDate(), reloadedCruise.getBeginDate()); assertEquals(createdCruise.getEndDate(), reloadedCruise.getEndDate()); assertEquals(createdCruise.getComment(), reloadedCruise.getComment()); - assertEquals(createdCruise.getTrawlNet(), reloadedCruise.getTrawlNet()); + assertEquals(createdCruise.getMultirigNumber(), reloadedCruise.getMultirigNumber()); assertNull(reloadedCruise.getHeadOfMission()); assertNotNull(reloadedCruise.getVessel()); assertEquals(createdCruise.getVessel().get(0), reloadedCruise.getVessel().get(0)); Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java =================================================================== --- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java 2013-01-30 12:38:14 UTC (rev 268) @@ -39,7 +39,6 @@ import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation; import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.Person; import org.junit.Before; import org.junit.ClassRule; @@ -98,9 +97,7 @@ @Test public void createFishingOperation(/*FishingOperation bean*/) { - List<Person> allPersons = referentialService.getAllPerson(); - - // ----------------------------------------------------------------------------- + // ----------------------------------------------------------------------------- // Prepare data and other entities // ----------------------------------------------------------------------------- Calendar calendar = new GregorianCalendar(); @@ -113,7 +110,7 @@ cruise.setName("Unit-test-" + System.currentTimeMillis()); cruise.setBeginDate(new Date()); cruise.setEndDate(null); - cruise.setTrawlNet(new Integer(2)); + cruise.setMultirigNumber(2); // Keep only one gear in the cruise : (need for case n°4) List<Gear> cruiseGears = cruise.getGear(); assertNotNull(cruiseGears); @@ -186,8 +183,8 @@ // Set properties (with optional value to null) fishingOperation.setCruise(cruise); fishingOperation.setStationNumber("STA1"); - fishingOperation.setFishingOperationNumber(new Integer(1)); - fishingOperation.setTrawlNetNumber(new Integer(1)); + fishingOperation.setFishingOperationNumber(1); + fishingOperation.setMultirigAggregation("1"); fishingOperation.setGearShootingStartDate(null); fishingOperation.setGearShootingEndDate(null); fishingOperation.setGear(null); @@ -211,8 +208,8 @@ // Set properties fishingOperation.setId(null); fishingOperation.setStationNumber("STA2"); - fishingOperation.setFishingOperationNumber(new Integer(2)); - fishingOperation.setTrawlNetNumber(new Integer(1)); + fishingOperation.setFishingOperationNumber(2); + fishingOperation.setMultirigAggregation("1"); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY, 1); calendar.set(Calendar.MILLISECOND, 99); @@ -244,17 +241,6 @@ localite.setId(dbResource.getFixtures().localite()); fishingOperation.setLocation(localite); - fishingOperation.setSaisisseur(Lists.newArrayList(allPersons.get(0), allPersons.get(1))); - - // Capture - fishingOperation.setCatchTotalWeight(100f); - // note : poids vrac caroussel (thalassa) (init par pupitri) (vrac trie) ou bien "poids trié fournie par la table de tri (Sum(Si) - //fishingOperation.setCatchTotalSortedCarousselWeight(20f); - // note : poids trie par la balance tremis (thalassa) (init par pupitri) - //fishingOperation.setCatchTotalSortedTremisWeight(10f); - //fishingOperation.setCatchTotalUnsortedWeight(15f); - - // Store fishing operation into database : createdFishingOperation = service.createFishingOperation(fishingOperation); assertNotNull("Fishing operation ID must not be null after creation in database", createdFishingOperation); @@ -264,7 +250,7 @@ assertNotNull(reloadedFishingOperation.getGear()); assertEquals(fishingOperation.getStationNumber(), reloadedFishingOperation.getStationNumber()); assertEquals(fishingOperation.getFishingOperationNumber(), reloadedFishingOperation.getFishingOperationNumber()); - assertEquals(fishingOperation.getTrawlNetNumber(), reloadedFishingOperation.getTrawlNetNumber()); + assertEquals(fishingOperation.getMultirigAggregation(), reloadedFishingOperation.getMultirigAggregation()); assertNotNull(reloadedFishingOperation.getGearShootingStartDate()); calendar.setTime(fishingOperation.getGearShootingStartDate()); calendar.set(Calendar.MILLISECOND, 0); @@ -294,12 +280,6 @@ assertNotNull(reloadedFishingOperation.getLocation()); assertNotNull(reloadedFishingOperation.getLocation().getId()); assertEquals(fishingOperation.getLocation().getId(), reloadedFishingOperation.getLocation().getId()); - - //TODO BL : move into CatchBacth - //assertEquals(fishingOperation.getCatchTotalWeight(), reloadedFishingOperation.getCatchTotalWeight()); - - assertNotNull(reloadedFishingOperation.getSaisisseur()); - assertEquals(fishingOperation.getSaisisseur().size(), reloadedFishingOperation.getSaisisseur().size()); // ----------------------------------------------------------------------------- // 3. Test : @@ -311,8 +291,8 @@ // ----------------------------------------------------------------------------- fishingOperation.setId(null); fishingOperation.setStationNumber("STA3"); - fishingOperation.setFishingOperationNumber(new Integer(3)); - fishingOperation.setTrawlNetNumber(new Integer(2)); + fishingOperation.setFishingOperationNumber(3); + fishingOperation.setMultirigAggregation("2"); fishingOperation.setGearShootingStartLongitude(null); fishingOperation.setGearShootingEndDate(null); fishingOperation.setTrawlDistance(null); @@ -341,13 +321,12 @@ List<Gear> gears = referentialService.getAllFishingGear(); assertNotNull(gears); assertTrue(gears.size() > 0); - for (Iterator iterator = gears.iterator(); iterator.hasNext();) { - Gear gear = (Gear) iterator.next(); - if (cruiseGear.getId().equals(gear.getId()) == false) { - fishingOperation.setGear(gear); - break; - } - } + for (Gear gear : gears) { + if (cruiseGear.getId().equals(gear.getId()) == false) { + fishingOperation.setGear(gear); + break; + } + } try { createdFishingOperation = service.createFishingOperation(fishingOperation); @@ -358,14 +337,14 @@ fishingOperation.setGear(cruiseGear); } - fishingOperation.setTrawlNetNumber(new Integer(3)); + fishingOperation.setMultirigAggregation("3"); try { createdFishingOperation = service.createFishingOperation(fishingOperation); fail("A fishing operation must not be saved if the 'trawl net number' > 'cruise trawl net'."); } catch(DataIntegrityViolationException dive) { assertNotNull(dive); - fishingOperation.setTrawlNetNumber(new Integer(1)); + fishingOperation.setMultirigAggregation("1"); } // ----------------------------------------------------------------------------- Modified: trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java =================================================================== --- trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-01-30 12:38:14 UTC (rev 268) @@ -100,6 +100,7 @@ "fr.ifremer.tutti.persistence.entities.data.PlanktonBatch", "fr.ifremer.tutti.persistence.entities.data.Program", "fr.ifremer.tutti.persistence.entities.data.Cruise", + "fr.ifremer.tutti.persistence.entities.data.CatchBatch", "fr.ifremer.tutti.persistence.entities.data.SpeciesBatch", "fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency", "fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol", @@ -477,17 +478,27 @@ @Override public CatchBatch getCatchBatchFromFishingOperation(String id) { - return null; + List<CatchBatch> data = getData(CatchBatch.class.getName()); + CatchBatch result = null; + for (CatchBatch catchBatch : data) { + if (id.equals(catchBatch.getFishingOperation().getId())) { + result = catchBatch; + break; + } + } + return result; } @Override public CatchBatch createCatchBatch(CatchBatch bean) { - return null; + CatchBatch result = create(CatchBatch.class.getName(), bean); + return result; } @Override public CatchBatch saveCatchBatch(CatchBatch bean) { - return null; + CatchBatch result = save(CatchBatch.class.getName(), bean); + return result; } //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-30 12:38:14 UTC (rev 268) @@ -127,8 +127,13 @@ try { doAction(event); - } catch (Exception e) { - ErrorDialogUI.showError(e); + } catch (Throwable e) { + if (log.isErrorEnabled()) { + log.error("Error:"+e.getMessage(),e); + } + if (e instanceof Exception) { + ErrorDialogUI.showError((Exception) e); + } timer.cancel(); } finally { if (log.isInfoEnabled()) { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-30 12:38:14 UTC (rev 268) @@ -111,14 +111,14 @@ date: {model.getEndDate()}; } -#trawlNetLabel { - text: "tutti.label.cruise.trawlNet"; - labelFor: {trawlNetField}; +#multirigNumberLabel { + text: "tutti.label.cruise.multirigNumber"; + labelFor: {multirigNumberField}; } -#trawlNetField { - property: trawlNet; - model: {model.getTrawlNet()}; +#multirigNumberField { + property: multirigNumber; + model: {model.getMultirigNumber()}; useFloat: false; numberPattern: {INT_1_DIGITS_PATTERN}; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-30 12:38:14 UTC (rev 268) @@ -85,7 +85,7 @@ <field name='year' component='yearField'/> <field name='surveyPart' component='surveyPartField'/> <field name='name' component='nameField'/> - <field name='trawlNet' component='trawlNetField'/> + <field name='multirigNumber' component='multirigNumberField'/> <field name='country' component='countryComboBox'/> <field name='beginDate' component='beginDateField'/> <field name='endDate' component='endDateField'/> @@ -137,10 +137,10 @@ onActionPerformed='handler.generateCampaignName()'/> </cell> <cell> - <JLabel id='trawlNetLabel'/> + <JLabel id='multirigNumberLabel'/> </cell> <cell weightx='0.3'> - <NumberEditor id='trawlNetField' constructorParams='this'/> + <NumberEditor id='multirigNumberField' constructorParams='this'/> </cell> </row> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-30 12:38:14 UTC (rev 268) @@ -104,7 +104,7 @@ Program program = persistenceService.getProgram(context.getProgramId()); model.setProgram(program); - model.setTrawlNet(1); + model.setMultirigNumber(1); if (log.isDebugEnabled()) { log.debug("Will create a new cruise from program: " + program); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -67,7 +67,7 @@ public static final String PROPERTY_YEAR = "year"; - public static final String PROPERTY_TRAWL_NET = "trawlNet"; + public static final String PROPERTY_MULTIRIG_NUMBER = "multirigNumber"; public static final String PROPERTY_BEGIN_DATE = "beginDate"; @@ -103,7 +103,7 @@ protected Integer year; - protected Integer trawlNet; + protected Integer multirigNumber; protected Date beginDate; @@ -184,14 +184,14 @@ firePropertyChange(PROPERTY_CAN_GENERATE_NAME, null, isCanGenerateName()); } - public Integer getTrawlNet() { - return trawlNet; + public Integer getMultirigNumber() { + return multirigNumber; } - public void setTrawlNet(Integer trawlNet) { - Object oldValue = getTrawlNet(); - this.trawlNet = trawlNet; - firePropertyChange(PROPERTY_TRAWL_NET, oldValue, trawlNet); + public void setMultirigNumber(Integer multirigNumber) { + Object oldValue = getMultirigNumber(); + this.multirigNumber = multirigNumber; + firePropertyChange(PROPERTY_MULTIRIG_NUMBER, oldValue, multirigNumber); } public Date getBeginDate() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-30 12:38:14 UTC (rev 268) @@ -165,18 +165,13 @@ selectedItem: {model.getGear()}; } -#trawlNetNumberLabel { - text: "tutti.label.fishingOperation.trawlNetNumber"; - labelFor: {trawlNetNumberField}; +#multirigAggregationLabel { + text: "tutti.label.fishingOperation.multirigAggregation"; + labelFor: {multirigAggregationField}; } -#trawlNetNumberField { - showReset: false; - useFloat: false; - useSign: false; - numberPattern: {INT_2_DIGITS_PATTERN}; - property: trawlNetNumber; - model: {model.getTrawlNetNumber()}; +#multirigAggregationField { + text: {model.getMultirigAggregation()}; } .degree { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-30 12:38:14 UTC (rev 268) @@ -92,7 +92,7 @@ <field name='saisisseur' component='saisisseurList'/> <field name='vessel' component='vesselComboBox'/> <field name='gear' component='gearComboBox'/> - <field name='trawlNetNumber' component='trawlNetNumberField'/> + <field name='multirigAggregation' component='multirigAggregationField'/> <field name='gearShootingStartLatitude' component='gearShootingStartLatitudeDDField'/> <field name='gearShootingStartLatitudeDegree' @@ -177,10 +177,11 @@ constructorParams='this'/> </cell> <cell> - <JLabel id='trawlNetNumberLabel'/> + <JLabel id='multirigAggregationLabel'/> </cell> <cell weightx='0.3'> - <NumberEditor id='trawlNetNumberField' constructorParams='this'/> + <JTextField id='multirigAggregationField' + onKeyReleased='handler.setText(event, "multirigAggregation")'/> </cell> </row> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-30 12:38:14 UTC (rev 268) @@ -52,6 +52,7 @@ import fr.ifremer.tutti.ui.swing.util.TabHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -116,7 +117,7 @@ EditFishingOperationUIModel.PROPERTY_SAISISSEUR, EditFishingOperationUIModel.PROPERTY_VESSEL, EditFishingOperationUIModel.PROPERTY_GEAR, - EditFishingOperationUIModel.PROPERTY_POCHE_NUMBER, + EditFishingOperationUIModel.PROPERTY_MULTIRIG_AGGREGATION, EditFishingOperationUIModel.PROPERTY_COMMENT); } @@ -244,7 +245,7 @@ Cruise cruise = TuttiUIUtil.getCruise(ui); Preconditions.checkNotNull(cruise, "Could not find cruise in ui context"); - ui.getTrawlNetNumberField().setEnabled(cruise.getTrawlNet() != 1); + ui.getMultirigAggregationField().setEnabled(cruise.getMultirigNumber() != 1); Program program = TuttiUIUtil.getProgram(ui); Preconditions.checkNotNull(program, @@ -514,40 +515,39 @@ // reset sub strata combo ui.getSubStrataComboBox().setData(null); -// Zone zone = -// model.getFishingOperation().getCruise().getProgram().getZone(); -// -// String zoneId = zone.getId(); -// String strataId = newStrata == null ? null : newStrata.getId(); -// -// List<FishingOperationLocation> subStrata = -// persistenceService.getAllFishingOperationSubStrata(zoneId, strataId); -// -// List<FishingOperationLocation> location = -// persistenceService.getAllFishingOperationLocation(zoneId, strataId, null); -// -// ui.getSubStrataComboBox().setData(subStrata); -// -// ui.getLocationComboBox().setData(location); -// -// if (newStrata == null) { -// -// // reset strata, keep focus on it -// ui.getStrataComboBox().grabFocus(); -// -// } else { -// -// // try to load substrata -// -// -// if (CollectionUtils.isEmpty(subStrata)) { -// -// // try to load localite -// -// -// ui.getLocationComboBox().grabFocus(); -// } -// } + Zone zone = TuttiUIUtil.getProgram(ui).getZone(); + + String zoneId = zone.getId(); + String strataId = newStrata == null ? null : newStrata.getId(); + + List<FishingOperationLocation> subStrata = + persistenceService.getAllFishingOperationSubStrata(zoneId, strataId); + + List<FishingOperationLocation> location = + persistenceService.getAllFishingOperationLocation(zoneId, strataId, null); + + ui.getSubStrataComboBox().setData(subStrata); + + ui.getLocationComboBox().setData(location); + + if (newStrata == null) { + + // reset strata, keep focus on it + ui.getStrataComboBox().grabFocus(); + + } else { + + // try to load substrata + + + if (CollectionUtils.isEmpty(subStrata)) { + + // try to load localite + + + ui.getLocationComboBox().grabFocus(); + } + } } protected void onSelectedSubStrata(EditFishingOperationUIModel model, @@ -558,25 +558,24 @@ // reset localite combo ui.getLocationComboBox().setData(null); -// Zone zone = -// getModel().getFishingOperation().getCruise().getProgram().getZone(); -// String zoneId = zone.getId(); -// -// FishingOperationLocation strata = model.getStrata(); -// String subStrataId = newSubStrata == null ? null : newSubStrata.getId(); -// -// String strataId = strata == null ? null : strata.getId(); -// -// List<FishingOperationLocation> location = -// persistenceService.getAllFishingOperationLocation(zoneId, strataId, subStrataId); -// -// ui.getLocationComboBox().setData(location); -// -// if (newSubStrata == null) { -// -// // reset substrata, keep focus on it -// ui.getSubStrataComboBox().grabFocus(); -// } + Zone zone = TuttiUIUtil.getProgram(ui).getZone(); + String zoneId = zone.getId(); + + FishingOperationLocation strata = model.getStrata(); + String subStrataId = newSubStrata == null ? null : newSubStrata.getId(); + + String strataId = strata == null ? null : strata.getId(); + + List<FishingOperationLocation> location = + persistenceService.getAllFishingOperationLocation(zoneId, strataId, subStrataId); + + ui.getLocationComboBox().setData(location); + + if (newSubStrata == null) { + + // reset substrata, keep focus on it + ui.getSubStrataComboBox().grabFocus(); + } } protected boolean areAllModelsValid() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -35,13 +35,12 @@ import fr.ifremer.tutti.persistence.spatial.SexagecimalPosition; import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + import java.util.Calendar; import java.util.Date; import java.util.List; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; import static org.nuiton.i18n.I18n.n_; @@ -54,8 +53,6 @@ public class EditFishingOperationUIModel extends AbstractTuttiBeanUIModel<FishingOperation, EditFishingOperationUIModel> { private static final long serialVersionUID = 1L; - - private static final Log log = LogFactory.getLog(EditFishingOperationUIModel.class); public static final String TITLE = n_("tutti.label.tab.fishingOperation.general"); @@ -75,9 +72,9 @@ public static final String PROPERTY_GEAR_SHOOTING_START_LATITUDE = "gearShootingStartLatitude"; public static final String PROPERTY_GEAR_SHOOTING_START_LATITUDE_DEGREE = "gearShootingStartLatitudeDegree"; - + public static final String PROPERTY_GEAR_SHOOTING_START_LATITUDE_MINUTE = "gearShootingStartLatitudeMinute"; - + public static final String PROPERTY_GEAR_SHOOTING_START_LATITUDE_DECIMAL_MINUTE = "gearShootingStartLatitudeDecimalMinute"; public static final String PROPERTY_GEAR_SHOOTING_START_LATITUDE_SECOND = "gearShootingStartLatitudeSecond"; @@ -87,7 +84,7 @@ public static final String PROPERTY_GEAR_SHOOTING_START_LONGITUDE_DEGREE = "gearShootingStartLongitudeDegree"; public static final String PROPERTY_GEAR_SHOOTING_START_LONGITUDE_MINUTE = "gearShootingStartLongitudeMinute"; - + public static final String PROPERTY_GEAR_SHOOTING_START_LONGITUDE_DECIMAL_MINUTE = "gearShootingStartLongitudeDecimalMinute"; public static final String PROPERTY_GEAR_SHOOTING_START_LONGITUDE_SECOND = "gearShootingStartLongitudeSecond"; @@ -99,7 +96,7 @@ public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE_DEGREE = "gearShootingEndLatitudeDegree"; public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE_MINUTE = "gearShootingEndLatitudeMinute"; - + public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE_DECIMAL_MINUTE = "gearShootingEndLatitudeDecimalMinute"; public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE_SECOND = "gearShootingEndLatitudeSecond"; @@ -109,7 +106,7 @@ public static final String PROPERTY_GEAR_SHOOTING_END_LONGITUDE_DEGREE = "gearShootingEndLongitudeDegree"; public static final String PROPERTY_GEAR_SHOOTING_END_LONGITUDE_MINUTE = "gearShootingEndLongitudeMinute"; - + public static final String PROPERTY_GEAR_SHOOTING_END_LONGITUDE_DECIMAL_MINUTE = "gearShootingEndLongitudeDecimalMinute"; public static final String PROPERTY_GEAR_SHOOTING_END_LONGITUDE_SECOND = "gearShootingEndLongitudeSecond"; @@ -120,7 +117,7 @@ public static final String PROPERTY_TRAWL_DISTANCE = "trawlDistance"; - public static final String PROPERTY_TRAWL_NET_NUMBER = "trawlNetNumber"; + public static final String PROPERTY_MULTIRIG_AGGREGATION = "multirigAggregation"; public static final String PROPERTY_FISHING_OPERATION_VALID = "fishingOperationValid"; @@ -136,15 +133,13 @@ public static final String PROPERTY_VALIDATION_CONTEXT = "validationContext"; - public static final String PROPERTY_POCHE_NUMBER = "trawlNetNumber"; - /** * Flag when there is no fishing operation selected. * * @since 0.2 */ protected boolean empty; - + protected Cruise cruise; protected String stationNumber; @@ -195,10 +190,10 @@ protected Vessel vessel; - protected Integer trawlNetNumber; + protected String multirigAggregation; protected CoordinateEditorType coordinateEditorType; - + protected static Binder<EditFishingOperationUIModel, FishingOperation> toBeanBinder = BinderFactory.newBinder(EditFishingOperationUIModel.class, FishingOperation.class); @@ -306,11 +301,11 @@ } return result; } - + public Integer getGearShootingStartLatitudeDecimalDegree() { return getGearShootingStartLatitudeDegree(); } - + public void setGearShootingStartLatitudeDegree(Integer degree) { Object oldValue = getGearShootingStartLatitudeDegree(); boolean sign = degree != null && degree < 0; @@ -321,7 +316,7 @@ gearShootingStartLatitudeAsSexagecimal.setDegre(degree); firePropertyChange(PROPERTY_GEAR_SHOOTING_START_LATITUDE_DEGREE, oldValue, degree); } - + public void setGearShootingStartLatitudeDecimalDegree(Integer degree) { setGearShootingStartLatitudeDegree(degree); } @@ -335,7 +330,7 @@ gearShootingStartLatitudeAsSexagecimal.setMinute(minute); firePropertyChange(PROPERTY_GEAR_SHOOTING_START_LATITUDE_MINUTE, oldValue, minute); } - + public Float getGearShootingStartLatitudeDecimalMinute() { return gearShootingStartLatitudeAsSexagecimal.getMinuteDecimale(); } @@ -375,7 +370,7 @@ } return result; } - + public Integer getGearShootingStartLongitudeDecimalDegree() { return getGearShootingStartLongitudeDegree(); } @@ -390,7 +385,7 @@ gearShootingStartLongitudeAsSexagecimal.setDegre(degree); firePropertyChange(PROPERTY_GEAR_SHOOTING_START_LONGITUDE_DEGREE, oldValue, degree); } - + public void setGearShootingStartLongitudeDecimalDegree(Integer degree) { setGearShootingStartLongitudeDegree(degree); } @@ -404,7 +399,7 @@ gearShootingStartLongitudeAsSexagecimal.setMinute(minute); firePropertyChange(PROPERTY_GEAR_SHOOTING_START_LONGITUDE_MINUTE, oldValue, minute); } - + public Float getGearShootingStartLongitudeDecimalMinute() { return gearShootingStartLongitudeAsSexagecimal.getMinuteDecimale(); } @@ -461,7 +456,7 @@ } return result; } - + public Integer getGearShootingEndLatitudeDecimalDegree() { return getGearShootingEndLatitudeDegree(); } @@ -476,7 +471,7 @@ gearShootingEndLatitudeAsSexagecimal.setDegre(degree); firePropertyChange(PROPERTY_GEAR_SHOOTING_END_LATITUDE_DEGREE, oldValue, degree); } - + public void setGearShootingEndLatitudeDecimalDegree(Integer degree) { setGearShootingEndLatitudeDegree(degree); } @@ -490,7 +485,7 @@ gearShootingEndLatitudeAsSexagecimal.setMinute(minute); firePropertyChange(PROPERTY_GEAR_SHOOTING_END_LATITUDE_MINUTE, oldValue, minute); } - + public Float getGearShootingEndLatitudeDecimalMinute() { return gearShootingEndLatitudeAsSexagecimal.getMinuteDecimale(); } @@ -529,7 +524,7 @@ } return result; } - + public Integer getGearShootingEndLongitudeDecimalDegree() { return getGearShootingEndLongitudeDegree(); } @@ -544,7 +539,7 @@ gearShootingEndLongitudeAsSexagecimal.setDegre(degree); firePropertyChange(PROPERTY_GEAR_SHOOTING_END_LONGITUDE_DEGREE, oldValue, degree); } - + public void setGearShootingEndLongitudeDecimalDegree(Integer degree) { setGearShootingEndLongitudeDegree(degree); } @@ -569,7 +564,7 @@ // otherwise the filed is not filled with the value (I cannot explain why... :() firePropertyChange(PROPERTY_GEAR_SHOOTING_END_LONGITUDE_DECIMAL_MINUTE, null, decimalMinute); } - + public Integer getGearShootingEndLongitudeSecond() { return gearShootingEndLongitudeAsSexagecimal.getSeconde(); } @@ -691,14 +686,14 @@ firePropertyChange(PROPERTY_VESSEL, oldValue, vessel); } - public Integer getTrawlNetNumber() { - return trawlNetNumber; + public String getMultirigAggregation() { + return multirigAggregation; } - public void setTrawlNetNumber(Integer trawlNetNumber) { - Object oldValue = getTrawlNetNumber(); - this.trawlNetNumber = trawlNetNumber; - firePropertyChange(PROPERTY_TRAWL_NET_NUMBER, oldValue, trawlNetNumber); + public void setMultirigAggregation(String multirigAggregation) { + Object oldValue = getMultirigAggregation(); + this.multirigAggregation = multirigAggregation; + firePropertyChange(PROPERTY_MULTIRIG_AGGREGATION, oldValue, multirigAggregation); } public CoordinateEditorType getCoordinateEditorType() { @@ -708,7 +703,7 @@ public void setCoordinateEditorType(CoordinateEditorType coordinateEditorType) { this.coordinateEditorType = coordinateEditorType; } - + @Override protected FishingOperation newEntity() { return fishingOperation; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-30 12:38:14 UTC (rev 268) @@ -35,7 +35,6 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; -import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.decorator.Decorator; @@ -43,7 +42,6 @@ import javax.swing.JTabbedPane; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.Date; import java.util.List; import static org.nuiton.i18n.I18n._; @@ -90,8 +88,6 @@ TuttiUIUtil.setCruise(ui, cruise); TuttiUIUtil.setProgram(ui, cruise.getProgram()); -// model.setCruise(cruise); - TuttiProtocol protocol; if (getContext().isProtocolFilled()) { @@ -113,6 +109,7 @@ List<FishingOperation> fishingOperations = persistenceService.getAllFishingOperation(cruiseId); + //FIXME Should remove this when no more use dev persistence impl //TODO make sure to use selection cruise ? for (FishingOperation fishingOperation : fishingOperations) { fishingOperation.setCruise(cruise); @@ -212,8 +209,8 @@ newFishingOperation.setGear(gears.get(0)); } - if (cruise.getTrawlNet() == 1) { - newFishingOperation.setTrawlNetNumber(1); + if (cruise.getMultirigNumber() == 1) { + newFishingOperation.setMultirigAggregation("1"); } // by default use the current day with no time information Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-01-30 12:38:14 UTC (rev 268) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; @@ -99,13 +100,13 @@ @Override public void afterInitUI() { - + initUI(ui); - + EditCatchesUIModel model = getModel(); - + listenValidatorValid(ui.getValidator(), model); - + setCustomTab(0, model); } @@ -128,7 +129,7 @@ public EditCatchesUIModel getModel() { return ui.getModel(); } - + @Override protected JTabbedPane getTabPanel() { return ui.getTabPane(); @@ -146,9 +147,9 @@ @Override public void onShowTab() { - + } - + //------------------------------------------------------------------------// //-- Public methods --// //------------------------------------------------------------------------// @@ -161,7 +162,7 @@ if (fishingOperationMonitor.wasModified()) { save(); } - + ui.getSpeciesTabContent().getHandler().clearTableSelection(); ui.getBenthosTabContent().getHandler().clearTableSelection(); ui.getPlanktonTabContent().getHandler().clearTableSelection(); @@ -175,8 +176,12 @@ EditCatchesUIModel model = getModel(); if (empty || !bean.equals(model.getFishingOperation()) || fishingOperationMonitor.wasModified()) { + + CatchBatch batch; + if (empty) { - bean = new FishingOperation(); + batch= new CatchBatch(); + model.setCatchBatch(null); model.setFishingOperation(null); } else { @@ -185,10 +190,13 @@ bean.getId() + " - " + fishingOperationText); } + batch = persistenceService.getCatchBatchFromFishingOperation(bean.getId()); + + model.setCatchBatch(batch); model.setFishingOperation(bean); } - model.fromBean(bean); + model.fromBean(batch); model.setModify(false); fishingOperationMonitor.clearModified(); @@ -217,21 +225,21 @@ // previous fishingOperation was modified, let's save it EditCatchesUIModel beanToSave = fishingOperationMonitor.getBean(); - FishingOperation fishingOperation = beanToSave.toBean(); + CatchBatch catchBatch = beanToSave.toBean(); if (log.isInfoEnabled()) { - log.info("FishingOperation " + fishingOperation.getId() + + log.info("FishingOperation " + catchBatch.getId() + " was modified, will save it."); } showInformationMessage( "[ Captures - Caractéristiques générales ] " + - "Sauvegarde des modifications de " + decorate(fishingOperation) + + "Sauvegarde des modifications de " + decorate(catchBatch) + "."); - persistenceService.saveFishingOperation(fishingOperation); + persistenceService.saveCatchBatch(catchBatch); } - + public void importPupitri() { //TODO } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; import org.nuiton.util.beans.Binder; @@ -35,7 +36,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class EditCatchesUIModel extends AbstractTuttiBeanUIModel<FishingOperation, EditCatchesUIModel> { +public class EditCatchesUIModel extends AbstractTuttiBeanUIModel<CatchBatch, EditCatchesUIModel> { private static final long serialVersionUID = 1L; @@ -73,7 +74,9 @@ public static final String PROPERTY_FISHING_OPERATION = "fishingOperation"; - protected static final Binder<FishingOperation, EditCatchesUIModel> fromBeanBinder = BinderModelBuilder.newEmptyBuilder(FishingOperation.class, EditCatchesUIModel.class) + public static final String PROPERTY_CATCH_BATCH = "catchBatch"; + + protected static final Binder<CatchBatch, EditCatchesUIModel> fromBeanBinder = BinderModelBuilder.newEmptyBuilder(CatchBatch.class, EditCatchesUIModel.class) .addSimpleProperties( PROPERTY_SPECIES_TOTAL_WEIGHT, PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, @@ -88,7 +91,7 @@ PROPERTY_MACRO_WASTE_TOTAL_WEIGHT ).toBinder(); - protected static final Binder<EditCatchesUIModel, FishingOperation> toBeanBinder = BinderModelBuilder.newEmptyBuilder(EditCatchesUIModel.class, FishingOperation.class) + protected static final Binder<EditCatchesUIModel, CatchBatch> toBeanBinder = BinderModelBuilder.newEmptyBuilder(EditCatchesUIModel.class, CatchBatch.class) .addSimpleProperties( PROPERTY_SPECIES_TOTAL_WEIGHT, PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, @@ -137,15 +140,27 @@ protected FishingOperation fishingOperation; + protected CatchBatch catchBatch; + public EditCatchesUIModel() { - super(FishingOperation.class, fromBeanBinder, toBeanBinder); + super(CatchBatch.class, fromBeanBinder, toBeanBinder); } @Override public String getTitle() { return _("tutti.label.tab.catchesCaracteristics"); } - + + public CatchBatch getCatchBatch() { + return catchBatch; + } + + public void setCatchBatch(CatchBatch catchBatch) { + Object oldValue = getCatchTotalWeight(); + this.catchBatch = catchBatch; + firePropertyChange(PROPERTY_CATCH_BATCH, oldValue, catchBatch); + } + public FishingOperation getFishingOperation() { return fishingOperation; } @@ -317,7 +332,7 @@ } @Override - protected FishingOperation newEntity() { - return fishingOperation; + protected CatchBatch newEntity() { + return catchBatch; } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-30 12:38:14 UTC (rev 268) @@ -454,15 +454,13 @@ // fill sampling order from protocol - List<SampleCategoryEnum> sampleCategoryOrder = - protocol.getSampleCategoryOrder(); - samplingOrder = Lists.newArrayList(); - for (SampleCategoryEnum sampleCategoryEnum : sampleCategoryOrder) { - SampleCategoryType sampleCategoryType = - SampleCategoryType.valueOf(sampleCategoryEnum); - samplingOrder.add(sampleCategoryType); - } + samplingOrder = Lists.newArrayList( + SampleCategoryType.sortedUnsorted, + SampleCategoryType.size, + SampleCategoryType.sex, + SampleCategoryType.maturity, + SampleCategoryType.age); // fill available species from protocol Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -33,4 +33,5 @@ */ public class GearShootingRowModel extends CaracteristicRowModel<GearShootingRowModel> { + private static final long serialVersionUID = 1L; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx 2013-01-30 12:38:14 UTC (rev 268) @@ -51,8 +51,7 @@ genericType='Caracteristic'/> </cell> <cell fill='both'> - <JButton id='addRow' actionIcon='add' - onActionPerformed='handler.addRow()'/> + <JButton id='addRow' onActionPerformed='handler.addRow()'/> </cell> </row> <row fill='both' weighty='1'> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -24,15 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicRowModel; -import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; -import java.io.Serializable; - /** * @author kmorin * @since 0.3 @@ -40,64 +33,64 @@ public class HydrologyRowModel extends CaracteristicRowModel<HydrologyRowModel> { private static final long serialVersionUID = 1L; +// +// public static final String PROPERTY_GEAR_SHOOTING_START_VALUE = "gearShootingStartValue"; +// +// public static final String PROPERTY_GEAR_SHOOTING_END_VALUE = "gearShootingEndValue"; +// +// public static final String PROPERTY_AVERAGE_VALUE = "averageValue"; +// +// protected Serializable gearShootingStartValue; +// +// protected Serializable gearShootingEndValue; +// +// protected Serializable averageValue; - public static final String PROPERTY_GEAR_SHOOTING_START_VALUE = "gearShootingStartValue"; +// public HydrologyRowModel() { +// super(); +// } +// +// public HydrologyRowModel(Caracteristic key) { +// this(key, null, null, null); +// } +// +// public HydrologyRowModel(Caracteristic key, Serializable gearShootingStartValue, +// Serializable gearShootingEndValue, Serializable averageValue) { +// this(); +// this.key = key; +// this.gearShootingStartValue = gearShootingStartValue; +// this.gearShootingEndValue = gearShootingEndValue; +// this.averageValue = averageValue; +// } +// +// public Serializable getGearShootingStartValue() { +// return gearShootingStartValue; +// } +// +// public void setGearShootingStartValue(Serializable gearShootingStartValue) { +// Object oldValue = getGearShootingStartValue(); +// this.gearShootingStartValue = gearShootingStartValue; +// firePropertyChange(PROPERTY_GEAR_SHOOTING_START_VALUE, oldValue, gearShootingStartValue); +// } +// +// public Serializable getGearShootingEndValue() { +// return gearShootingEndValue; +// } +// +// public void setGearShootingEndValue(Serializable gearShootingEndValue) { +// Object oldValue = getGearShootingEndValue(); +// this.gearShootingEndValue = gearShootingEndValue; +// firePropertyChange(PROPERTY_GEAR_SHOOTING_END_VALUE, oldValue, gearShootingEndValue); +// } +// +// public Serializable getAverageValue() { +// return averageValue; +// } +// +// public void setAverageValue(Serializable averageValue) { +// Object oldValue = getAverageValue(); +// this.averageValue = averageValue; +// firePropertyChange(PROPERTY_AVERAGE_VALUE, oldValue, averageValue); +// } - public static final String PROPERTY_GEAR_SHOOTING_END_VALUE = "gearShootingEndValue"; - - public static final String PROPERTY_AVERAGE_VALUE = "averageValue"; - - protected Serializable gearShootingStartValue; - - protected Serializable gearShootingEndValue; - - protected Serializable averageValue; - - public HydrologyRowModel() { - super(); - } - - public HydrologyRowModel(Caracteristic key) { - this(key, null, null, null); - } - - public HydrologyRowModel(Caracteristic key, Serializable gearShootingStartValue, - Serializable gearShootingEndValue, Serializable averageValue) { - this(); - this.key = key; - this.gearShootingStartValue = gearShootingStartValue; - this.gearShootingEndValue = gearShootingEndValue; - this.averageValue = averageValue; - } - - public Serializable getGearShootingStartValue() { - return gearShootingStartValue; - } - - public void setGearShootingStartValue(Serializable gearShootingStartValue) { - Object oldValue = getGearShootingStartValue(); - this.gearShootingStartValue = gearShootingStartValue; - firePropertyChange(PROPERTY_GEAR_SHOOTING_START_VALUE, oldValue, gearShootingStartValue); - } - - public Serializable getGearShootingEndValue() { - return gearShootingEndValue; - } - - public void setGearShootingEndValue(Serializable gearShootingEndValue) { - Object oldValue = getGearShootingEndValue(); - this.gearShootingEndValue = gearShootingEndValue; - firePropertyChange(PROPERTY_GEAR_SHOOTING_END_VALUE, oldValue, gearShootingEndValue); - } - - public Serializable getAverageValue() { - return averageValue; - } - - public void setAverageValue(Serializable averageValue) { - Object oldValue = getAverageValue(); - this.averageValue = averageValue; - firePropertyChange(PROPERTY_AVERAGE_VALUE, oldValue, averageValue); - } - } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-01-30 12:38:14 UTC (rev 268) @@ -25,10 +25,7 @@ */ import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -36,23 +33,16 @@ import fr.ifremer.tutti.ui.swing.TuttiUI; import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI; import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIHandler; -import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil; -import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil.Type; -import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor; import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Set; import jaxx.runtime.swing.editor.bean.BeanComboBox; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; +import java.util.List; + /** * @author kmorin * @since 0.3 @@ -69,19 +59,20 @@ */ protected final HydrologyTabUI ui; - protected Map<Caracteristic, Map<Type, Caracteristic>> availableGlobalCaracteristics; +// protected Map<Caracteristic, Map<Type, Caracteristic>> availableGlobalCaracteristics; public HydrologyTabUIHandler(EditFishingOperationUI parentUi, HydrologyTabUI ui) { super(parentUi, - HydrologyRowModel.PROPERTY_GEAR_SHOOTING_START_VALUE, - HydrologyRowModel.PROPERTY_AVERAGE_VALUE, - HydrologyRowModel.PROPERTY_GEAR_SHOOTING_END_VALUE + HydrologyRowModel.PROPERTY_VALUE +// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_START_VALUE, +// HydrologyRowModel.PROPERTY_AVERAGE_VALUE, +// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_END_VALUE ); this.ui = ui; } - + //------------------------------------------------------------------------// //-- CaracteristicTabUIHandler methods --// //------------------------------------------------------------------------// @@ -95,12 +86,12 @@ protected BeanComboBox<Caracteristic> getKeyCombo() { return ui.getNewRowKey(); } - + @Override protected HydrologyTabUIModel createModel() { return new HydrologyTabUIModel(); } - + @Override protected CaracteristicMap getCaracteristics(FishingOperation operation) { return operation.getHydrologyCaracteristics(); @@ -110,7 +101,7 @@ protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) { return protocol.getHydrologyPmfmId(); } - + //------------------------------------------------------------------------// //-- AbstractTuttiTableUIHandler methods --// //------------------------------------------------------------------------// @@ -120,45 +111,45 @@ return ui.getHydrologyTable(); } - @Override - protected boolean isRowValid(HydrologyRowModel row) { - //TODO - return row.getGearShootingStartValue() != null || - row.getGearShootingEndValue() != null || - row.getAverageValue() != null; - } +// @Override +// protected boolean isRowValid(HydrologyRowModel row) { +// //TODO +// return row.getGearShootingStartValue() != null || +// row.getGearShootingEndValue() != null || +// row.getAverageValue() != null; +// } //------------------------------------------------------------------------// //-- AbstractTuttiUIHandler methods --// //------------------------------------------------------------------------// - @Override - public void beforeInitUI() { - HydrologyTabUIModel model = new HydrologyTabUIModel(); - ui.setContextValue(model); +// @Override +// public void beforeInitUI() { +// HydrologyTabUIModel model = new HydrologyTabUIModel(); +// ui.setContextValue(model); +// +// model.addPropertyChangeListener(HydrologyTabUIModel.PROPERTY_AVAILABLE_CARACTERISTICS, new PropertyChangeListener() { +// +// public void propertyChange(PropertyChangeEvent evt) { +// List<Caracteristic> hydrologyPmfm = (List<Caracteristic>) evt.getNewValue(); +// availableGlobalCaracteristics = Maps.newHashMap(); +// if (hydrologyPmfm != null) { +// for (Caracteristic caracteristic : hydrologyPmfm) { +// String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName()); +// Caracteristic globalCaracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, caracteristic); +// Map<Type, Caracteristic> values = availableGlobalCaracteristics.get(globalCaracteristic); +// if (values == null) { +// values = Maps.newHashMap(); +// availableGlobalCaracteristics.put(globalCaracteristic, values); +// } +// Type type = HydrologicCaracteristicUtil.getTypeOfCaracteristic(caracteristic); +// values.put(type, caracteristic); +// } +// } +// } +// }); +// } - model.addPropertyChangeListener(HydrologyTabUIModel.PROPERTY_AVAILABLE_CARACTERISTICS, new PropertyChangeListener() { - - public void propertyChange(PropertyChangeEvent evt) { - List<Caracteristic> hydrologyPmfm = (List<Caracteristic>) evt.getNewValue(); - availableGlobalCaracteristics = Maps.newHashMap(); - if (hydrologyPmfm != null) { - for (Caracteristic caracteristic : hydrologyPmfm) { - String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName()); - Caracteristic globalCaracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, caracteristic); - Map<Type, Caracteristic> values = availableGlobalCaracteristics.get(globalCaracteristic); - if (values == null) { - values = Maps.newHashMap(); - availableGlobalCaracteristics.put(globalCaracteristic, values); - } - Type type = HydrologicCaracteristicUtil.getTypeOfCaracteristic(caracteristic); - values.put(type, caracteristic); - } - } - } - }); - } - @Override public void afterInitUI() { super.afterInitUI(); @@ -178,29 +169,36 @@ } { - addColumnToModel(columnModel, new CaracteristicValueEditor(context), new CaracteristicValueRenderer(context), - HydrologyTableModel.GEAR_SHOOTING_START_VALUE); + HydrologyTableModel.VALUE); } - { +// { +// +// addColumnToModel(columnModel, +// new CaracteristicValueEditor(context), +// new CaracteristicValueRenderer(context), +// HydrologyTableModel.GEAR_SHOOTING_START_VALUE); +// } +// +// { +// +// addColumnToModel(columnModel, +// new CaracteristicValueEditor(context), +// new CaracteristicValueRenderer(context), +// HydrologyTableModel.GEAR_SHOOTING_END_VALUE); +// } +// +// { +// +// addColumnToModel(columnModel, +// new CaracteristicValueEditor(context), +// new CaracteristicValueRenderer(context), +// HydrologyTableModel.AVERAGE_VALUE); +// } - addColumnToModel(columnModel, - new CaracteristicValueEditor(context), - new CaracteristicValueRenderer(context), - HydrologyTableModel.GEAR_SHOOTING_END_VALUE); - } - - { - - addColumnToModel(columnModel, - new CaracteristicValueEditor(context), - new CaracteristicValueRenderer(context), - HydrologyTableModel.AVERAGE_VALUE); - } - // create table model HydrologyTableModel tableModel = new HydrologyTableModel(columnModel); @@ -214,70 +212,69 @@ //-- Public methods --// //------------------------------------------------------------------------// - /** Resets the table with the data from the database */ - @Override - public void reset(FishingOperation fishingOperation) { - HydrologyTableModel tableModel = getTableModel(); - HydrologyTabUIModel model = getModel(); +// @Override +// public void reset(FishingOperation fishingOperation) { +// HydrologyTableModel tableModel = getTableModel(); +// HydrologyTabUIModel model = getModel(); +// +// CaracteristicMap hydrologyCaracteristics = fishingOperation.getHydrologyCaracteristics(); +// if (hydrologyCaracteristics == null) { +// hydrologyCaracteristics = new CaracteristicMap(); +// } +// model.setCaracteristicMap(hydrologyCaracteristics); +// +// TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui); +// List<String> gearPmfmIds = Lists.newArrayList(); +// if (protocol != null) { +// List<String> protocolHydrologyPmfmId = protocol.getHydrologyPmfmId(); +// if (protocolHydrologyPmfmId != null) { +// gearPmfmIds.addAll(protocolHydrologyPmfmId); +// } +// } +// +// List<HydrologyRowModel> rows = Lists.newArrayList(); +// List<Caracteristic> caracteristicList = Lists.newArrayList(); +// List<Caracteristic> selectedCaracteristics = Lists.newArrayList(hydrologyCaracteristics.keySet()); +// +// List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics(); +// for (String id : gearPmfmIds) { +// Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id); +// if (!selectedCaracteristics.contains(caracteristic)) { +// selectedCaracteristics.add(caracteristic); +// } +// } +// +// Set<Caracteristic> globalCaracteristics = availableGlobalCaracteristics.keySet(); +// +// for (Caracteristic availableCaracteristic : globalCaracteristics) { +// Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(availableCaracteristic); +// +// //should add the global caracteristic to the combo or to the table? +// boolean selectedCaracteristic = false; +// for (Caracteristic caracteristic : caracteristics.values()) { +// selectedCaracteristic |= selectedCaracteristics.contains(caracteristic); +// } +// +// if (selectedCaracteristic) { +// HydrologyRowModel row = tableModel.createNewRow(); +// row.setKey(availableCaracteristic); +// row.setGearShootingStartValue(hydrologyCaracteristics.get(caracteristics.get(Type.START))); +// row.setGearShootingEndValue(hydrologyCaracteristics.get(caracteristics.get(Type.END))); +// row.setAverageValue(hydrologyCaracteristics.get(caracteristics.get(Type.AVERAGE))); +// rows.add(row); +// +// } else { +// caracteristicList.add(availableCaracteristic); +// } +// } +// +// model.setRows(rows); +// +// ui.getNewRowKey().setData(caracteristicList); +// selectFirstInCombo(ui.getNewRowKey()); +// model.setModify(false); +// } - CaracteristicMap hydrologyCaracteristics = fishingOperation.getHydrologyCaracteristics(); - if (hydrologyCaracteristics == null) { - hydrologyCaracteristics = new CaracteristicMap(); - } - model.setCaracteristicMap(hydrologyCaracteristics); - - TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui); - List<String> gearPmfmIds = Lists.newArrayList(); - if (protocol != null) { - List<String> protocolHydrologyPmfmId = protocol.getHydrologyPmfmId(); - if (protocolHydrologyPmfmId != null) { - gearPmfmIds.addAll(protocolHydrologyPmfmId); - } - } - - List<HydrologyRowModel> rows = Lists.newArrayList(); - List<Caracteristic> caracteristicList = Lists.newArrayList(); - List<Caracteristic> selectedCaracteristics = Lists.newArrayList(hydrologyCaracteristics.keySet()); - - List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics(); - for (String id : gearPmfmIds) { - Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id); - if (!selectedCaracteristics.contains(caracteristic)) { - selectedCaracteristics.add(caracteristic); - } - } - - Set<Caracteristic> globalCaracteristics = availableGlobalCaracteristics.keySet(); - - for (Caracteristic availableCaracteristic : globalCaracteristics) { - Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(availableCaracteristic); - - //should add the global caracteristic to the combo or to the table? - boolean selectedCaracteristic = false; - for (Caracteristic caracteristic : caracteristics.values()) { - selectedCaracteristic |= selectedCaracteristics.contains(caracteristic); - } - - if (selectedCaracteristic) { - HydrologyRowModel row = tableModel.createNewRow(); - row.setKey(availableCaracteristic); - row.setGearShootingStartValue(hydrologyCaracteristics.get(caracteristics.get(Type.START))); - row.setGearShootingEndValue(hydrologyCaracteristics.get(caracteristics.get(Type.END))); - row.setAverageValue(hydrologyCaracteristics.get(caracteristics.get(Type.AVERAGE))); - rows.add(row); - - } else { - caracteristicList.add(availableCaracteristic); - } - } - - model.setRows(rows); - - ui.getNewRowKey().setData(caracteristicList); - selectFirstInCombo(ui.getNewRowKey()); - model.setModify(false); - } - @Override public void removeCaracteristic() { int rowIndex = getTable().getSelectedRow(); @@ -287,14 +284,9 @@ HydrologyRowModel row = getTableModel().getEntry(rowIndex); - Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(row.getKey()); - for (Type type : caracteristics.keySet()) { - Caracteristic caracteristic = caracteristics.get(type); - - CaracteristicMap caracteristicMap = getModel().getCaracteristicMap(); - if (caracteristicMap != null) { - caracteristicMap.remove(caracteristic); - } + CaracteristicMap caracteristicMap = getModel().getCaracteristicMap(); + if (caracteristicMap != null) { + caracteristicMap.remove(row.getKey()); } //add the row in the combo @@ -309,36 +301,59 @@ getTableModel().fireTableRowsDeleted(rowIndex, rowIndex); getModel().removeRowInError(row); + +// Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(row.getKey()); +// for (Type type : caracteristics.keySet()) { +// Caracteristic caracteristic = caracteristics.get(type); +// +// CaracteristicMap caracteristicMap = getModel().getCaracteristicMap(); +// if (caracteristicMap != null) { +// caracteristicMap.remove(caracteristic); +// } +// } +// +// //add the row in the combo +// BeanComboBox keyCombo = ui.getNewRowKey(); +// keyCombo.addItem(row.getKey()); +// selectFirstInCombo(keyCombo); +// +// // remove the row from the model +// getModel().getRows().remove(rowIndex); +// +// // refresh all the table +// getTableModel().fireTableRowsDeleted(rowIndex, rowIndex); +// +// getModel().removeRowInError(row); } //------------------------------------------------------------------------// //-- Protected methods --// //------------------------------------------------------------------------// - @Override - protected void saveRow(HydrologyRowModel row) { - if (row.isValid()) { - CaracteristicMap caracteristicMap = getModel().getCaracteristicMap(); - Preconditions.checkNotNull(caracteristicMap); +// @Override +// protected void saveRow(HydrologyRowModel row) { +// if (row.isValid()) { +// CaracteristicMap caracteristicMap = getModel().getCaracteristicMap(); +// Preconditions.checkNotNull(caracteristicMap); +// +// Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(row.getKey()); +// CaracteristicMap map = new CaracteristicMap(); +// for (Type type : caracteristics.keySet()) { +// Serializable value = null; +// switch (type) { +// case START: +// value = row.getGearShootingStartValue(); +// break; +// case END: +// value = row.getGearShootingEndValue(); +// break; +// case AVERAGE: +// value = row.getAverageValue(); +// } +// map.put(caracteristics.get(type), value); +// } +// caracteristicMap.putAll(map); +// } +// } - Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(row.getKey()); - CaracteristicMap map = new CaracteristicMap(); - for (Type type : caracteristics.keySet()) { - Serializable value = null; - switch (type) { - case START: - value = row.getGearShootingStartValue(); - break; - case END: - value = row.getGearShootingEndValue(); - break; - case AVERAGE: - value = row.getAverageValue(); - } - map.put(caracteristics.get(type), value); - } - caracteristicMap.putAll(map); - } - } - } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -25,10 +25,10 @@ */ import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import static org.nuiton.i18n.I18n.n_; + /** * @author kmorin * @since 0.3 @@ -36,11 +36,9 @@ public class HydrologyTabUIModel extends CaracteristicTabUIModel<HydrologyRowModel, HydrologyTabUIModel> { private static final long serialVersionUID = 1L; - - private static final Log log = LogFactory.getLog(HydrologyTabUIModel.class); - public static final String TITLE = "tutti.label.tab.fishingOperation.hydrology"; - + public static final String TITLE = n_("tutti.label.tab.fishingOperation.hydrology"); + @Override public String getTitle() { return TITLE; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -44,21 +44,26 @@ n_("tutti.table.fishing.hydrology.header.key"), n_("tutti.table.fishing.hydrology.header.key")); - public static final ColumnIdentifier<HydrologyRowModel> GEAR_SHOOTING_START_VALUE = ColumnIdentifier.newId( - HydrologyRowModel.PROPERTY_GEAR_SHOOTING_START_VALUE, - n_("tutti.table.fishing.hydrology.header.gearShootingStartValue"), - n_("tutti.table.fishing.hydrology.header.gearShootingStartValue")); + public static final ColumnIdentifier<HydrologyRowModel> VALUE = ColumnIdentifier.newId( + HydrologyRowModel.PROPERTY_VALUE, + n_("tutti.table.fishing.hydrology.header.value"), + n_("tutti.table.fishing.hydrology.header.value")); - public static final ColumnIdentifier<HydrologyRowModel> GEAR_SHOOTING_END_VALUE = ColumnIdentifier.newId( - HydrologyRowModel.PROPERTY_GEAR_SHOOTING_END_VALUE, - n_("tutti.table.fishing.hydrology.header.gearShootingEndValue"), - n_("tutti.table.fishing.hydrology.header.gearShootingEndValue")); +// public static final ColumnIdentifier<HydrologyRowModel> GEAR_SHOOTING_START_VALUE = ColumnIdentifier.newId( +// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_START_VALUE, +// n_("tutti.table.fishing.hydrology.header.gearShootingStartValue"), +// n_("tutti.table.fishing.hydrology.header.gearShootingStartValue")); +// +// public static final ColumnIdentifier<HydrologyRowModel> GEAR_SHOOTING_END_VALUE = ColumnIdentifier.newId( +// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_END_VALUE, +// n_("tutti.table.fishing.hydrology.header.gearShootingEndValue"), +// n_("tutti.table.fishing.hydrology.header.gearShootingEndValue")); +// +// public static final ColumnIdentifier<HydrologyRowModel> AVERAGE_VALUE = ColumnIdentifier.newId( +// HydrologyRowModel.PROPERTY_AVERAGE_VALUE, +// n_("tutti.table.fishing.hydrology.header.averageValue"), +// n_("tutti.table.fishing.hydrology.header.averageValue")); - public static final ColumnIdentifier<HydrologyRowModel> AVERAGE_VALUE = ColumnIdentifier.newId( - HydrologyRowModel.PROPERTY_AVERAGE_VALUE, - n_("tutti.table.fishing.hydrology.header.averageValue"), - n_("tutti.table.fishing.hydrology.header.averageValue")); - public HydrologyTableModel(TableColumnModel columnModel) { super(columnModel, false, false); setNoneEditableCols(KEY); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-30 12:38:14 UTC (rev 268) @@ -25,13 +25,8 @@ */ import com.google.common.base.Preconditions; -import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; import com.google.common.collect.Lists; -import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; -import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -40,10 +35,8 @@ import fr.ifremer.tutti.ui.swing.MainUIHandler; import fr.ifremer.tutti.ui.swing.TuttiUI; import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction; -import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; -import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier; import jaxx.runtime.swing.editor.bean.BeanDoubleList; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections.CollectionUtils; @@ -52,7 +45,6 @@ import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; -import java.util.Collection; import java.util.List; import java.util.Map; @@ -78,24 +70,11 @@ protected Map<String, Caracteristic> allLengthStepPmfm; - protected Multimap<String, String> hydroCaracteristics; +// protected Multimap<String, String> hydroCaracteristics; - /** - * Mapping between columns and sample category - * (used to define the {@link TuttiProtocol#sampleCategoryOrder}). - * - * @since 0.3 - */ - private final BiMap<ColumnIdentifier<EditProtocolSpeciesRowModel>, SampleCategoryEnum> columToSampleCategory; - public EditProtocolUIHandler(TuttiUI parentUi, EditProtocolUI ui) { super(parentUi.getHandler().getContext()); this.ui = ui; - columToSampleCategory = HashBiMap.create(SampleCategoryEnum.values().length - 1); - columToSampleCategory.put(EditProtocolSpeciesTableModel.SIZE_ENABLED, SampleCategoryEnum.size); - columToSampleCategory.put(EditProtocolSpeciesTableModel.SEX_ENABLED, SampleCategoryEnum.sex); - columToSampleCategory.put(EditProtocolSpeciesTableModel.MATURITY_ENABLED, SampleCategoryEnum.maturity); - columToSampleCategory.put(EditProtocolSpeciesTableModel.AGE_ENABLED, SampleCategoryEnum.age); } //------------------------------------------------------------------------// @@ -129,7 +108,10 @@ @Override - protected void onRowValidStateChanged(int rowIndex, EditProtocolSpeciesRowModel row, Boolean oldValue, Boolean newValue) { + protected void onRowValidStateChanged(int rowIndex, + EditProtocolSpeciesRowModel row, + Boolean oldValue, + Boolean newValue) { super.onRowValidStateChanged(rowIndex, row, oldValue, newValue); if (row != null && row.isModify() && newValue != null && newValue) { @@ -179,12 +161,12 @@ allLengthStepPmfm = TuttiEntities.splitById( persistenceService.getAllCaracteristic()); - hydroCaracteristics = ArrayListMultimap.create(); - for (Caracteristic caracteristic : - persistenceService.getAllCaracteristic()) { - String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName()); - hydroCaracteristics.put(name, caracteristic.getId()); - } +// hydroCaracteristics = ArrayListMultimap.create(); +// for (Caracteristic caracteristic : +// persistenceService.getAllCaracteristic()) { +// String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName()); +// hydroCaracteristics.put(name, caracteristic.getId()); +// } } @Override @@ -265,19 +247,11 @@ addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.COUNT_IF_NO_FREQUENCY_ENABLED, table); addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table); - Map<SampleCategoryEnum, ColumnIdentifier<EditProtocolSpeciesRowModel>> sampleCategoryToColumn = columToSampleCategory.inverse(); + addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.SIZE_ENABLED, table); + addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.SEX_ENABLED, table); + addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.MATURITY_ENABLED, table); + addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.AGE_ENABLED, table); - List<SampleCategoryEnum> sampleCategoryOrder = model.getSampleCategoryOrder(); - if (sampleCategoryOrder != null) { - for (SampleCategoryEnum sampleOrder : sampleCategoryOrder) { - - ColumnIdentifier<EditProtocolSpeciesRowModel> columnIdentifier = sampleCategoryToColumn.get(sampleOrder); - if (columnIdentifier != null) { - addBooleanColumnToModel(columnModel, columnIdentifier, table); - } - } - } - EditProtocolSpeciesTableModel tableModel = new EditProtocolSpeciesTableModel(columnModel); table.setModel(tableModel); @@ -329,28 +303,34 @@ model.getEnvironmentPmfmId()); // init hydro pmfm double list - List<Caracteristic> selection = Lists.newArrayList(); - Collection<String> availableCaracteristicNames = hydroCaracteristics.keySet(); - List<Caracteristic> availableCaracteristics = Lists.newArrayList(); - for (String name : availableCaracteristicNames) { - Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, null); - availableCaracteristics.add(caracteristic); - } - List<String> hydrologyPmfm = model.getHydrologyPmfmId(); - if (hydrologyPmfm != null) { - for (String caracteristicName : availableCaracteristicNames) { - Collection<String> ids = hydroCaracteristics.get(caracteristicName); - for (String caracteristicId : hydrologyPmfm) { - if (ids.contains(caracteristicId)) { - Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicName, null); - selection.add(caracteristic); - break; - } - } - } - } - initBeanList(ui.getHydrologyList(), availableCaracteristics, selection); + List<Caracteristic> hydroPmfm = + persistenceService.getAllCaracteristic(); + initDoubleList(ui.getHydrologyList(), + hydroPmfm, + model.getHydrologyPmfmId()); +// List<Caracteristic> selection = Lists.newArrayList(); +// Collection<String> availableCaracteristicNames = hydroCaracteristics.keySet(); +// List<Caracteristic> availableCaracteristics = Lists.newArrayList(); +// for (String name : availableCaracteristicNames) { +// Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, null); +// availableCaracteristics.add(caracteristic); +// } +// List<String> hydrologyPmfm = model.getHydrologyPmfmId(); +// if (hydrologyPmfm != null) { +// for (String caracteristicName : availableCaracteristicNames) { +// Collection<String> ids = hydroCaracteristics.get(caracteristicName); +// for (String caracteristicId : hydrologyPmfm) { +// if (ids.contains(caracteristicId)) { +// Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicName, null); +// selection.add(caracteristic); +// break; +// } +// } +// } +// } +// initBeanList(ui.getHydrologyList(), availableCaracteristics, selection); + // if new protocol can already cancel his creation model.setModify(model.isCreate()); } @@ -403,14 +383,10 @@ getTableModel().fireTableRowsDeleted(rowIndex, rowIndex); } - public Multimap<String, String> getHydroCaracteristics() { - return hydroCaracteristics; - } +// public Multimap<String, String> getHydroCaracteristics() { +// return hydroCaracteristics; +// } - public BiMap<ColumnIdentifier<EditProtocolSpeciesRowModel>, SampleCategoryEnum> getColumToSampleCategory() { - return columToSampleCategory; - } - //------------------------------------------------------------------------// //-- Internal methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-01-30 12:38:14 UTC (rev 268) @@ -25,7 +25,6 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; @@ -54,8 +53,6 @@ public static final String PROPERTY_HYDROLOGY_PMFM_ID = "hydrologyPmfmId"; - public static final String PROPERTY_SAMPLE_CATEGORY_ORDER = "sampleCategoryOrder"; - public static final String PROPERTY_REMOVE_SPECIES_ENABLED = "removeSpeciesEnabled"; public static final String PROPERTY_IMPORTED = "imported"; @@ -72,13 +69,6 @@ protected List<String> hydrologyPmfmId; - protected List<SampleCategoryEnum> sampleCategoryOrder = Lists.newArrayList( - SampleCategoryEnum.sortedUnsorted, - SampleCategoryEnum.size, - SampleCategoryEnum.sex, - SampleCategoryEnum.maturity, - SampleCategoryEnum.age); - protected boolean imported; /** @@ -185,16 +175,6 @@ setHydrologyPmfmId(ids); } - public List<SampleCategoryEnum> getSampleCategoryOrder() { - return sampleCategoryOrder; - } - - public void setSampleCategoryOrder(List<SampleCategoryEnum> sampleCategoryOrder) { - Object oldValue = getSampleCategoryOrder(); - this.sampleCategoryOrder = sampleCategoryOrder; - firePropertyChange(PROPERTY_SAMPLE_CATEGORY_ORDER, oldValue, sampleCategoryOrder); - } - public boolean isRemoveSpeciesEnabled() { return removeSpeciesEnabled; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-01-30 12:38:14 UTC (rev 268) @@ -25,36 +25,28 @@ * #L% */ -import com.google.common.collect.BiMap; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; -import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUIContext; -import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier; -import java.awt.event.ActionEvent; -import java.util.List; -import java.util.Map; -import javax.swing.table.TableColumn; -import javax.swing.table.TableColumnModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.awt.event.ActionEvent; +import java.util.List; + import static org.nuiton.i18n.I18n._; /** - * * @author kmorin <kmorin@codelutin.com> * @since 1.0 */ public class SaveProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUIHandler> { - + /** Logger. */ private static final Log log = LogFactory.getLog(SaveProtocolAction.class); @@ -75,7 +67,8 @@ EditProtocolUIModel model = getModel(); TuttiUIContext context = getContext(); EditProtocolUIHandler handler = getHandler(); - PersistenceService persistenceService = context.getService(PersistenceService.class); + PersistenceService persistenceService = + context.getService(PersistenceService.class); TuttiProtocol bean = model.toBean(); @@ -90,41 +83,6 @@ } bean.setSpecies(protocols); - // split the hydro grouped pmfm - List<String> hydroPmfm = bean.getHydrologyPmfmId(); - List<String> allIds = Lists.newArrayList(); - Multimap<String, String> hydroCaracteristics = handler.getHydroCaracteristics(); - if (hydroPmfm != null) { - for (String id : hydroPmfm) { - allIds.addAll(hydroCaracteristics.get(id)); - } - } - bean.setHydrologyPmfmId(allIds); - - // find out sampling order - - TableColumnModel columnModel = handler.getTable().getColumnModel(); - int columnCount = columnModel.getColumnCount(); - Map<Integer, SampleCategoryEnum> sampleCategoryOrders = Maps.newTreeMap(); - - BiMap<ColumnIdentifier<EditProtocolSpeciesRowModel>,SampleCategoryEnum> columToSampleCategory = handler.getColumToSampleCategory(); - for (int i = 0; i < columnCount; i++) { - - TableColumn column = columnModel.getColumn(i); - ColumnIdentifier<EditProtocolSpeciesRowModel> identifier = (ColumnIdentifier<EditProtocolSpeciesRowModel>) column.getIdentifier(); - SampleCategoryEnum sampleCategory = columToSampleCategory.get(identifier); - if (sampleCategory != null) { - - // found a sample category, keep it - sampleCategoryOrders.put(i, sampleCategory); - } - } - - List<SampleCategoryEnum> sampleOrder = - Lists.newArrayList(sampleCategoryOrders.values()); - - bean.setSampleCategoryOrder(sampleOrder); - TuttiProtocol saved; log.info("bean id : " + bean.getId()); if (TuttiEntities.isNew(bean)) { @@ -139,5 +97,5 @@ context.setScreen(TuttiScreen.SELECT_CRUISE); } - + } Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-01-30 12:38:14 UTC (rev 268) @@ -45,9 +45,9 @@ </field-validator> </field> - <field name="trawlNet"> + <field name="multirigNumber"> <field-validator type="required" short-circuit="true"> - <message>tutti.validator.error.cruise.trawlNet.required</message> + <message>tutti.validator.error.cruise.multirigNumber.required</message> </field-validator> </field> Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-01-30 12:38:14 UTC (rev 268) @@ -54,7 +54,7 @@ </field> - <field name="trawlNetNumber"> + <field name="multirigAggregation"> <field-validator type="required" short-circuit="true"> <message> Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-01-30 12:38:14 UTC (rev 268) @@ -54,7 +54,7 @@ </field> - <field name="trawlNetNumber"> + <field name="multirigAggregation"> <field-validator type="required" short-circuit="true"> <message> Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-30 12:31:40 UTC (rev 267) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-30 12:38:14 UTC (rev 268) @@ -135,10 +135,10 @@ tutti.label.cruise.beginDate=Date de début tutti.label.cruise.country=Pays tutti.label.cruise.endDate=Date de fin +tutti.label.cruise.multirigNumber=Nombre de poches tutti.label.cruise.name=Nom tutti.label.cruise.program=Série tutti.label.cruise.surveyPart=Série partielle -tutti.label.cruise.trawlNet=Nombre de poches tutti.label.cruise.year=Année tutti.label.filterSpeciesBatchMode.label=Filtre tutti.label.filterSpeciesBatchMode.label.tip=Pour filtrer les lots @@ -168,12 +168,12 @@ tutti.label.fishingOperation.gearShootingStart=Début de traine tutti.label.fishingOperation.gearTime=Heure tutti.label.fishingOperation.location=Localité +tutti.label.fishingOperation.multirigAggregation=Numéro de poche tutti.label.fishingOperation.other=Autres caractéristiques tutti.label.fishingOperation.stationNumber=Code Station tutti.label.fishingOperation.strata=Strate tutti.label.fishingOperation.subStrata=Sous strate tutti.label.fishingOperation.trawlDistance=Distance chalutée -tutti.label.fishingOperation.trawlNetNumber=Numéro de poche tutti.label.fishingOperation.vessel=Navire tutti.label.frequencyConfiguration.lengthStepCaracteristic=Type de mesure tutti.label.frequencyConfiguration.maxStep=Classe max @@ -271,6 +271,7 @@ tutti.table.fishing.hydrology.header.gearShootingEndValue=Fin de traîne tutti.table.fishing.hydrology.header.gearShootingStartValue=Début de traîne tutti.table.fishing.hydrology.header.key=Caractéristique +tutti.table.fishing.hydrology.header.value=Valeur tutti.table.macrowaste.batch.header.comment=Commentaire tutti.table.macrowaste.batch.header.file=Pièces jointes tutti.table.macrowaste.batch.header.macroWasteCategory=Catégorie @@ -353,9 +354,9 @@ tutti.validator.error.cruise.gear.required=Au moins un engin doit être sélectionné tutti.validator.error.cruise.headOfMission.required=Au moins un chef de mission doit être sélectionné tutti.validator.error.cruise.headOfSortRoom.required=Au moins un responsable de salle de tri doit être sélectionné +tutti.validator.error.cruise.multirigNumber.required=Le nombre de poche est obligatoire tutti.validator.error.cruise.name.required=Le nom de la campagne est obligatoire tutti.validator.error.cruise.program.required=La série est obligatoire -tutti.validator.error.cruise.trawlNet.required=Le nombre de poche est obligatoire tutti.validator.error.cruise.vessel.required=Au moins un bateau doit être sélectionné tutti.validator.error.cruise.year.required=L'année est obligatoire tutti.validator.error.fishingOperation.date.required=La date du fishingOperation est obligatoire