This is an automated email from the git hooks/post-receive script. New commit to branch feature/ecran_obs_individuelles in repository tutti. See http://git.codelutin.com/tutti.git commit f600d0cfe30ce05453a2c9b5ce3e7fab1735f05d Author: Kevin Morin <morin@codelutin.com> Date: Fri Feb 26 14:20:21 2016 +0100 ajout d'une ligne d'observation individuelle quand on ajoute en rafale (refs #8019) --- .../filtered-resources/tutti-help-fr.properties | 3 +- .../species/frequency/SpeciesFrequencyUI.jaxx | 6 ++++ .../species/frequency/SpeciesFrequencyUI.jcss | 6 ++++ .../frequency/SpeciesFrequencyUIHandler.java | 9 +++-- .../species/frequency/SpeciesFrequencyUIModel.java | 39 ++++++++++++++++++++++ .../actions/ApplySpeciesFrequencyRafaleAction.java | 11 ++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 2 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 2 ++ 8 files changed, 75 insertions(+), 3 deletions(-) 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 48514f5..5c19430 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 -#Fri Feb 19 14:49:02 CET 2016 +#Fri Feb 26 11:49:12 CET 2016 tutti.config.help=config.html tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions @@ -303,6 +303,7 @@ tutti.editSpeciesFrequencies.action.generate.help=editFishingOperation.html\#cap tutti.editSpeciesFrequencies.action.reset.help=editFishingOperation.html\#captureEspecesMensurationActions tutti.editSpeciesFrequencies.action.saveAndClose.help=editFishingOperation.html\#captureEspecesMensurationActions tutti.editSpeciesFrequencies.action.saveAndContinue.help=editFishingOperation.html\#captureEspecesMensurationActions +tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.help= tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.help= tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.help= tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.help= 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 1e66155..5031b49 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 @@ -157,6 +157,12 @@ public SpeciesFrequencyUI(TuttiUI parentUI) { <NumberEditor id='rafaleStepField' constructorParams='this'/> </cell> </row> + <row> + <cell weightx='1.0'> + <JCheckBox id='addIndividualObservationCheckBox' + onItemStateChanged='handler.setBoolean(event, "addIndividualObservationOnRafale")'/> + </cell> + </row> </Table> </JPanel> </cell> 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 9cfb3f8..689d824 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 @@ -163,6 +163,12 @@ ComputableDataEditor { _help: {"tutti.editSpeciesFrequencies.field.rafaleStep.help"}; } +#addIndividualObservationCheckBox { + text: "tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale"; + toolTipText: "tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip"; + _help: {"tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.help"}; +} + #lengthStepCaracteristicPanel { border: { BorderFactory.createTitledBorder(null, null) }; } 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 39f75c9..86c936e 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 @@ -410,6 +410,12 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci getTableModel().fireTableDataChanged(); }); + model.addPropertyChangeListener(SpeciesFrequencyUIModel.PROPERTY_INDIVIDUAL_OBSERVATION_ROWS, evt -> { + IndividualObservationBatchTableModel obsTableModel = + (IndividualObservationBatchTableModel) getUI().getObsTable().getModel(); + obsTableModel.setRows((List<IndividualObservationBatchRowModel>) evt.getNewValue()); + }); + // set the pattern to the weight in simple counting mode according to the weight unit ui.getSimpleCountingWeightField().setNumberPattern(weightUnit.getNumberEditorPattern()); @@ -494,6 +500,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci model.setMinStep(null); model.setMaxStep(null); model.setRtp(null); + model.setIndividualObservationRows(new ArrayList<>()); frequencyEditor = editor; @@ -997,8 +1004,6 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci installTableKeyListener(columnModel, obsTable); - tableModel.setRows(new ArrayList<>()); - } // protected void addIdColumnToModel(TableColumnModel model, diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java index 2f73210..b94a76b 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java @@ -30,6 +30,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.FrequencyConfigurationMode; import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.CopyIndividualObservationMode; +import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; @@ -95,6 +96,8 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public static final String PROPERTY_RTP = "rtp"; + public static final String PROPERTY_ADD_INDIVIDUAL_OBSERVATION_ON_RAFALE = "addIndividualObservationOnRafale"; + public static final String PROPERTY_EMPTY_ROWS = "emptyRows"; public static final String PROPERTY_NEXT_EDITABLE_ROW_INDEX = "nextEditableRowIndex"; @@ -103,6 +106,8 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public static final String PROPERTY_COPY_INDIVIDUAL_OBSERVATION_MODE = "copyIndividualObservationMode"; + public static final String PROPERTY_INDIVIDUAL_OBSERVATION_ROWS = "individualObservationRows"; + /** * Fill mode. * @@ -181,6 +186,13 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa protected boolean useRTP; /** + * Add individual observation rows when a lengthstep is added with the rafale mode + * + * @since 4.5 + */ + protected boolean addIndividualObservationOnRafale; + + /** * Number in case of simple counting mode * * @since 1.0 @@ -253,6 +265,13 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa */ protected final List<Caracteristic> defaultCaracteristic; + /** + * Individual observations + * + * @since 4.5 + */ + protected List<IndividualObservationBatchRowModel> individualObservationRows; + public SpeciesFrequencyUIModel(WeightUnit weightUnit, SampleCategoryModel sampleCategoryModel, List<Caracteristic> defaultCaracteristic) { @@ -566,6 +585,16 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa firePropertyChange(PROPERTY_USE_RTP, oldValue, useRTP); } + public boolean isAddIndividualObservationOnRafale() { + return addIndividualObservationOnRafale; + } + + public void setAddIndividualObservationOnRafale(boolean addIndividualObservationOnRafale) { + Object oldValue = isAddIndividualObservationOnRafale(); + this.addIndividualObservationOnRafale = addIndividualObservationOnRafale; + firePropertyChange(PROPERTY_ADD_INDIVIDUAL_OBSERVATION_ON_RAFALE, oldValue, addIndividualObservationOnRafale); + } + public CopyIndividualObservationMode getCopyIndividualObservationMode() { return copyIndividualObservationMode; } @@ -727,6 +756,16 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa return cache.getRowCache(); } + public List<IndividualObservationBatchRowModel> getIndividualObservationRows() { + return individualObservationRows; + } + + public void setIndividualObservationRows(List<IndividualObservationBatchRowModel> individualObservationRows) { + Object oldValue = getIndividualObservationRows(); + this.individualObservationRows = individualObservationRows; + firePropertyChange(PROPERTY_INDIVIDUAL_OBSERVATION_ROWS, oldValue, individualObservationRows); + } + protected final void recomputeRowValidState(SpeciesFrequencyRowModel row) { // recompute row valid state diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java index 48855b0..6fb44fa 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java @@ -25,6 +25,8 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.ac */ import com.google.common.collect.Lists; +import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchTableModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyLogRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyLogsTableModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel; @@ -129,6 +131,15 @@ public class ApplySpeciesFrequencyRafaleAction { newRow.setLengthStep(step); logsTableModel.addNewRow(0, newRow); + if (model.isAddIndividualObservationOnRafale()) { + IndividualObservationBatchTableModel obsTableModel = + (IndividualObservationBatchTableModel) ui.getObsTable().getModel(); + + IndividualObservationBatchRowModel newObsRow = obsTableModel.createNewRow(); + newObsRow.setSize(step); + obsTableModel.addNewRow(newObsRow); + } + } } 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 beb5eec..1046e78 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 @@ -1440,6 +1440,8 @@ tutti.editSpeciesFrequencies.askBeforeSave.title= tutti.editSpeciesFrequencies.averageWeight.label= tutti.editSpeciesFrequencies.error.itchyometer.bad.record= tutti.editSpeciesFrequencies.error.length.doublon= +tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale= +tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip= tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all= tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.mnemonic= tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.tip= 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 67fa8eb..123b840 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 @@ -1365,6 +1365,8 @@ tutti.editSpeciesFrequencies.askBeforeSave.title=Confirmer l'enregistrement des tutti.editSpeciesFrequencies.averageWeight.label=Poids moyen tutti.editSpeciesFrequencies.error.itchyometer.bad.record=La mesure provenant de l'ichtyomètre n'est pas valide (la donnée est peut-être corrompue) \:<br/><ul><li>Enregistrement \: <strong>%s</strong></li><li>CRC \: <strong>%s</strong></li><li>CRC calculé \: <strong>%s</strong></li></ul> tutti.editSpeciesFrequencies.error.length.doublon=La classe de taille <strong>%s</strong> est utilisée plusieurs fois (deuxième occurrence trouvée à la ligne <strong>%s</strong>), ce qui n'est pas autorisé.<hr/>Veuillez corriger cela pour pouvoir enregistrer les mensurations. +tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale=Ajouter aux observations individuelles +tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip=Ajouter une ligne d'observation individuelle avec la taille saisie tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all=Tout tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.mnemonic=T tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.tip=Tout recopier (tailles et poids) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.