This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 06c10a2a35777c6ea4044ed65e9a7dc6acadbe49 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 4 17:07:56 2015 +0100 fixes #6725 [IMPORT GENERIQUE] Ajouter un export du modèle de catégorisation --- .../genericformat/GenericFormatExportService.java | 32 +++++++++ .../filtered-resources/tutti-help-fr.properties | 3 +- .../src/main/help/fr/editSampleCategory.html | 2 + .../content/category/EditSampleCategoryModelUI.css | 12 +++- .../category/EditSampleCategoryModelUI.jaxx | 1 + .../actions/ExportSampleCategoryModelAction.java | 78 ++++++++++++++++++++++ .../actions}/SaveSampleCategoryModelAction.java | 3 +- .../resources/i18n/tutti-ui-swing_en_GB.properties | 6 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 6 ++ 9 files changed, 140 insertions(+), 3 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java index 3f60ddc..7a08184 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportService.java @@ -74,6 +74,8 @@ import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; @@ -281,6 +283,36 @@ public class GenericFormatExportService extends GenericFormatServiceSupport { } + /** + * Export the sample category model as a csv file used for generic format import-export. + * + * @param exportFile where to export sample category model + * @since 3.14 + */ + public void exportSampleCategoryModel(File exportFile) { + + ProgressionModel progressionModel = new ProgressionModel(); + progressionModel.setTotal(1000); + + GenericFormatArchive genericFormatArchive = GenericFormatArchive.forExport(null, context.getConfig().getTmpDirectory()); + + try (GenericFormatExportContext exportContext = createExportContext(progressionModel, genericFormatArchive)) { + + SampleCategoryModel sampleCategoryModel = exportContext.getSampleCategoryModel(); + exportSampleCategoryModel(exportContext, sampleCategoryModel); + + } catch (IOException e) { + throw new ApplicationTechnicalException("Could not export sample category model", e); + } + + try { + Files.copy(genericFormatArchive.getSampleCategoryModelPath(), exportFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + throw new ApplicationTechnicalException("Could not copy csv file to export file", e); + } + + } + protected GenericFormatExportContext createExportContext(ProgressionModel progressionModel, GenericFormatArchive genericFormatArchive) { return new GenericFormatExportContext(progressionModel, diff --git a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties index 4de27c2..d7f08d5 100644 --- a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties +++ b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties @@ -1,5 +1,5 @@ #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Wed Feb 25 09:28:15 CET 2015 +#Wed Mar 04 17:01:08 CET 2015 tutti.config.help=config.html tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions @@ -254,6 +254,7 @@ tutti.editProtocol.help=editProtocol.html tutti.editProtocol.pane.caracteristic.help=editProtocol.html\#fieldsCaracteristics tutti.editSampleCategoryModel.action.cancel.help=editSampleCategory.html\#actions tutti.editSampleCategoryModel.action.close.help=editSampleCategory.html\#actions +tutti.editSampleCategoryModel.action.export.help=editSampleCategory.html\#actions tutti.editSampleCategoryModel.action.moveDownEntry.help=editSampleCategory.html\#actions tutti.editSampleCategoryModel.action.moveUpEntry.help=editSampleCategory.html\#actions tutti.editSampleCategoryModel.action.removeEntry.help=editSampleCategory.html\#actions diff --git a/tutti-ui-swing/src/main/help/fr/editSampleCategory.html b/tutti-ui-swing/src/main/help/fr/editSampleCategory.html index 56a6093..b5310ae 100644 --- a/tutti-ui-swing/src/main/help/fr/editSampleCategory.html +++ b/tutti-ui-swing/src/main/help/fr/editSampleCategory.html @@ -67,6 +67,8 @@ <dd>ferme la fenêtre active.</dd> <dt>Enregistrer</dt> <dd>enregistre les modifications.</dd> + <dt>Exporter</dt> + <dd>exporter les catégories au format csv (utilisé dans un import au format générique).</dd> </dl> Pour supprimer une ligne du tableau : sélectionner la ligne + clique droit + [Supprimer]<br>Pour diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.css index 09cbd55..680fa00 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.css @@ -87,6 +87,16 @@ BeanFilterableComboBox { toolTipText: "tutti.editSampleCategoryModel.action.save.tip"; i18nMnemonic: "tutti.editSampleCategoryModel.action.save.mnemonic"; enabled: {model.isModify() && model.isValid()}; - _applicationAction: {fr.ifremer.tutti.ui.swing.action.SaveSampleCategoryModelAction.class}; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.category.actions.SaveSampleCategoryModelAction.class}; _help: {"tutti.editSampleCategoryModel.action.save.help"}; } + +#exportButton { + actionIcon: export; + text: "tutti.editSampleCategoryModel.action.export"; + toolTipText: "tutti.editSampleCategoryModel.action.export.tip"; + i18nMnemonic: "tutti.editSampleCategoryModel.action.export.mnemonic"; + enabled: {!model.isModify() && model.isValid()}; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.category.actions.ExportSampleCategoryModelAction.class}; + _help: {"tutti.editSampleCategoryModel.action.export.help"}; +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.jaxx index 4cb0d4e..7a94605 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUI.jaxx @@ -91,6 +91,7 @@ public EditSampleCategoryModelUI(TuttiUI parentUI) { <JPanel layout='{new GridLayout(1, 0)}'> <JButton id='closeButton'/> <JButton id='saveButton'/> + <JButton id='exportButton'/> </JPanel> </cell> </row> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/actions/ExportSampleCategoryModelAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/actions/ExportSampleCategoryModelAction.java new file mode 100644 index 0000000..b665fb5 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/actions/ExportSampleCategoryModelAction.java @@ -0,0 +1,78 @@ +package fr.ifremer.tutti.ui.swing.content.category.actions; + +import com.google.common.base.Preconditions; +import fr.ifremer.tutti.service.genericformat.GenericFormatExportService; +import fr.ifremer.tutti.ui.swing.action.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.action.ExportExistingTemporaryGearAction; +import fr.ifremer.tutti.ui.swing.content.category.EditSampleCategoryModelUI; +import fr.ifremer.tutti.ui.swing.content.category.EditSampleCategoryModelUIHandler; +import fr.ifremer.tutti.ui.swing.content.category.EditSampleCategoryModelUIModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.File; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 3/4/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +public class ExportSampleCategoryModelAction extends AbstractTuttiAction<EditSampleCategoryModelUIModel, EditSampleCategoryModelUI, EditSampleCategoryModelUIHandler> { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ExportExistingTemporaryGearAction.class); + + private File file; + + public ExportSampleCategoryModelAction(EditSampleCategoryModelUIHandler handler) { + super(handler, true); + } + + @Override + public boolean prepareAction() throws Exception { + + boolean doAction = super.prepareAction(); + + if (doAction) { + + // choose file to export + file = saveFile( + "sampleCategory", + "csv", + t("tutti.exportSampleCategoryModel.title.choose.exportSampleCategoryModelFile"), + t("tutti.exportSampleCategoryModel.action.chooseSampleCategoryModelFile.export"), + "^.*\\.csv", t("tutti.common.file.csv")); + doAction = file != null; + } + return doAction; + + } + + @Override + public void releaseAction() { + file = null; + super.releaseAction(); + } + + @Override + public void doAction() throws Exception { + Preconditions.checkNotNull(file); + if (log.isInfoEnabled()) { + log.info("Will export sample category model to file: " + file); + } + + GenericFormatExportService service = getContext().getGenericFormatExportService(); + service.exportSampleCategoryModel(file); + + } + + @Override + public void postSuccessAction() { + super.postSuccessAction(); + sendMessage(t("tutti.exportSampleCategoryModel.action.export.success", file)); + } +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveSampleCategoryModelAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/actions/SaveSampleCategoryModelAction.java similarity index 94% rename from tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveSampleCategoryModelAction.java rename to tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/actions/SaveSampleCategoryModelAction.java index 3a71477..5724abf 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveSampleCategoryModelAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/actions/SaveSampleCategoryModelAction.java @@ -1,4 +1,4 @@ -package fr.ifremer.tutti.ui.swing.action; +package fr.ifremer.tutti.ui.swing.content.category.actions; /* * #%L @@ -23,6 +23,7 @@ package fr.ifremer.tutti.ui.swing.action; */ import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; +import fr.ifremer.tutti.ui.swing.action.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.content.category.EditSampleCategoryModelUI; import fr.ifremer.tutti.ui.swing.content.category.EditSampleCategoryModelUIHandler; import fr.ifremer.tutti.ui.swing.content.category.EditSampleCategoryModelUIModel; diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 2a580bd..cb0a0bd 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1065,6 +1065,9 @@ tutti.editProtocol.warn.import= tutti.editSampleCategoryModel.action.close= tutti.editSampleCategoryModel.action.close.mnemonic= tutti.editSampleCategoryModel.action.close.tip= +tutti.editSampleCategoryModel.action.export= +tutti.editSampleCategoryModel.action.export.mnemonic= +tutti.editSampleCategoryModel.action.export.tip= tutti.editSampleCategoryModel.action.moveDownEntry= tutti.editSampleCategoryModel.action.moveDownEntry.mnemonic= tutti.editSampleCategoryModel.action.moveDownEntry.tip= @@ -1353,6 +1356,9 @@ tutti.exportProgram.action.computeNbSteps= tutti.exportProgram.action.exportErrors= tutti.exportProgram.action.success= tutti.exportProtocol.action.success= +tutti.exportSampleCategoryModel.action.chooseSampleCategoryModelFile.export= +tutti.exportSampleCategoryModel.action.export.success= +tutti.exportSampleCategoryModel.title.choose.exportSampleCategoryModelFile= tutti.fishingOperations.action.deleteFishingOperation.mnemonic= tutti.fishingOperations.action.deleteFishingOperation.tip= tutti.fishingOperations.action.newFishingOperation.mnemonic= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 02769a6..3fdf7d3 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1035,6 +1035,9 @@ tutti.editProtocol.warn.import=Le protocole que vous venez d'importer ne sera sa tutti.editSampleCategoryModel.action.close=Fermer tutti.editSampleCategoryModel.action.close.mnemonic=F tutti.editSampleCategoryModel.action.close.tip=Fermer l'édition des catégories +tutti.editSampleCategoryModel.action.export=Exporter +tutti.editSampleCategoryModel.action.export.mnemonic=E +tutti.editSampleCategoryModel.action.export.tip=Exporter les catégories au format csv (utilisé dans l'import générique) tutti.editSampleCategoryModel.action.moveDownEntry=Descendre tutti.editSampleCategoryModel.action.moveDownEntry.mnemonic=D tutti.editSampleCategoryModel.action.moveDownEntry.tip=Descendre l'entrée sélectionnée @@ -1297,6 +1300,9 @@ tutti.exportProgram.action.computeNbSteps=Calcul du nombre d'opérations à réa tutti.exportProgram.action.exportErrors=Des erreurs sont apparues pendant l'élévation des poids d'une campagne de la série <strong>%s</strong>.<br/>L'export a cependant été réalisé.<hr/>Erreur(s) rencontrée(s) \: <br/>%s tutti.exportProgram.action.success=La série de campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>. tutti.exportProtocol.action.success=Protocole [%1s] exporté dans le fichier <strong>%2s</strong>. +tutti.exportSampleCategoryModel.action.chooseSampleCategoryModelFile.export=Exporter +tutti.exportSampleCategoryModel.action.export.success=L'export effectué dans le fichier <strong>%s</strong>. +tutti.exportSampleCategoryModel.title.choose.exportSampleCategoryModelFile=Exporter le modèle de catégorisation tutti.fishingOperations.action.deleteFishingOperation.mnemonic=S tutti.fishingOperations.action.deleteFishingOperation.tip=Supprimer l'opération de pêche sélectionnée tutti.fishingOperations.action.newFishingOperation.mnemonic=N -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.