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 98fc416b778536a44693ccc186cfb163ca9bd61e Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Mar 14 15:59:16 2016 +0100 Import/export au niveau d'un lot (See #8119) --- .../catches/multipost/MultiPostImportService.java | 5 +- .../resources/i18n/tutti-service_en_GB.properties | 1 + .../resources/i18n/tutti-service_fr_FR.properties | 1 + .../filtered-resources/tutti-help-fr.properties | 31 ++----- .../content/operation/catches/EditCatchesUI.jcss | 4 + .../operation/catches/EditCatchesUIHandler.java | 3 +- .../actions/ImportMultiPostActionSupport.java | 2 +- .../catches/species/SpeciesBatchRowModel.java | 22 ++++- .../frequency/SpeciesFrequencyCellComponent.java | 2 +- .../species/frequency/SpeciesFrequencyUI.jaxx | 17 ++++ .../species/frequency/SpeciesFrequencyUI.jcss | 88 ++++++++++++++++++++ .../frequency/SpeciesFrequencyUIHandler.java | 11 ++- .../actions/ExportMultiPostSpeciesFullAction.java | 80 ++++++++++++++++++ ...xportMultiPostSpeciesOnlyFrequenciesAction.java | 80 ++++++++++++++++++ ...ostSpeciesOnlyIndividualObservationsAction.java | 80 ++++++++++++++++++ .../actions/ImportMultiPostSpeciesFullAction.java | 76 +++++++++++++++++ ...mportMultiPostSpeciesOnlyFrequenciesAction.java | 76 +++++++++++++++++ ...ostSpeciesOnlyIndividualObservationsAction.java | 76 +++++++++++++++++ .../ImportMultiPostSpeciesSupportAction.java | 97 ++++++++++++++++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 39 +++++++++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 43 +++++++++- 21 files changed, 796 insertions(+), 38 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java index 499ed46..a2402b3 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java @@ -1370,11 +1370,12 @@ public class MultiPostImportService extends AbstractTuttiService implements Mult FishingOperation operation = importContext.getOperation(); - Integer speciesOrBenthosBatchId = speciesOfBenthosBatch.getSpecies().getIdAsInt(); + Integer requiredSpeciesId = speciesOfBenthosBatch.getSpecies().getIdAsInt(); + Integer speciesOrBenthosBatchId = speciesOfBenthosBatch.getIdAsInt(); for (IndividualObservationRow row : importer) { - if (!speciesOrBenthosBatchId.equals(row.getSpecies().getIdAsInt())) { + if (!requiredSpeciesId.equals(row.getSpecies().getIdAsInt())) { // Bad species, import fail Decorator<Species> fishingOperationDecorator = context.getService(DecoratorService.class).getDecoratorByType(Species.class); diff --git a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties index 0d885b8..5d79d71 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties @@ -280,6 +280,7 @@ tutti.service.multipost.import.frequencies.error= tutti.service.multipost.import.operation.error= tutti.service.multipost.import.weights.error= tutti.service.multipost.import.wrongOperation.error= +tutti.service.multipost.import.wrongSpecies.error= tutti.service.multipost.uncompress.error= tutti.service.operations.cleanWeights.benthos.batch= tutti.service.operations.cleanWeights.error.redundant.frequencyWeight= diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index 0af8d17..c064cbe 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -242,6 +242,7 @@ tutti.service.multipost.import.frequencies.error=Erreur lors de l'import des men tutti.service.multipost.import.operation.error=Erreur lors de l'import des données du trait tutti.service.multipost.import.weights.error=Erreur lors de l'import des poids tutti.service.multipost.import.wrongOperation.error=Opération est impossible<hr/>Les lots que vous essayez d'importer proviennent d'un autre trait \:<br/>%s +tutti.service.multipost.import.wrongSpecies.error=Espèce impossible<hr/>Les lots que vous essayez d'importer proviennent d'un autre lot \:<br/>%s tutti.service.multipost.uncompress.error=Erreur lors de la décompression de l'archive %s tutti.service.operations.cleanWeights.benthos.batch=Lot benthos tutti.service.operations.cleanWeights.error.redundant.frequencyWeight=Le poids (%s%s) du <strong>sous-échantillon</strong> vaut la somme des poids des <strong>échantillons mesurés</strong> 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 fbdf670..99c8e15 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,28 +1,5 @@ -### -# #%L -# Tutti :: UI -# $Id:$ -# $HeadURL:$ -# %% -# Copyright (C) 2012 - 2016 Ifremer -# %% -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with this program. If not, see -# <http://www.gnu.org/licenses/gpl-3.0.html>. -# #L% -### #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Wed Mar 09 16:42:42 CET 2016 +#Mon Mar 14 08:39:04 CET 2016 tutti.config.help=config.html tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions @@ -329,7 +306,13 @@ tutti.editSpeciesBatch.help=editFishingOperation.html\#captureEspeces tutti.editSpeciesBatch.sortSpeciesBatch.help=editFishingOperation.html\#captureEspecesFields tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.help=editFishingOperation.html\#captureEspecesMensurationActions tutti.editSpeciesFrequencies.action.cancel.help=editFishingOperation.html\#captureEspecesMensurationActions +tutti.editSpeciesFrequencies.action.exportMultiPostFull.help= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.help= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.help= tutti.editSpeciesFrequencies.action.generate.help=editFishingOperation.html\#captureEspecesMensurationActions +tutti.editSpeciesFrequencies.action.importMultiPostFull.help= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.help= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.help= tutti.editSpeciesFrequencies.action.removeObservation.help= tutti.editSpeciesFrequencies.action.reset.help=editFishingOperation.html\#captureEspecesMensurationActions tutti.editSpeciesFrequencies.action.saveAndClose.help=editFishingOperation.html\#captureEspecesMensurationActions diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss index 5551975..a0113b2 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss @@ -84,6 +84,10 @@ ComputableDataEditor { rightDecoration: {accidentalTabContent.getAccidentalBatchTabToolBar()}; } +#speciesTabFrequencyEditorReminderLabel { + rightDecoration: {speciesTabFrequencyEditor.getSpeciesFrequencyTabToolBar()}; +} + #speciesTabPanel { layout:{speciesTabPanelLayout}; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java index 3b5a1de..e251162 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java @@ -52,6 +52,7 @@ import javax.swing.JTabbedPane; import javax.swing.table.TableColumn; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.Optional; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -459,7 +460,7 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), "", false); - frequencyEditor.getHandler().editBatch(editor, frequenciesTitle); + frequencyEditor.getHandler().editBatch(editor, Optional.of(frequenciesTitle)); // open frequency editor setSpeciesSelectedCard(EditCatchesUIHandler.EDIT_FREQUENCY_CARD); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ImportMultiPostActionSupport.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ImportMultiPostActionSupport.java index 2eb4683..2b35acb 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ImportMultiPostActionSupport.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ImportMultiPostActionSupport.java @@ -220,7 +220,7 @@ public abstract class ImportMultiPostActionSupport<M extends AbstractBean, UI ex } @Override - public final void postSuccessAction() { + public void postSuccessAction() { super.postSuccessAction(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java index e5df709..618a24c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java @@ -206,14 +206,30 @@ public class SpeciesBatchRowModel extends AbstractTuttiBeanUIModel<SpeciesBatch, fromEntity(aBatch); - List<SpeciesFrequencyRowModel> frequencyRows = - SpeciesFrequencyRowModel.fromEntity(weightUnit, frequencies); + loadFrequencies(frequencies); + + loadIndividualObservations(observationWeightUnit, defautObservationCaracteristic, individualObservations); + + } + + public void loadFrequencies(List<SpeciesBatchFrequency> frequencies) { + + List<SpeciesFrequencyRowModel> frequencyRows = SpeciesFrequencyRowModel.fromEntity(weightUnit, frequencies); + frequency.clear(); frequency.addAll(frequencyRows); Collections.sort(frequency); + } + + public void loadIndividualObservations(WeightUnit observationWeightUnit, + List<Caracteristic> defautObservationCaracteristic, + List<IndividualObservationBatch> individualObservations) { + List<IndividualObservationBatchRowModel> obsRows = IndividualObservationBatchRowModel.fromEntity(observationWeightUnit, defautObservationCaracteristic, individualObservations); + individualObservation.clear(); individualObservation.addAll(obsRows); + } //------------------------------------------------------------------------// @@ -513,7 +529,7 @@ public class SpeciesBatchRowModel extends AbstractTuttiBeanUIModel<SpeciesBatch, SampleCategory<?> sampleCategory = getSampleCategoryById(sampleCategoryId); JavaBeanObjectUtil.setProperty(sampleCategory, - SampleCategory.PROPERTY_CATEGORY_VALUE, value); + SampleCategory.PROPERTY_CATEGORY_VALUE, value); firePropertyChange(PROPERTY_SAMPLE_CATEGORY_VALUE, null, sampleCategory); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java index 504a284..04ac9f2 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java @@ -276,7 +276,7 @@ public class SpeciesFrequencyCellComponent extends DefaultTableCellRenderer { // set the weigth editRow.setWeight(frequencyModel.getTotalWeight()); - // DO THIS BEFORE SETTING THE FREQUENCIES AS THE FREAQUENCIES MODIFICATIONS TRIGGERS THE SAVE + // DO THIS BEFORE SETTING THE FREQUENCIES AS THE FREQUENCIES MODIFICATIONS TRIGGERS THE SAVE // set individual observations to the incoming batch editRow.setIndividualObservation(individualObservation); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx index 3b859b5..d43e850 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx @@ -86,6 +86,23 @@ public SpeciesFrequencyUI(TuttiUI parentUI) { <SaveAndCloseSpeciesFrequencyAction id="saveAndCloseAction" constructorParams="this"/> <SaveAndContinueSpeciesFrequencyAction id="saveAndContinueAction" constructorParams="this"/> + <JToolBar id='speciesFrequencyTabToolBar'> + <JMenuBar id='menu'> + <JMenu id='menuAction'> + <JMenu id='menuImportMultiPost'> + <JMenuItem id='importMultiPostFullButton'/> + <JMenuItem id='importMultiPostOnlyFrequenciesButton'/> + <JMenuItem id='importMultiPostOnlyIndividualObservationsButton'/> + </JMenu> + <JMenu id='menuExportMultiPost'> + <JMenuItem id='exportMultiPostFullButton'/> + <JMenuItem id='exportMultiPostOnlyFrequenciesButton'/> + <JMenuItem id='exportMultiPostOnlyIndividualObservationsButton'/> + </JMenu> + </JMenu> + </JMenuBar> + </JToolBar> + <JPopupMenu id='obsTablePopup'> <JMenuItem id='deleteObsRowsMenu'/> </JPopupMenu> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss index bdf350f..bb9b5a0 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss @@ -46,6 +46,94 @@ ComputableDataEditor { visible: {!model.isSimpleCountingMode()}; } +#speciesFrequencyTabToolBar { + floatable: false; + opaque: true; + borderPainted: false; +} + +#menu { + border:{null}; + background:{javax.swing.UIManager.getColor("MenuBar.background")}; +} + +#menuAction { + opaque: true; + text: "tutti.toolbar.menu.action"; + toolTipText: "tutti.toolbar.menu.action.tip"; + i18nMnemonic: "tutti.toolbar.menu.action.mnemonic"; +} + +#menuImportMultiPost { + opaque: true; + actionIcon: import; + text: "tutti.toolbar.menuImportMultiPost.action"; + toolTipText: "tutti.toolbar.menuImportMultiPost.action.tip"; + i18nMnemonic: "tutti.toolbar.menuImportMultiPost.action.mnemonic"; +} + +#menuExportMultiPost { + opaque: true; + actionIcon: export; + text: "tutti.toolbar.menuExportMultiPost.action"; + toolTipText: "tutti.toolbar.menuExportMultiPost.action.tip"; + i18nMnemonic: "tutti.toolbar.menuExportMultiPost.action.mnemonic"; +} + +#importMultiPostFullButton { + actionIcon: import; + text: "tutti.editSpeciesFrequencies.action.importMultiPostFull"; + toolTipText: "tutti.editSpeciesFrequencies.action.importMultiPostFull.tip"; + i18nMnemonic: "tutti.editSpeciesFrequencies.action.importMultiPostFull.mnemonic"; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ImportMultiPostSpeciesFullAction.class}; + _help: {"tutti.editSpeciesFrequencies.action.importMultiPostFull.help"}; +} + +#importMultiPostOnlyFrequenciesButton { + actionIcon: import; + text: "tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies"; + toolTipText: "tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.tip"; + i18nMnemonic: "tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.mnemonic"; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ImportMultiPostSpeciesOnlyFrequenciesAction.class}; + _help: {"tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.help"}; +} + +#importMultiPostOnlyIndividualObservationsButton { + actionIcon: import; + text: "tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations"; + toolTipText: "tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.tip"; + i18nMnemonic: "tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.mnemonic"; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ImportMultiPostSpeciesOnlyIndividualObservationsAction.class}; + _help: {"tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.help"}; +} + +#exportMultiPostFullButton { + actionIcon: export; + text: "tutti.editSpeciesFrequencies.action.exportMultiPostFull"; + toolTipText: "tutti.editSpeciesFrequencies.action.exportMultiPostFull.tip"; + i18nMnemonic: "tutti.editSpeciesFrequencies.action.exportMultiPostFull.mnemonic"; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ExportMultiPostSpeciesFullAction.class}; + _help: {"tutti.editSpeciesFrequencies.action.exportMultiPostFull.help"}; +} + +#exportMultiPostOnlyFrequenciesButton { + actionIcon: export; + text: "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies"; + toolTipText: "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.tip"; + i18nMnemonic: "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.mnemonic"; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ExportMultiPostSpeciesOnlyFrequenciesAction.class}; + _help: {"tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.help"}; +} + +#exportMultiPostOnlyIndividualObservationsButton { + actionIcon: export; + text: "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations"; + toolTipText: "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.tip"; + i18nMnemonic: "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.mnemonic"; + _applicationAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ExportMultiPostSpeciesOnlyIndividualObservationsAction.class}; + _help: {"tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.help"}; +} + #editSpeciesFrequenciesTopPanel { _help: {"tutti.editSpeciesFrequencies.help"}; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java index 5744459..183e2f9 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java @@ -660,7 +660,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } } - public void editBatch(FrequencyCellEditor editor, String title) { + public void editBatch(FrequencyCellEditor editor, Optional<String> optionalTitle) { // on enlève la colonne spécifique à l'espèce précédente if (maturityColumnId.isPresent()) { @@ -672,8 +672,13 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci FrequencyConfigurationMode mode = FrequencyConfigurationMode.FREQUENCIES; FrequencyConfigurationMode frequenciesMode = FrequencyConfigurationMode.AUTO_GEN; - frequenciesHistogramPopup.setTitle(title + t("tutti.editSpeciesFrequencies.title")); - averageWeightsHistogramPopup.setTitle(title + weightUnit.decorateLabel(t("tutti.editSpeciesFrequencies.field.graphAverageWeight"))); + if (optionalTitle.isPresent()) { + + String title = optionalTitle.get(); + frequenciesHistogramPopup.setTitle(title + t("tutti.editSpeciesFrequencies.title")); + averageWeightsHistogramPopup.setTitle(title + weightUnit.decorateLabel(t("tutti.editSpeciesFrequencies.field.graphAverageWeight"))); + + } SpeciesBatchRowModel speciesBatch = editor.getEditRow(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesFullAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesFullAction.java new file mode 100644 index 0000000..0feb0bd --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesFullAction.java @@ -0,0 +1,80 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; +import fr.ifremer.tutti.service.catches.multipost.MultiPostExportService; +import fr.ifremer.tutti.ui.swing.content.operation.catches.actions.ExportMultiPostActionSupport; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; + +import java.io.File; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 4.5 + */ +public class ExportMultiPostSpeciesFullAction extends ExportMultiPostActionSupport<SpeciesFrequencyUIModel, SpeciesFrequencyUI, SpeciesFrequencyUIHandler> { + + public ExportMultiPostSpeciesFullAction(SpeciesFrequencyUIHandler handler) { + super(handler); + } + + @Override + protected String getFileExtension() { + return "tuttiSpeciesBatchFull"; + } + + @Override + protected String getFileExtensionDescription() { + return t("tutti.common.file.tuttiSpeciesBatchFull"); + } + + @Override + protected String getFileChooserTitle() { + return t("tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.title"); + } + + @Override + protected String getFileChooserButton() { + return t("tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.button"); + } + + @Override + protected String getSuccessMessage(File file) { + return t("tutti.editSpeciesFrequency.action.exportMultiPostFull.success", file); + } + + @Override + protected void doExport(MultiPostExportService multiPostImportExportService, File file, FishingOperation fishingOperation) { + + SpeciesBatch speciesBatch = getModel().getBatch().toEntity(); + multiPostImportExportService.exportSpeciesBatch(file, fishingOperation,speciesBatch, true, true); + + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesOnlyFrequenciesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesOnlyFrequenciesAction.java new file mode 100644 index 0000000..0357cae --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesOnlyFrequenciesAction.java @@ -0,0 +1,80 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; +import fr.ifremer.tutti.service.catches.multipost.MultiPostExportService; +import fr.ifremer.tutti.ui.swing.content.operation.catches.actions.ExportMultiPostActionSupport; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; + +import java.io.File; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 4.5 + */ +public class ExportMultiPostSpeciesOnlyFrequenciesAction extends ExportMultiPostActionSupport<SpeciesFrequencyUIModel, SpeciesFrequencyUI, SpeciesFrequencyUIHandler> { + + public ExportMultiPostSpeciesOnlyFrequenciesAction(SpeciesFrequencyUIHandler handler) { + super(handler); + } + + @Override + protected String getFileExtension() { + return "tuttiSpeciesBatchOnlyFrequencies"; + } + + @Override + protected String getFileExtensionDescription() { + return t("tutti.common.file.tuttiSpeciesBatchOnlyFrequencies"); + } + + @Override + protected String getFileChooserTitle() { + return t("tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.title"); + } + + @Override + protected String getFileChooserButton() { + return t("tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.button"); + } + + @Override + protected String getSuccessMessage(File file) { + return t("tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.success", file); + } + + @Override + protected void doExport(MultiPostExportService multiPostImportExportService, File file, FishingOperation fishingOperation) { + + SpeciesBatch speciesBatch = getModel().getBatch().toEntity(); + multiPostImportExportService.exportSpeciesBatch(file, fishingOperation,speciesBatch, true, false); + + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesOnlyIndividualObservationsAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesOnlyIndividualObservationsAction.java new file mode 100644 index 0000000..b951483 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesOnlyIndividualObservationsAction.java @@ -0,0 +1,80 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; +import fr.ifremer.tutti.service.catches.multipost.MultiPostExportService; +import fr.ifremer.tutti.ui.swing.content.operation.catches.actions.ExportMultiPostActionSupport; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; + +import java.io.File; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 4.5 + */ +public class ExportMultiPostSpeciesOnlyIndividualObservationsAction extends ExportMultiPostActionSupport<SpeciesFrequencyUIModel, SpeciesFrequencyUI, SpeciesFrequencyUIHandler> { + + public ExportMultiPostSpeciesOnlyIndividualObservationsAction(SpeciesFrequencyUIHandler handler) { + super(handler); + } + + @Override + protected String getFileExtension() { + return "tuttiSpeciesBatchOnlyIndividualObservations"; + } + + @Override + protected String getFileExtensionDescription() { + return t("tutti.common.file.tuttiSpeciesBatchOnlyIndividualObservations"); + } + + @Override + protected String getFileChooserTitle() { + return t("tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.title"); + } + + @Override + protected String getFileChooserButton() { + return t("tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.button"); + } + + @Override + protected String getSuccessMessage(File file) { + return t("tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.success", file); + } + + @Override + protected void doExport(MultiPostExportService multiPostImportExportService, File file, FishingOperation fishingOperation) { + + SpeciesBatch speciesBatch = getModel().getBatch().toEntity(); + multiPostImportExportService.exportSpeciesBatch(file, fishingOperation,speciesBatch, false, true); + + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesFullAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesFullAction.java new file mode 100644 index 0000000..7603b0b --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesFullAction.java @@ -0,0 +1,76 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; + +import java.io.File; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 4.5 + */ +public class ImportMultiPostSpeciesFullAction extends ImportMultiPostSpeciesSupportAction { + + public ImportMultiPostSpeciesFullAction(SpeciesFrequencyUIHandler handler) { + super(handler); + } + + @Override + public boolean isImportFrequencies() { + return true; + } + + @Override + public boolean isImportIndivudalObservations() { + return true; + } + + @Override + protected String getFileExtension() { + return "tuttiSpeciesBatchFull"; + } + + @Override + protected String getFileExtensionDescription() { + return t("tutti.common.file.tuttiSpeciesBatchFull"); + } + + @Override + protected String getFileChooserTitle() { + return t("tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.title"); + } + + @Override + protected String getFileChooserButton() { + return t("tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.button"); + } + + @Override + protected String getSuccessMessage(File file) { + return t("tutti.editSpeciesFrequency.action.importMultiPostFull.success", file); + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesOnlyFrequenciesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesOnlyFrequenciesAction.java new file mode 100644 index 0000000..4375e7b --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesOnlyFrequenciesAction.java @@ -0,0 +1,76 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; + +import java.io.File; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 4.5 + */ +public class ImportMultiPostSpeciesOnlyFrequenciesAction extends ImportMultiPostSpeciesSupportAction { + + public ImportMultiPostSpeciesOnlyFrequenciesAction(SpeciesFrequencyUIHandler handler) { + super(handler); + } + + @Override + public boolean isImportFrequencies() { + return true; + } + + @Override + public boolean isImportIndivudalObservations() { + return false; + } + + @Override + protected String getFileExtension() { + return "tuttiSpeciesBatchOnlyFrequencies"; + } + + @Override + protected String getFileExtensionDescription() { + return t("tutti.common.file.tuttiSpeciesBatchOnlyFrequencies"); + } + + @Override + protected String getFileChooserTitle() { + return t("tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.title"); + } + + @Override + protected String getFileChooserButton() { + return t("tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.button"); + } + + @Override + protected String getSuccessMessage(File file) { + return t("tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.success", file); + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesOnlyIndividualObservationsAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesOnlyIndividualObservationsAction.java new file mode 100644 index 0000000..50afb5e --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesOnlyIndividualObservationsAction.java @@ -0,0 +1,76 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; + +import java.io.File; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 4.5 + */ +public class ImportMultiPostSpeciesOnlyIndividualObservationsAction extends ImportMultiPostSpeciesSupportAction { + + public ImportMultiPostSpeciesOnlyIndividualObservationsAction(SpeciesFrequencyUIHandler handler) { + super(handler); + } + + @Override + public boolean isImportFrequencies() { + return false; + } + + @Override + public boolean isImportIndivudalObservations() { + return true; + } + + @Override + protected String getFileExtension() { + return "tuttiSpeciesBatchOnlyIndividualObservations"; + } + + @Override + protected String getFileExtensionDescription() { + return t("tutti.common.file.tuttiSpeciesBatchOnlyIndividualObservations"); + } + + @Override + protected String getFileChooserTitle() { + return t("tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.title"); + } + + @Override + protected String getFileChooserButton() { + return t("tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.button"); + } + + @Override + protected String getSuccessMessage(File file) { + return t("tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.success", file); + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java new file mode 100644 index 0000000..13cbea6 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java @@ -0,0 +1,97 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.catches.multipost.MultiPostImportService; +import fr.ifremer.tutti.ui.swing.content.operation.catches.actions.ImportMultiPostActionSupport; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyCellComponent; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.File; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +/** + * @author Tony Chemit - chemit@codelutin.com + * @since 4.5 + */ +public abstract class ImportMultiPostSpeciesSupportAction extends ImportMultiPostActionSupport<SpeciesFrequencyUIModel, SpeciesFrequencyUI, SpeciesFrequencyUIHandler> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ImportMultiPostSpeciesSupportAction.class); + + protected ImportMultiPostSpeciesSupportAction(SpeciesFrequencyUIHandler handler) { + super(handler); + } + + public abstract boolean isImportFrequencies(); + + public abstract boolean isImportIndivudalObservations(); + + @Override + protected final Map<String, Object> importBatches(MultiPostImportService multiPostImportExportService, File file, FishingOperation operation) { + + SpeciesBatch speciesBatch = getModel().getBatch().toEntity(); + return multiPostImportExportService.importSpeciesBatch(file, operation, speciesBatch, isImportFrequencies(), isImportIndivudalObservations()); + + } + + @Override + public final void postSuccessAction() { + super.postSuccessAction(); + + SpeciesFrequencyCellComponent.FrequencyCellEditor frequencyEditor = getHandler().getFrequencyEditor(); + SpeciesBatchRowModel editRow = frequencyEditor.getEditRow(); + + Integer speciesBatchId = editRow.getIdAsInt(); + PersistenceService persistenceService = getContext().getPersistenceService(); + + List<SpeciesBatchFrequency> frequencies = persistenceService.getAllSpeciesBatchFrequency(speciesBatchId); + if (log.isInfoEnabled()) { + log.info("[SpeciesBatch: " + speciesBatchId + "] Frequencies: " + frequencies.size()); + } + editRow.loadFrequencies(frequencies); + + List<IndividualObservationBatch> individualObservations = persistenceService.getAllIndividualObservationBatchsForBatch(speciesBatchId); + editRow.loadIndividualObservations(getConfig().getIndividualObservationWeightUnit(), + getDataContext().getDefaultIndividualObservationCaracteristics(), + individualObservations); + + if (log.isInfoEnabled()) { + log.info("[SpeciesBatch: " + speciesBatchId + "] Individual Observations: " + individualObservations.size()); + } + getHandler().editBatch(frequencyEditor, Optional.empty()); + + } +} 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 05034cc..15e2788 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 @@ -120,6 +120,9 @@ tutti.common.file.tuttiCatch= tutti.common.file.tuttiIndividualObservation= tutti.common.file.tuttiMarineLitter= tutti.common.file.tuttiSpecies= +tutti.common.file.tuttiSpeciesBatchFull= +tutti.common.file.tuttiSpeciesBatchOnlyFrequencies= +tutti.common.file.tuttiSpeciesBatchOnlyIndividualObservations= tutti.common.file.tuttiSpeciesFull= tutti.common.file.tuttiSpeciesOnlyFrequencies= tutti.common.file.tuttiSpeciesOnlyIndividualObservations= @@ -1480,9 +1483,27 @@ tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.tip= tutti.editSpeciesFrequencies.action.cancel= tutti.editSpeciesFrequencies.action.cancel.mnemonic= tutti.editSpeciesFrequencies.action.cancel.tip= +tutti.editSpeciesFrequencies.action.exportMultiPostFull= +tutti.editSpeciesFrequencies.action.exportMultiPostFull.mnemonic= +tutti.editSpeciesFrequencies.action.exportMultiPostFull.tip= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.mnemonic= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.tip= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.mnemonic= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.tip= tutti.editSpeciesFrequencies.action.generate= tutti.editSpeciesFrequencies.action.generate.mnemonic= tutti.editSpeciesFrequencies.action.generate.tip= +tutti.editSpeciesFrequencies.action.importMultiPostFull= +tutti.editSpeciesFrequencies.action.importMultiPostFull.mnemonic= +tutti.editSpeciesFrequencies.action.importMultiPostFull.tip= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.mnemonic= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.tip= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.mnemonic= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.tip= tutti.editSpeciesFrequencies.action.removeObservation= tutti.editSpeciesFrequencies.action.removeObservation.confirm.message= tutti.editSpeciesFrequencies.action.removeObservation.mnemonic= @@ -1579,6 +1600,24 @@ tutti.editSpeciesFrequencies.table.header.weight= tutti.editSpeciesFrequencies.title= tutti.editSpeciesFrequencies.title.addLengthStepCaracteristic= tutti.editSpeciesFrequencies.unkownStepUnit= +tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.button= +tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.title= +tutti.editSpeciesFrequency.action.exportMultiPostFull.success= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.button= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.title= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.success= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.button= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.title= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.success= +tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.button= +tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.title= +tutti.editSpeciesFrequency.action.importMultiPostFull.success= +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.button= +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.title= +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.success= +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.button= +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.title= +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.success= tutti.error.application.already.started= tutti.error.delete.startActionFile=Could not delete start action file %s tutti.error.read.startActionFile=Could not read start action file content %s 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 5d2675f..f5e2d2c 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 @@ -92,6 +92,9 @@ tutti.common.file.tuttiAccidental=Fichier d'import/export (multi-poste) des lots tutti.common.file.tuttiBenthos=Fichier d'import/export (multi-poste) des lots de benthos tutti.common.file.tuttiCatch=Fichier d'import/export (multi-poste) des poids de capture tutti.common.file.tuttiMarineLitter=Fichier d'import/export (multi-poste) des lots de déchets +tutti.common.file.tuttiSpeciesBatchFull=Fichier d'import/export (multi-poste) des mensurations et observations individuelles d'un lot +tutti.common.file.tuttiSpeciesBatchOnlyFrequencies=Fichier d'import/export (multi-poste) des mensurations d'un lot +tutti.common.file.tuttiSpeciesBatchOnlyIndividualObservations=Fichier d'import/export (multi-poste) des observations individuelles d'un lot tutti.common.file.tuttiSpeciesFull=Fichier d'import/export (multi-poste) des lots d'espèces, mensurations et observations individuelles tutti.common.file.tuttiSpeciesOnlyFrequencies=Fichier d'import/export (multi-poste) des lots d'espèces et mensurations tutti.common.file.tuttiSpeciesOnlyIndividualObservations=Fichier d'import/export (multi-poste) des lots d'espèces et observations individuelles @@ -1238,7 +1241,7 @@ tutti.editSpeciesBatch.action.exportMultiPostFull=Lots d'espèces, mensurations tutti.editSpeciesBatch.action.exportMultiPostFull.destinationFile.button=Exporter tutti.editSpeciesBatch.action.exportMultiPostFull.destinationFile.title=Exporter les lots d'espèces, mensurations et observations individuelles tutti.editSpeciesBatch.action.exportMultiPostFull.mnemonic=F -tutti.editSpeciesBatch.action.exportMultiPostFull.success=Les lots d'espèces ont été exportés dans le fichier %s +tutti.editSpeciesBatch.action.exportMultiPostFull.success=Les lots d'espèces, mensurations et observations individuelles ont été exportés dans le fichier %s tutti.editSpeciesBatch.action.exportMultiPostFull.tip=Exporter les lots d'espèces, mensurations et observations individuelles pour les importer sur le poste maître tutti.editSpeciesBatch.action.exportMultiPostOnlyFrequencies=Les lots d'espèces et mensurations tutti.editSpeciesBatch.action.exportMultiPostOnlyFrequencies.destinationFile.button=Exporter @@ -1261,8 +1264,6 @@ tutti.editSpeciesBatch.action.importBigfin.fatal.fishingOperation.title=Import B tutti.editSpeciesBatch.action.importBigfin.mnemonic=B tutti.editSpeciesBatch.action.importBigfin.success=Import Bigfin réussi \: %1s mensurations importées, %2s mensurations supprimées tutti.editSpeciesBatch.action.importBigfin.tip=Import Bigfin -tutti.editSpeciesBatch.action.importMultiPost.sourceFile.button= -tutti.editSpeciesBatch.action.importMultiPost.success= tutti.editSpeciesBatch.action.importMultiPostFull=Lots d'espèces, mensurations et observations individuelles tutti.editSpeciesBatch.action.importMultiPostFull.mnemonic=F tutti.editSpeciesBatch.action.importMultiPostFull.sourceFile.button=Importer @@ -1383,9 +1384,27 @@ tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.tip=Sélectionner tutti.editSpeciesFrequencies.action.cancel=Annuler tutti.editSpeciesFrequencies.action.cancel.mnemonic=A tutti.editSpeciesFrequencies.action.cancel.tip=Annuler l'édition des mensurations +tutti.editSpeciesFrequencies.action.exportMultiPostFull=Mensurations et observations individuelles +tutti.editSpeciesFrequencies.action.exportMultiPostFull.mnemonic=e +tutti.editSpeciesFrequencies.action.exportMultiPostFull.tip=Exporter les mensurations et observations individuelles du lot pour les importer sur le poste maître +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies=Mensurations +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.mnemonic=M +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.tip=Exporter les mensurations du lot pour les importer sur le poste maître +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations=Observations individuelles +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.mnemonic=O +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.tip=Exporter les observations individuelles du lot pour les importer sur le poste maître tutti.editSpeciesFrequencies.action.generate=Générer tutti.editSpeciesFrequencies.action.generate.mnemonic=G tutti.editSpeciesFrequencies.action.generate.tip=Générer les mensurations +tutti.editSpeciesFrequencies.action.importMultiPostFull=Mensurations et observations individuelles +tutti.editSpeciesFrequencies.action.importMultiPostFull.mnemonic=e +tutti.editSpeciesFrequencies.action.importMultiPostFull.tip=Importer les mensurations et observations individuelles du lot créés sur un poste satellite +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies=Mensurations +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.mnemonic=M +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.tip=Importer les mensurations du lot créés sur un poste satellite +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations=Observations individuelles +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.mnemonic=O +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.tip=Importer les observations individuelles du lot créés sur un poste satellite tutti.editSpeciesFrequencies.action.removeObservation=Supprimer tutti.editSpeciesFrequencies.action.removeObservation.confirm.message=<html>Vous êtes sur le point de supprimer l'observation sélectionnée.<hr/>Êtes-vous sur de vouloir la supprimer ?</html> tutti.editSpeciesFrequencies.action.removeObservation.mnemonic=S @@ -1468,6 +1487,24 @@ tutti.editSpeciesFrequencies.table.header.weight=Poids observé tutti.editSpeciesFrequencies.title=Mensuration tutti.editSpeciesFrequencies.title.addLengthStepCaracteristic=Choisir une autre caractéristique tutti.editSpeciesFrequencies.unkownStepUnit=NA +tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.button=Exporter +tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.title=Exporter les mensurations et observations individuelles +tutti.editSpeciesFrequency.action.exportMultiPostFull.success=Les mensurations et observations individuelles du lot ont été exportés dans le fichier %s +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.button=Exporter +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.title=Exporter les mensurations +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.success=Les mensurations du lot ont été exportés dans le fichier %s +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.button=Exporter +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.title=Exporter les observations individuelles +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.success=Les observations individuelles du lot ont été exportés dans le fichier %s +tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.button=Importer +tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.title=Importer les mensurations et observations individuelles +tutti.editSpeciesFrequency.action.importMultiPostFull.success=Les mensurations et observations individuelles du lot ont été importées depuis le fichier %s +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.button=Importer +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.title=Importer les mensurations +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.success=Les mensurations du lot ont été importées depuis le fichier %s +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.button=Importer +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.title=Importer les observations individuelles +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.success=Les observations individuelles du lot ont été importées depuis le fichier %s tutti.error.application.already.started=<html><body>L'application est déjà démarrée.<br/>Si ce n'était pas le cas, veuillez supprimer le fichier <strong>tutti.lock</strong> présent dans le répertoire de l'outil avant de lancer l'applicatif.</body></html> tutti.error.delete.startActionFile=Impossible de supprimer le fichier %s tutti.error.read.startActionFile=Impossible de lire le contenu du fichier %s -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.