r1159 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species tutti-ui-swing/src/main/resources/i18n
Author: tchemit Date: 2013-07-27 16:13:54 +0200 (Sat, 27 Jul 2013) New Revision: 1159 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1159 Log: refs #2889: [TECH] - Prise en compte de nouvelles cat?\195?\169gories dans l'applicatif (verification avant import pupitri) Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSampleCategoryModelAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.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/TuttiPersistenceNoDbImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-07-27 13:48:21 UTC (rev 1158) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-07-27 14:13:54 UTC (rev 1159) @@ -163,6 +163,11 @@ } @Override + public List<Caracteristic> getAllCaracteristicForSampleCategory() { + throw notImplemented(); + } + + @Override public List<Caracteristic> getAllNumericCaracteristic() { throw notImplemented(); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSampleCategoryModelAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSampleCategoryModelAction.java 2013-07-27 13:48:21 UTC (rev 1158) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSampleCategoryModelAction.java 2013-07-27 14:13:54 UTC (rev 1159) @@ -48,10 +48,10 @@ result = TuttiUIUtil.askAdminPassword( getContext().getActionUI(), getConfig(), - _("tutti.sampleCategoryModel.passwordDialog.message"), - _("tutti.sampleCategoryModel.passwordDialog.title"), - _("tutti.sampleCategoryModel.passwordDialog.error.message"), - _("tutti.sampleCategoryModel.passwordDialog.error.title") + _("tutti.editSampleCategoryModel.passwordDialog.message"), + _("tutti.editSampleCategoryModel.passwordDialog.title"), + _("tutti.editSampleCategoryModel.passwordDialog.error.message"), + _("tutti.editSampleCategoryModel.passwordDialog.error.title") ); } return result; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.java 2013-07-27 13:48:21 UTC (rev 1158) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.java 2013-07-27 14:13:54 UTC (rev 1159) @@ -24,9 +24,13 @@ * #L% */ +import com.google.common.base.Joiner; +import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.pupitri.TuttiPupitriImportExportService; import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationAction; @@ -36,7 +40,9 @@ import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper; import javax.swing.JOptionPane; +import javax.swing.UIManager; import java.io.File; +import java.util.List; import static org.nuiton.i18n.I18n._; @@ -75,24 +81,50 @@ @Override protected boolean prepareAction() throws Exception { boolean result = true; - currentProtocol = getDataContext().getProtocol(); - SpeciesBatchUIModel speciesBatchUIModel = getUI().getModel(); - if (speciesBatchUIModel.getRowCount() > 0) { - String htmlMessage = String.format( - AbstractTuttiUIHandler.CONFIRMATION_FORMAT, - _("tutti.editSpeciesBatch.action.importPupitri.existingData.message"), - _("tutti.editSpeciesBatch.action.importPupitri.existingData.help")); + // must check that sample category model is compatible for pupitri import + // means need some categories - int answer = JOptionPane.showConfirmDialog(getContext().getActionUI(), - htmlMessage, - _("tutti.editSpeciesBatch.action.importPupitri.existingData.title"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.WARNING_MESSAGE); + TuttiEnumerationFile enumerationFile = persistenceService.getEnumerationFile(); + SampleCategoryModel sampleCategoryModel = getDataContext().getSampleCategoryModel(); - result = answer == JOptionPane.OK_OPTION; + List<String> missingCategories = Lists.newArrayList(); + if (!sampleCategoryModel.containsCategoryId(enumerationFile.PMFM_ID_SIZE_CATEGORY)) { + missingCategories.add("<li>" + persistenceService.getSizeCategoryCaracteristic().getParameterName() + "</li>"); } + if (!sampleCategoryModel.containsCategoryId(enumerationFile.PMFM_ID_SEX)) { + missingCategories.add("<li>" + persistenceService.getSexCaracteristic().getParameterName() + "</li>"); + } + if (!missingCategories.isEmpty()) { + result = false; + JOptionPane.showMessageDialog( + getContext().getActionUI(), + _("tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.message", Joiner.on("").join(missingCategories)), + _("tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.title"), + JOptionPane.ERROR_MESSAGE, + UIManager.getIcon("error") + ); + } + if (result) { + currentProtocol = getDataContext().getProtocol(); + SpeciesBatchUIModel speciesBatchUIModel = getUI().getModel(); + if (speciesBatchUIModel.getRowCount() > 0) { + String htmlMessage = String.format( + AbstractTuttiUIHandler.CONFIRMATION_FORMAT, + _("tutti.editSpeciesBatch.action.importPupitri.existingData.message"), + _("tutti.editSpeciesBatch.action.importPupitri.existingData.help")); + + int answer = JOptionPane.showConfirmDialog(getContext().getActionUI(), + htmlMessage, + _("tutti.editSpeciesBatch.action.importPupitri.existingData.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.WARNING_MESSAGE); + + result = answer == JOptionPane.OK_OPTION; + } + } + if (result) { importPupitriDialog.open(); importedTrunkFile = importPupitriDialog.getTrunkFile().getSelectedFile(); 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-07-27 13:48:21 UTC (rev 1158) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-07-27 14:13:54 UTC (rev 1159) @@ -809,6 +809,10 @@ tutti.editSampleCategoryModel.action.save= tutti.editSampleCategoryModel.action.save.mnemonic= tutti.editSampleCategoryModel.action.save.tip= +tutti.editSampleCategoryModel.passwordDialog.error.message= +tutti.editSampleCategoryModel.passwordDialog.error.title= +tutti.editSampleCategoryModel.passwordDialog.message= +tutti.editSampleCategoryModel.passwordDialog.title= tutti.editSampleCategoryModel.table.header.caracteristic= tutti.editSampleCategoryModel.table.header.caracteristic.tip= tutti.editSampleCategoryModel.table.header.label= @@ -839,6 +843,8 @@ tutti.editSpeciesBatch.action.importPupitri.existingData.help= tutti.editSpeciesBatch.action.importPupitri.existingData.message= tutti.editSpeciesBatch.action.importPupitri.existingData.title= +tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.message= +tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.title= tutti.editSpeciesBatch.action.importPupitri.mnemonic= tutti.editSpeciesBatch.action.importPupitri.success= tutti.editSpeciesBatch.action.importPupitri.tip= 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-07-27 13:48:21 UTC (rev 1158) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-07-27 14:13:54 UTC (rev 1159) @@ -121,11 +121,6 @@ tutti.config.option.update.url.description=URL de mise à jour tutti.config.option.weights.rate.difference.totalAndSorted.description=Pourcentage de différence entre les Poids totaux VRAC triés et les poids totaux VRAC en dessous duquel on demande confirmation sur la saisie tutti.config.parse.error=Erreur de parsing du fichier de configuration -tutti.config.sampleCategoryModel.passwordDialog.error.message=Le mot de passe que vous avez entré est incorrect -tutti.config.sampleCategoryModel.passwordDialog.error.title=Mot de passe incorrect -tutti.config.sampleCategoryModel.passwordDialog.message=Vous souhaitez entrer dans une partie sensible de l'application -tutti.config.sampleCategoryModel.passwordDialog.title=Zone sensible -tutti.config.sampleCategoryModel.title= tutti.config.sampleOrder.title=Catégorie d'échantillonnage tutti.config.save.error=Erreur lors de la sauvegarde de la configuration dans le fichier %s tutti.config.title=Configuration @@ -806,6 +801,10 @@ tutti.editSampleCategoryModel.action.save=Enregistrer tutti.editSampleCategoryModel.action.save.mnemonic=E tutti.editSampleCategoryModel.action.save.tip=Enregistrer les modifications +tutti.editSampleCategoryModel.passwordDialog.error.message=Le mot de passe que vous avez entré est incorrect +tutti.editSampleCategoryModel.passwordDialog.error.title=Mot de passe incorrect +tutti.editSampleCategoryModel.passwordDialog.message=Vous souhaitez entrer dans une partie sensible de l'application +tutti.editSampleCategoryModel.passwordDialog.title=Zone sensible tutti.editSampleCategoryModel.table.header.caracteristic=Caractéristique tutti.editSampleCategoryModel.table.header.caracteristic.tip=Caractéristique de la catégorie tutti.editSampleCategoryModel.table.header.label=Label @@ -836,6 +835,8 @@ tutti.editSpeciesBatch.action.importPupitri.existingData.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas importer les données Pupitri et conserver les espèces saisies</li><li><strong>OK</strong> pour supprimer les espèces existantes et les remplacer par les données de Pupitri</li></ul> tutti.editSpeciesBatch.action.importPupitri.existingData.message=Des espèces ont déjà été saisies dans la capture. Si vous continuez, elles vont être écrasées. tutti.editSpeciesBatch.action.importPupitri.existingData.title=Données existantes +tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.message=<html><body>Le modèle de catégorisation n'est pas compatible pour un import pupitri.<br> Il manque les catégories suivantes \: <ul>%s</ul><hr/>Veuillez ajouter cette catégorie dans la configuration de catégorisation (menu administration).</body></html> +tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.title=Modèle de catégorisation non compatible tutti.editSpeciesBatch.action.importPupitri.mnemonic=I tutti.editSpeciesBatch.action.importPupitri.success=Import Pupitri réussi \: %1s espèces importées, %2s espèces rejetées tutti.editSpeciesBatch.action.importPupitri.tip=Import Pupitri @@ -1155,11 +1156,6 @@ tutti.multiPostImportLog.totalWeight=Poids total \: %s kg tutti.property.get.error=Propriété %1s non trouvée sur l'objet de type %2s tutti.property.set.error=Propriété %1s non trouvée sur l'objet de type %2s -tutti.sampleCategoryModel.passwordDialog.error.message= -tutti.sampleCategoryModel.passwordDialog.error.title= -tutti.sampleCategoryModel.passwordDialog.message= -tutti.sampleCategoryModel.passwordDialog.title= -tutti.sampleOrder.caracteristicNotFound=La caractéristique d'id %s n'est pas prévue pour l’échantillonnage tutti.selectBenthos.title=Choisissez une espèce du benthos tutti.selectCruise.action.chooseCruiseExportFile=Exporter tutti.selectCruise.action.chooseProgramExportFile=Exporter
participants (1)
-
tchemit@users.forge.codelutin.com