r1326 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-service/src/main/java/fr/ifremer/tutti/service tutti-ui-swing/src/license tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise tutti-ui-swing/src/main/resources/i18n
Author: tchemit Date: 2013-11-05 01:53:28 +0100 (Tue, 05 Nov 2013) New Revision: 1326 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1326 Log: fixes #3674: [CAMPAGNE] pouvoir ajouter plusieur engins professionnels de m?\195?\170me type ?\195?\160 une campagne Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrders.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 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/TuttiPersistence.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -54,6 +54,7 @@ import org.springframework.transaction.annotation.Transactional; import java.io.File; +import java.util.Collection; import java.util.List; import java.util.concurrent.Callable; @@ -420,12 +421,14 @@ Cruise createCruise(Cruise bean); @Transactional(readOnly = false) - Cruise saveCruise(Cruise bean); + Cruise saveCruise(Cruise bean, boolean updateVessel, boolean updateGear); CaracteristicMap getGearCaracteristics(String cruiseId, String gearId, short rankOrder); + boolean isOperationUseGears(Integer cruiseId, Collection<Gear> gears); + @Transactional(readOnly = false) void saveGearCaracteristics(Gear gear, Cruise cruise); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -81,6 +81,7 @@ import java.io.File; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; @@ -558,8 +559,10 @@ } @Override - public Cruise saveCruise(Cruise bean) { - return cruiseService.saveCruise(bean); + public Cruise saveCruise(Cruise bean, + boolean updateVessel, + boolean updateGear) { + return cruiseService.saveCruise(bean, updateVessel, updateGear); } @Override @@ -568,6 +571,11 @@ } @Override + public boolean isOperationUseGears(Integer cruiseId, Collection<Gear> gears) { + return cruiseService.isOperationUseGears(cruiseId, gears); + } + + @Override public void saveGearCaracteristics(Gear gear, Cruise cruise) { cruiseService.saveGearCaracteristics(gear, cruise); } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -54,6 +54,7 @@ import java.io.File; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.concurrent.Callable; @@ -356,7 +357,9 @@ } @Override - public Cruise saveCruise(Cruise bean) { + public Cruise saveCruise(Cruise bean, + boolean updateVessel, + boolean updateGear) { throw notImplemented(); } @@ -366,6 +369,11 @@ } @Override + public boolean isOperationUseGears(Integer cruiseId, Collection<Gear> gears) { + throw notImplemented(); + } + + @Override public void saveGearCaracteristics(Gear gear, Cruise cruise) { throw notImplemented(); } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -111,6 +111,13 @@ return result; } + public static <B extends TuttiEntity> List<Integer> toIntegerIds(Collection<B> list) { + List<Integer> result = list == null ? + Collections.<Integer>emptyList() : + Lists.transform(Lists.newArrayList(list), GET_ID_AS_INT); + return result; + } + public static Set<String> toTaxonIds(List<Species> list) { Set<String> result = list == null ? Collections.<String>emptySet() : Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -59,4 +59,8 @@ return super.hashCode() + 13 * (rankOrder == null ? 0 : rankOrder.hashCode()); } + @Override + public String toString() { + return super.toString() + " rankOrder: " + rankOrder + ", originalRankOrder:" + originalRankOrder; + } } //GearWithOriginalRankOrderBean Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrders.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrders.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrders.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -32,6 +32,13 @@ @Generated(value = "org.nuiton.eugene.java.SimpleJavaBeanTransformer", date = "Wed Oct 02 14:29:49 CEST 2013") public class GearWithOriginalRankOrders extends AbstractGearWithOriginalRankOrders { + public static <BeanType extends GearWithOriginalRankOrder> BeanType newGearWithOriginalRankOrder(Integer id, Short rankOrder) { + BeanType result = (BeanType) newGearWithOriginalRankOrder(); + result.setId(id); + result.setRankOrder(rankOrder); + return result; + } + public static <BeanType extends GearWithOriginalRankOrder> BeanType newGearWithOriginalRankOrder(Gear source) { Class<BeanType> sourceType = typeOfGearWithOriginalRankOrder(); Binder<Gear,BeanType> binder = BinderFactory.newBinder(Gear.class, sourceType); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -30,7 +30,9 @@ import fr.ifremer.tutti.persistence.entities.referential.Gear; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; +import java.util.Set; /** * CRUD of {@link Cruise} entity. @@ -49,10 +51,12 @@ Cruise createCruise(Cruise bean); @Transactional(readOnly = false) - Cruise saveCruise(Cruise bean); + Cruise saveCruise(Cruise bean, boolean updateVessel, boolean updateGear); CaracteristicMap getGearCaracteristics(String cruiseId, String gearId, short rankOrder); @Transactional(readOnly = false) void saveGearCaracteristics(Gear gear, Cruise cruise); + + boolean isOperationUseGears(Integer cruiseId, Collection<Gear> gears); } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -70,6 +70,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrder; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrders; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; @@ -87,6 +88,7 @@ import javax.annotation.Resource; import java.io.Serializable; import java.text.MessageFormat; +import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.Iterator; @@ -293,7 +295,9 @@ } @Override - public Cruise saveCruise(Cruise bean) { + public Cruise saveCruise(Cruise bean, + boolean updateVessel, + boolean updateGear) { Preconditions.checkNotNull(bean); Preconditions.checkNotNull(bean.getId(), "Cruise 'id' must not be null or empty to be saved."); Preconditions.checkNotNull(bean.getProgram()); @@ -310,14 +314,14 @@ "Could not retrieve cruise with id=" + bean.getId()); } - boolean vesselChanged = ObjectUtils.notEqual( - bean.getVessel().getId(), - scientificCruise.getVessel().getCode()); +// boolean vesselChanged = ObjectUtils.notEqual( +// bean.getVessel().getId(), +// scientificCruise.getVessel().getCode()); cruiseToEntity(bean, scientificCruise); scientificCruiseDao.update(scientificCruise); - if (vesselChanged) { + if (updateVessel) { Vessel vessel = bean.getVessel(); if (log.isInfoEnabled()) { log.info("Change vessel to " + vessel.getId() + @@ -328,6 +332,35 @@ "vesselId", StringType.INSTANCE, scientificCruise.getVessel().getCode()); } + if (updateGear) { + + for (GearWithOriginalRankOrder gear : bean.getGear()) { + + Short originalRankOrder = gear.getOriginalRankOrder(); + Short newRankOrder = gear.getRankOrder(); + + if (originalRankOrder != null && originalRankOrder != 0 && + ObjectUtils.notEqual(originalRankOrder, newRankOrder)) { + + // gear was used, but the rank order has changed + // must update all operation using it + + if (log.isInfoEnabled()) { + log.info("Change gear " + gear.getId() + ", old rankOrder:" + + originalRankOrder + " to " + newRankOrder + + " for cruise: " + bean.getId()); + } + + queryUpdate("updateOperationsGear", + "cruiseId", IntegerType.INSTANCE, scientificCruise.getId(), + "gearId", IntegerType.INSTANCE, gear.getIdAsInt(), + "oldRankOrder", ShortType.INSTANCE, originalRankOrder, + "newRankOrder", ShortType.INSTANCE, newRankOrder + ); + } + } + } + return bean; } @@ -471,6 +504,41 @@ gearPhysicalFeaturesDao.update(gpf); } + @Override + public boolean isOperationUseGears(Integer cruiseId, Collection<Gear> gears) { + + Preconditions.checkNotNull(cruiseId); + Preconditions.checkNotNull(gears); + + boolean result = false; + + if (!gears.isEmpty()) { + // --- + // get all gears found in operations of the cruise + // --- + + List<Integer> gearIds = TuttiEntities.toIntegerIds(gears); + Iterator<Object[]> list = queryList( + "allFishingOperationsWithGear", + "cruiseId", IntegerType.INSTANCE, cruiseId, + "gearIds", IntegerType.INSTANCE, gearIds + ); + + while (list.hasNext()) { + Object[] next = list.next(); + GearWithOriginalRankOrder g = GearWithOriginalRankOrders.newGearWithOriginalRankOrder( + (Integer) next[0], + (Short) next[1] + ); + if (gears.contains(g)) { + result = true; + break; + } + } + } + return result; + } + protected void cruiseToEntity(Cruise source, ScientificCruise target) { QualityFlag qualityFlagNotQualified = load( @@ -606,23 +674,22 @@ // Remove deleted gear physical features if (fishingTrip.getGearPhysicalFeatures() != null && notChangedGearPhysicalFeatures.size() > 0) { - List<Integer> gearIds = Lists.transform(Lists.newArrayList(notChangedGearPhysicalFeatures), - new Function<GearPhysicalFeatures, Integer>() { - @Override - public Integer apply(GearPhysicalFeatures input) { - Integer result = null; - if (input != null && input.getGear() != null) { - result = input.getGear().getId(); - } - return result; - } - }); - Iterator<Object[]> list = queryList( - "allFishingOperationsWithGear", - "cruiseId", IntegerType.INSTANCE, target.getId(), - "gearIds", IntegerType.INSTANCE, gearIds - ); - if (list.hasNext()) { + List<Gear> gears = Lists.transform(Lists.newArrayList(notChangedGearPhysicalFeatures), + new Function<GearPhysicalFeatures, Gear>() { + @Override + public Gear apply(GearPhysicalFeatures input) { + Gear result = Gears.newGear(); + + if (input != null && input.getGear() != null) { + result.setRankOrder(input.getRankOrder()); + result.setId(input.getGear().getId()); + } + return result; + } + }); + + boolean gearRemoved = isOperationUseGears(target.getId(), gears); + if (gearRemoved) { throw new TuttiBusinessException(_("tutti.persistence.cruise.gearUsedInOperations.error")); } 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-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -82,6 +82,7 @@ import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -959,8 +960,8 @@ } @Override - public Cruise saveCruise(Cruise bean) { - return driver.saveCruise(bean); + public Cruise saveCruise(Cruise bean, boolean updateVessel, boolean updateGear) { + return driver.saveCruise(bean, updateVessel, updateGear); } @Override @@ -968,10 +969,10 @@ return driver.getGearCaracteristics(cruiseId, gearId, rankOrder); } -// @Override -// public Gear getGearWithCaracteristics(Gear gear, short rankOrder, Cruise cruise) { -// return driver.getGearWithCaracteristics(gear, rankOrder, cruise); -// } + @Override + public boolean isOperationUseGears(Integer cruiseId, Collection<Gear> gears) { + return driver.isOperationUseGears(cruiseId, gears); + } @Override public void saveGearCaracteristics(Gear gear, Cruise cruise) { Modified: trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties =================================================================== --- trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-11-05 00:53:28 UTC (rev 1326) @@ -22,36 +22,15 @@ # - MPL 1.1 # - New BSD License # - Public Domain -# - The AndroMDA Project # - The Apache Software License, Version 2.0 # - license.txt #------------------------------------------------------------------------------- # Please fill the missing licenses for dependencies : # # -#Wed Jul 03 16:24:14 CEST 2013 +#Thu Oct 31 17:05:37 CET 2013 antlr--antlr--2.7.6=BSD License commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 dom4j--dom4j--1.6.1=BSD License javax.persistence--persistence-api--1.0.2=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 javax.transaction--jta--1.1=Common Development and Distribution License (CDDL) v1.0 -org.andromda--andromda-core--3.3.1=BSD License -org.andromda--andromda-utils--3.3.1=BSD License -org.andromda.cartridges--andromda-hibernate-cartridge--3.3.1=BSD License -org.andromda.cartridges--andromda-java-cartridge--3.3.1=BSD License -org.andromda.cartridges--andromda-spring-cartridge--3.3.1=BSD License -org.andromda.metafacades--andromda-metafacades-uml--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-common--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-datatype--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-meta--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-persistence--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-presentation--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-process--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-screen--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-service--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-webservice--3.3.1=BSD License -org.andromda.profiles.emf.uml2--andromda-profile-xml--3.3.1=BSD License -org.andromda.translationlibraries--andromda-ocl-translation-core--3.3.1=BSD License -org.andromda.translationlibraries--andromda-ocl-validation-library--3.3.1=BSD License -xalan--xalan--2.7.0=The Apache Software License, Version 2.0 -xerces--xercesImpl--2.6.0=The Apache Software License, Version 2.0 Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-11-05 00:53:28 UTC (rev 1326) @@ -24,15 +24,20 @@ * #L% */ +import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrder; +import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrders; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction; +import org.apache.commons.lang3.ObjectUtils; import javax.swing.JOptionPane; +import java.util.Set; import static org.nuiton.i18n.I18n._; @@ -46,6 +51,10 @@ protected PersistenceService persistenceService; + protected boolean updateVessel; + + protected boolean updateGear; + public SaveCruiseAction(EditCruiseUIHandler handler) { super(handler, true); persistenceService = getContext().getPersistenceService(); @@ -58,7 +67,11 @@ Cruise bean = getModel().toBean(); if (!TuttiEntities.isNew(bean)) { Cruise oldCruise = persistenceService.getCruise(bean.getId()); + + // check gear has not changed if (!oldCruise.getVessel().equals(bean.getVessel())) { + + // if so ask user confirmation String htmlMessage = String.format( AbstractTuttiUIHandler.CONFIRMATION_FORMAT, _("tutti.editCruise.action.save.vesselChanged.message"), @@ -70,8 +83,59 @@ JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); - result = answer == JOptionPane.OK_OPTION; + result = updateVessel = answer == JOptionPane.OK_OPTION; } + + if (result) { + + if (ObjectUtils.notEqual(oldCruise.getGear(), bean.getGear())) { + + // get all gears to remove + + Set<Gear> gearsToRemove = + Sets.<Gear>newHashSet(oldCruise.getGear()); + + for (GearWithOriginalRankOrder gearWithOriginalRankOrder : bean.getGear()) { + GearWithOriginalRankOrder g = + GearWithOriginalRankOrders.newGearWithOriginalRankOrder( + gearWithOriginalRankOrder.getIdAsInt(), + gearWithOriginalRankOrder.getOriginalRankOrder() + ); + gearsToRemove.remove(g); + } + + // check they are not used by any operation of the cruise + boolean obsoleteGearIsUsed = persistenceService.isOperationUseGears( + bean.getIdAsInt(), gearsToRemove); + + if (obsoleteGearIsUsed) { + + // not possible, can't removed used gears + + String message = _("tutti.persistence.cruise.gearUsedInOperations.error"); + displayWarningMessage( + _("tutti.editCruise.action.save.gearChanged.title"), + "<html><body>" + message + "</body></html>" + ); + result = false; + } else { + + // if so ask user confirmation + String htmlMessage = String.format( + AbstractTuttiUIHandler.CONFIRMATION_FORMAT, + _("tutti.editCruise.action.save.gearChanged.message"), + _("tutti.editCruise.action.save.gearChanged.help")); + + int answer = JOptionPane.showConfirmDialog(getContext().getActionUI(), + htmlMessage, + _("tutti.editCruise.action.save.gearChanged.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.WARNING_MESSAGE); + + result = updateGear = answer == JOptionPane.OK_OPTION; + } + } + } } return result; @@ -91,7 +155,7 @@ model.setId(saved.getId()); sendMessage(_("tutti.flash.info.cruiseCreated", bean.getName())); } else { - saved = persistenceService.saveCruise(bean); + saved = persistenceService.saveCruise(bean, updateVessel, updateGear); sendMessage(_("tutti.flash.info.cruiseSaved", bean.getName())); } Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-11-05 00:53:28 UTC (rev 1326) @@ -615,6 +615,9 @@ tutti.editCruise.action.generateCampaignName= tutti.editCruise.action.generateCampaignName.mnemonic= tutti.editCruise.action.generateName.tip= +tutti.editCruise.action.save.gearChanged.help= +tutti.editCruise.action.save.gearChanged.message= +tutti.editCruise.action.save.gearChanged.title= tutti.editCruise.action.save.vesselChanged.help= tutti.editCruise.action.save.vesselChanged.message= tutti.editCruise.action.save.vesselChanged.title= @@ -1382,6 +1385,7 @@ tutti.option.clone= tutti.option.edit= tutti.option.import= +tutti.persistence.cruise.gearUsedInOperations.error= tutti.property.get.error= tutti.property.name= tutti.property.refTaxCode= 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-11-04 14:17:33 UTC (rev 1325) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-11-05 00:53:28 UTC (rev 1326) @@ -613,6 +613,9 @@ tutti.editCruise.action.generateCampaignName=Générer le nom tutti.editCruise.action.generateCampaignName.mnemonic=G tutti.editCruise.action.generateName.tip=Générer le nom normalisé de la campagne +tutti.editCruise.action.save.gearChanged.help=Les engins des traits de la campagne vont également être modifiés.<ul><li><strong>Annuler</strong> pour ne pas enregistrer les modifications de la campagne ni les traits</li><li><strong>OK</strong> pour enregistrer la campagne et modifier les engins des traits</li></ul>. +tutti.editCruise.action.save.gearChanged.message=Les engins de la campagne ont été modifiés. +tutti.editCruise.action.save.gearChanged.title=Engin(s) modifié(s) tutti.editCruise.action.save.vesselChanged.help=Le navire des traits de la campagne va également être modifié.<ul><li><strong>Annuler</strong> pour ne pas enregistrer les modifications de la campagne ni les traits</li><li><strong>OK</strong> pour enregistrer la campagne et modifier le navire des traits</li></ul>. tutti.editCruise.action.save.vesselChanged.message=Le navire de la campagne a été modifié. tutti.editCruise.action.save.vesselChanged.title=Navire modifié @@ -1380,6 +1383,7 @@ tutti.option.clone=Cloner tutti.option.edit=Éditer tutti.option.import=Importer +tutti.persistence.cruise.gearUsedInOperations.error= tutti.property.get.error=Propriété %1s non trouvée sur l'objet de type %2s tutti.property.name= tutti.property.refTaxCode=
participants (1)
-
tchemit@users.forge.codelutin.com