r568 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-service/src/main/java/fr/ifremer/tutti/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches tutti-ui-swing/src/main/resources/i18n
Author: tchemit Date: 2013-03-09 17:33:30 +0100 (Sat, 09 Mar 2013) New Revision: 568 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/568 Log: fixes #2014: [TRAIT] Cr?\195?\169ation du trait - bug controle "la date de fin doit ?\195?\170tre apr?\195?\168s la date de d?\195?\169but" fixes #2112: [TRAIT] Cr?\195?\169ation du trait - Am?\195?\169lioration du titre d'un trait en cours de cr?\195?\169ation un peu de nettoyage dans le service de persistence (mais j'ai pas le temps de tout bien remettre, y'a du taf!) Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.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/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-09 13:59:14 UTC (rev 567) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-09 16:33:30 UTC (rev 568) @@ -357,7 +357,7 @@ getCurrentSession().setFlushMode(FlushMode.COMMIT); fr.ifremer.adagio.core.dao.data.operation.FishingOperation fishingOperation = fr.ifremer.adagio.core.dao.data.operation.FishingOperation.Factory.newInstance(); - beanToEntity(bean, fishingOperation, true); + beanToEntity(bean, fishingOperation); fishingOperationDao.create(fishingOperation); bean.setId(String.valueOf(fishingOperation.getId())); getCurrentSession().flush(); @@ -384,7 +384,7 @@ if (fishingOperation == null) { throw new DataRetrievalFailureException("Could not retrieve fishing operation with id=" + bean.getId()); } - beanToEntity(bean, fishingOperation, true); + beanToEntity(bean, fishingOperation); fishingOperationDao.update(fishingOperation); getCurrentSession().flush(); return bean; @@ -508,7 +508,8 @@ } } - protected void beanToEntity(FishingOperation source, fr.ifremer.adagio.core.dao.data.operation.FishingOperation target, boolean copyIfNull) { + protected void beanToEntity(FishingOperation source, + fr.ifremer.adagio.core.dao.data.operation.FishingOperation target) { StringBuilder nameBuffer = new StringBuilder(); // Retrieve entities : FishingTrip and ScientificCruise @@ -627,7 +628,7 @@ } // StationNumber - if (copyIfNull && source.getStationNumber() == null) { + if (source.getStationNumber() == null) { // Nothing to do : will be removed using the list notChangedVesselUseMeasurements } else if (source.getStationNumber() != null) { VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_STATION_NUMBER, null, source.getStationNumber(), null); @@ -635,7 +636,7 @@ } // OP N° - if (copyIfNull && source.getFishingOperationNumber() == null) { + if (source.getFishingOperationNumber() == null) { // Leave empty in the name buffer } else if (source.getFishingOperationNumber() != null) { nameBuffer.append(source.getFishingOperationNumber()); @@ -643,7 +644,7 @@ target.setName(nameBuffer.toString()); // Multirig Aggregation - if (copyIfNull && source.getMultirigAggregation() == null) { + if (source.getMultirigAggregation() == null) { // Nothing to do : will be removed later, using notChangedGearUseMeasurements } else if (source.getMultirigAggregation() != null) { if (source.getMultirigAggregation().matches("\\d+")) { @@ -662,7 +663,7 @@ } // Start date : - if (copyIfNull && source.getGearShootingStartDate() == null) { + if (source.getGearShootingStartDate() == null) { target.setStartDateTime(null); target.setFishingStartDateTime(null); } else if (source.getGearShootingStartDate() != null) { @@ -673,7 +674,7 @@ } // End date : - if (copyIfNull && source.getGearShootingEndDate() == null) { + if (source.getGearShootingEndDate() == null) { target.setEndDateTime(null); target.setFishingEndDateTime(null); } else if (source.getGearShootingEndDate() != null) { @@ -684,7 +685,7 @@ } // Trawl distance - if (copyIfNull && source.getTrawlDistance() == null) { + if (source.getTrawlDistance() == null) { // Nothing to do : will be removed later, using notChangedVesselUseMeasurements } else if (source.getTrawlDistance() != null) { VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_TRAWL_DISTANCE, source.getTrawlDistance(), null, null); @@ -698,7 +699,7 @@ } // Operation is valid ? - if (copyIfNull && source.getFishingOperationValid() == null) { + if (source.getFishingOperationValid() == null) { // Nothing to do : will be removed later, using notChangedVesselUseMeasurements } else if (source.getFishingOperationValid() != null) { VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_HAUL_VALID, null, null, source.getFishingOperationValid() ? enumeration.QUALITATIVE_HAUL_VALID_YES : enumeration.QUALITATIVE_HAUL_VALID_NO); @@ -709,7 +710,7 @@ target.setVessel(fishingTrip.getVessel()); // Associated vessel - if (copyIfNull && source.getVessel() == null && target.getOperationVesselAssociations() != null) { + if (source.getVessel() == null && target.getOperationVesselAssociations() != null) { target.getOperationVesselAssociations().clear(); } else if (source.getVessel() != null && source.getVessel().getId() != null) { @@ -764,7 +765,7 @@ } // GearUseFeatures.Gear - if (copyIfNull && source.getGear() == null) { + if (source.getGear() == null) { gearUseFeatures.setGear(null); } else if (source.getGear() != null && source.getGear().getId() != null) { gearUseFeatures.setGear(load(GearImpl.class, Integer.valueOf(source.getGear().getId()))); @@ -785,8 +786,8 @@ target.getVesselPositions().add(startPosition); } startPosition.setDateTime(target.getStartDateTime()); - startPosition.setLatitude(source.getGearShootingStartLatitude() != null ? source.getGearShootingStartLatitude() : DEFAULT_EMPTY_LATITUDE); - startPosition.setLongitude(source.getGearShootingStartLongitude() != null ? source.getGearShootingStartLongitude() : DEFAULT_EMPTY_LONGITUDE); + startPosition.setLatitude(source.getGearShootingStartLatitude() == null ? DEFAULT_EMPTY_LATITUDE : source.getGearShootingStartLatitude()); + startPosition.setLongitude(source.getGearShootingStartLongitude() == null ? DEFAULT_EMPTY_LONGITUDE : source.getGearShootingStartLongitude()); startPosition.setVessel(target.getVessel()); startPosition.setProgram(scientificCruise.getProgram()); startPosition.setRecorderDepartment(scientificCruise.getRecorderDepartment()); @@ -809,7 +810,9 @@ endPosition.setOperation(target); target.getVesselPositions().add(endPosition); } - Date endDateTime = convertUI2DatabaseMandatoryDate(target.getEndDateTime(), startPosition.getDateTime(), true); + Date endDateTime = convertUI2DatabaseMandatoryDate( + target.getEndDateTime(), + startPosition.getDateTime(), true); endPosition.setDateTime(endDateTime); if (!endDateTime.equals(target.getEndDateTime())) { // To link position with the operation end, Allegro need to have exactly the same dates @@ -831,7 +834,7 @@ // Vessel user features CaracteristicMap vesselUseCaracteristics = source.getVesselUseFeatures(); - if (copyIfNull && vesselUseCaracteristics == null || vesselUseCaracteristics.size() == 0) { + if (vesselUseCaracteristics == null || vesselUseCaracteristics.size() == 0) { // Nothing to do : will be removed later, using notChangedVesselUseMeasurements } else if (vesselUseCaracteristics != null && vesselUseCaracteristics.size() > 0) { for (Caracteristic caracteristic : vesselUseCaracteristics.keySet()) { @@ -842,7 +845,7 @@ // Recorder persons StringBuilder miscDataBuffer = new StringBuilder(); - if (copyIfNull && (source.getRecorderPerson() == null || source.getRecorderPerson().size() == 0)) { + if ((source.getRecorderPerson() == null || source.getRecorderPerson().size() == 0)) { miscDataBuffer.append(MISC_DATA_RECORDER_PERSONS_TAG); } else if (source.getRecorderPerson() != null && source.getRecorderPerson().size() > 0) { List<Person> persons = source.getRecorderPerson(); @@ -854,7 +857,7 @@ } // Store misc data into comments - if (copyIfNull && source.getComment() == null) { + if (source.getComment() == null) { // Store only misc data : target.setComments(miscDataBuffer.toString()); } else if (source.getComment() != null) { @@ -868,7 +871,7 @@ // Gear use Caracteristics CaracteristicMap gearUseCaracteristics = source.getGearUseFeatures(); - if (copyIfNull && gearUseCaracteristics == null || gearUseCaracteristics.size() == 0) { + if (gearUseCaracteristics == null || gearUseCaracteristics.size() == 0) { // Nothing to do : will be removed later, using notChangedGearUseMeasurements } else if (gearUseCaracteristics != null && gearUseCaracteristics.size() > 0) { for (Caracteristic caracteristic : gearUseCaracteristics.keySet()) { @@ -903,7 +906,7 @@ } // Strata : - if (copyIfNull && (source.getStrata() == null || source.getStrata().getId() == null)) { + if (source.getStrata() == null || source.getStrata().getId() == null) { // will be removed using notChangedRegulationLocation @@ -926,7 +929,7 @@ } // Sub-Strata : - if (copyIfNull && (source.getSubStrata() == null || source.getSubStrata().getId() == null)) { + if (source.getSubStrata() == null || source.getSubStrata().getId() == null) { // will be removed using notChangedRegulationLocation @@ -950,7 +953,7 @@ } // Localite : - if (copyIfNull && (source.getLocation() == null || source.getLocation().getId() == null)) { + if (source.getLocation() == null || source.getLocation().getId() == null) { // will be removed using notChangedRegulationLocation @@ -975,7 +978,7 @@ fishingArea.getRegulationLocation().removeAll(notChangedRegulationLocation); // Fishing Area location (should be a statistical location) - if (copyIfNull && statisticalLocationId == null) { + if (statisticalLocationId == null) { gearUseFeatures.getFishingAreas().remove(fishingArea); //Nothing to do : a gearUseFeatures.getFishingAreas().clear() has been done before if (fishingArea.getRegulationLocation() != null) { Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-09 13:59:14 UTC (rev 567) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-09 16:33:30 UTC (rev 568) @@ -55,6 +55,7 @@ import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator; import fr.ifremer.tutti.service.config.TuttiServiceConfig; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -496,16 +497,31 @@ @Override public FishingOperation getFishingOperation(String id) { - return driver.getFishingOperation(id); + + FishingOperation bean = driver.getFishingOperation(id); + // see http://forge.codelutin.com/issues/2014 + if (bean.getGearShootingEndDate() == null) { + bean.setGearShootingEndDate(bean.getGearShootingStartDate()); + } + return bean; } @Override public FishingOperation createFishingOperation(FishingOperation bean) { + + // see http://forge.codelutin.com/issues/2014 + if (ObjectUtils.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) { + bean.setGearShootingEndDate(null); + } return driver.createFishingOperation(bean); } @Override public FishingOperation saveFishingOperation(FishingOperation bean) { + // see http://forge.codelutin.com/issues/2014 + if (ObjectUtils.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) { + bean.setGearShootingEndDate(null); + } return driver.saveFishingOperation(bean); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-09 13:59:14 UTC (rev 567) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-09 16:33:30 UTC (rev 568) @@ -339,10 +339,12 @@ // now fishing operation is edited model.setEditFishingOperation(fishingOperation); - loadFishingOperation(fishingOperation); + String fishingOperationText = getFishingOperationTitle(fishingOperation); - loadCatchBatch(fishingOperation, true); + loadFishingOperation(fishingOperation, fishingOperationText); + loadCatchBatch(fishingOperation, fishingOperationText, true); + JTabbedPane form = ui.getTabPane(); JLabel noContentPane = ui.getNoTraitPane(); @@ -379,7 +381,8 @@ }); } - public void loadFishingOperation(FishingOperation bean) { + public void loadFishingOperation(FishingOperation bean, + String fishingOperationText) { EditFishingOperationUI ui = getUI().getFishingOperationTabContent(); @@ -469,6 +472,15 @@ handler.registerValidator(); } + ui.getTraitGeneralTabPane().setTitle(fishingOperationText); + ui.getVesselUseFeatureTabPane().setTitle(fishingOperationText); + ui.getGearUseFeatureTabPane().setTitle(fishingOperationText); + + handler.installStartDateListener(); + handler.installCoordinatesListener(); + } + + public String getFishingOperationTitle(FishingOperation bean) { Decorator<FishingOperation> decorator = getDecorator(FishingOperation.class, null); @@ -476,19 +488,19 @@ if (bean == null) { fishingOperationText = null; + } else if (TuttiEntities.isNew(bean)) { + fishingOperationText = _("tutti.label.traitReminder", + _("tutti.label.traitReminder.inCreation")); } else { fishingOperationText = _("tutti.label.traitReminder", decorator.toString(bean)); } - ui.getTraitGeneralTabPane().setTitle(fishingOperationText); - ui.getVesselUseFeatureTabPane().setTitle(fishingOperationText); - ui.getGearUseFeatureTabPane().setTitle(fishingOperationText); - - handler.installStartDateListener(); - handler.installCoordinatesListener(); + return fishingOperationText; } - public void loadCatchBatch(FishingOperation bean, boolean loadOtherTabs) { + public void loadCatchBatch(FishingOperation bean, + String fishingOperationText, + boolean loadOtherTabs) { boolean empty = bean == null || TuttiEntities.isNew(bean); @@ -546,18 +558,6 @@ catchesUIModel.setModify(false); catchBatchMonitor.clearModified(); - Decorator<FishingOperation> decorator = - getDecorator(FishingOperation.class, null); - - String fishingOperationText; - - if (bean == null) { - fishingOperationText = null; - } else { - fishingOperationText = _("tutti.label.traitReminder", - decorator.toString(bean)); - } - // 3) Propagate title to others tabs ui.getCatchesCaracteristicsTabPane().setTitle(fishingOperationText); ui.getSpeciesTabFishingOperationReminderLabel().setTitle(fishingOperationText); 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-03-09 13:59:14 UTC (rev 567) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-09 16:33:30 UTC (rev 568) @@ -567,6 +567,7 @@ #importCasinoButton { _tuttiAction: {ImportCasinoAction.class}; + enabled: {model.getId() != null}; toolTipText: "tuttihelp.editFishingOperation.action.importCasino.tip"; _help: {"tuttihelp.editFishingOperation.action.importCasino.help"}; } 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-03-09 13:59:14 UTC (rev 567) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-03-09 16:33:30 UTC (rev 568) @@ -24,6 +24,7 @@ * #L% */ +import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; @@ -91,7 +92,7 @@ } List<FishingOperation> fishingOperations = - persistenceService.getAllFishingOperation(cruise.getId()); + Lists.newArrayList(persistenceService.getAllFishingOperation(cruise.getId())); for (FishingOperation fishingOperation : fishingOperations) { fishingOperation.setCruise(cruise); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-09 13:59:14 UTC (rev 567) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-09 16:33:30 UTC (rev 568) @@ -89,9 +89,11 @@ FishingOperation operation = getModel().getFishingOperation(); - //TODO Should we also reload other tabs ??? Probably yes + //FIXME-TC Should we also reload other tabs ??? Probably yes - getEditAction().loadCatchBatch(operation, false); + String fishingOperationText = getEditAction().getFishingOperationTitle(operation); + + getEditAction().loadCatchBatch(operation, fishingOperationText, false); } } 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-03-09 13:59:14 UTC (rev 567) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 16:33:30 UTC (rev 568) @@ -369,6 +369,7 @@ tutti.label.tab.protocol.species=Espèces tutti.label.tab.species=Espèces tutti.label.traitReminder=Trait \: %s +tutti.label.traitReminder.inCreation=en cours de création tutti.legend.catch.benthos=Benthos tutti.legend.catch.macroWaste=Macro déchets tutti.legend.catch.species=Espèces
participants (1)
-
tchemit@users.forge.codelutin.com