This is an automated email from the git hooks/post-receive script. New commit to branch feature/8192 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit cdbec1d99010000a06bc27261ea20c537c3e99a1 Author: Kevin Morin <morin@codelutin.com> Date: Fri Mar 25 12:35:53 2016 +0100 utilisation d'un objet pour gérer le code de prélèvement (fixes #8192) --- .../ifremer/tutti/service/PersistenceService.java | 4 +- .../fr/ifremer/tutti/service/TuttiDataContext.java | 4 +- .../CruiseSamplingCache.java | 9 ++-- .../CruiseSamplingCacheLoader.java | 2 +- .../CruiseSamplingInternalCache.java | 2 +- .../tutti/service/sampling/SamplingCodePrefix.java | 54 ++++++++++++++++++++++ .../{samplingCache => sampling}/SamplingEvent.java | 2 +- .../SamplingListener.java | 2 +- .../content/actions/EditCatchesSupportAction.java | 2 +- .../IndividualObservationBatchRowModel.java | 43 ++--------------- .../IndividualObservationBatchTableModel.java | 22 ++++++--- .../SampleCodeEditionPopupUI.jaxx | 4 +- .../SampleCodeEditionPopupUI.jcss | 2 +- .../SampleCodeEditionPopupUIHandler.java | 3 +- .../SampleCodeEditionPopupUIModel.java | 7 +-- .../SamplingCodeCellEditor.java | 4 +- .../frequency/IndividualObservationUICache.java | 6 +-- .../frequency/SpeciesFrequencyUIHandler.java | 17 +++---- .../frequency/actions/DeleteSampleCodeAction.java | 2 +- .../frequency/actions/EditSampleCodeAction.java | 6 ++- 20 files changed, 115 insertions(+), 82 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index 4e060a4..439a17b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -69,8 +69,8 @@ import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.persistence.model.ProgramDataModel; import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator; import fr.ifremer.tutti.persistence.service.UpdateSchemaContextSupport; -import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCache; -import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCacheLoader; +import fr.ifremer.tutti.service.sampling.CruiseSamplingCache; +import fr.ifremer.tutti.service.sampling.CruiseSamplingCacheLoader; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java index 182c64f..58e748b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java @@ -40,8 +40,8 @@ import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.TaxonCache; import fr.ifremer.tutti.persistence.entities.referential.TaxonCaches; import fr.ifremer.tutti.persistence.entities.referential.Vessel; -import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCache; -import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCacheLoader; +import fr.ifremer.tutti.service.sampling.CruiseSamplingCache; +import fr.ifremer.tutti.service.sampling.CruiseSamplingCacheLoader; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java similarity index 98% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingCache.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java index 296f9c0..756e667 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java @@ -1,4 +1,4 @@ -package fr.ifremer.tutti.service.samplingCache; +package fr.ifremer.tutti.service.sampling; /* * #%L @@ -205,11 +205,10 @@ public class CruiseSamplingCache implements Closeable { String samplingCode = individualObservationBatch.getSamplingCode(); if (samplingCode != null) { - String[] codeParts = samplingCode.split("#"); - Integer code = Integer.parseInt(codeParts[codeParts.length - 1]); + int code = SamplingCodePrefix.extractSamplingCodeIdFromSamplingCode(samplingCode); - Integer highestSmaplingCode = highestSamplingCodeBySpecies.get(species.getReferenceTaxonId()); - if (highestSmaplingCode == null || code > highestSmaplingCode) { + Integer highestSamplingCode = highestSamplingCodeBySpecies.get(species.getReferenceTaxonId()); + if (highestSamplingCode == null || code > highestSamplingCode) { highestSamplingCodeBySpecies.put(species.getReferenceTaxonId(), code); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingCacheLoader.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCacheLoader.java similarity index 99% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingCacheLoader.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCacheLoader.java index 3390f4a..c2bec12 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingCacheLoader.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCacheLoader.java @@ -1,4 +1,4 @@ -package fr.ifremer.tutti.service.samplingCache; +package fr.ifremer.tutti.service.sampling; /* * #%L diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingInternalCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java similarity index 99% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingInternalCache.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java index 858c3cf..b4ae130 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingInternalCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java @@ -1,4 +1,4 @@ -package fr.ifremer.tutti.service.samplingCache; +package fr.ifremer.tutti.service.sampling; /* * #%L diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingCodePrefix.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingCodePrefix.java new file mode 100644 index 0000000..87cd003 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingCodePrefix.java @@ -0,0 +1,54 @@ +package fr.ifremer.tutti.service.sampling; + +import java.util.Objects; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.5 + */ +public class SamplingCodePrefix { + + public static final String SEPARATOR = "#"; + protected final String prefix; + protected final String species; + + public SamplingCodePrefix(String prefix, String species) { + this.prefix = prefix; + this.species = species; + } + + public SamplingCodePrefix(String samplingCode) { + String[] codeParts = samplingCode.split(SEPARATOR); + prefix = codeParts[0]; + species = codeParts[1]; + } + + public String getPrefix() { + return prefix; + } + + public String getSpecies() { + return species; + } + + @Override + public String toString() { + return prefix + SEPARATOR + species + SEPARATOR; + } + + public String toSamplingCode(int samplingCodeId) { + return toString() + samplingCodeId; + } + + /** + * Extrait l'id du code (le nombre à la fin) + * @param samplingCode + * @return + */ + public static int extractSamplingCodeIdFromSamplingCode(String samplingCode) { + Objects.requireNonNull(samplingCode); + String[] codeParts = samplingCode.split(SEPARATOR); + return Integer.parseInt(codeParts[codeParts.length - 1]); + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingEvent.java similarity index 98% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingEvent.java index d8847e1..834060b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingEvent.java @@ -1,4 +1,4 @@ -package fr.ifremer.tutti.service.samplingCache; +package fr.ifremer.tutti.service.sampling; /* * #%L diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java similarity index 95% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java index f1b3219..8f14783 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java @@ -1,4 +1,4 @@ -package fr.ifremer.tutti.service.samplingCache; +package fr.ifremer.tutti.service.sampling; /* * #%L diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesSupportAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesSupportAction.java index b4a230d..48cc937 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesSupportAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesSupportAction.java @@ -27,7 +27,7 @@ import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.TuttiDataContext; import fr.ifremer.tutti.service.ValidationService; -import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCacheLoader; +import fr.ifremer.tutti.service.sampling.CruiseSamplingCacheLoader; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java index 4f608c3..b57a3ed 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java @@ -34,6 +34,7 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.sampling.SamplingCodePrefix; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; @@ -103,12 +104,7 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel /** * @since 4.5 */ - protected Integer samplingCodeId; - - /** - * @since 4.5 - */ - protected String samplingCodePrefix; + protected SamplingCodePrefix samplingCodePrefix; protected static final Binder<IndividualObservationBatch, IndividualObservationBatchRowModel> fromBeanBinder = BinderFactory.newBinder(IndividualObservationBatch.class, @@ -384,43 +380,18 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel Object oldValue = getSamplingCode(); editObject.setSamplingCode(samplingCode); firePropertyChange(PROPERTY_SAMPLING_CODE, oldValue, samplingCode); - extractSamplingCodeIdFromSamplingCode(); - } - - protected void setSamplingCode() { - if (withSamplingCodeId()) { - setSamplingCode(samplingCodePrefix + samplingCodeId); - } else { - setSamplingCode(null); - } } public Integer getSamplingCodeId() { - return samplingCodeId; + return SamplingCodePrefix.extractSamplingCodeIdFromSamplingCode(getSamplingCode()); } - public void setSamplingCodeId(Integer samplingCodeId) { - Object oldValue = getSamplingCodeId(); - this.samplingCodeId = samplingCodeId; - firePropertyChange(PROPERTY_SAMPLING_CODE_ID, oldValue, samplingCodeId); - setSamplingCode(); - } - - public String getSamplingCodePrefix() { + public SamplingCodePrefix getSamplingCodePrefix() { return samplingCodePrefix; } - public void setSamplingCodePrefix(String samplingCodePrefix) { - Object oldValue = getSamplingCodePrefix(); + public void setSamplingCodePrefix(SamplingCodePrefix samplingCodePrefix) { this.samplingCodePrefix = samplingCodePrefix; - firePropertyChange(PROPERTY_SAMPLING_CODE_PREFIX, oldValue, samplingCodePrefix); - setSamplingCode(); - } - - public void extractSamplingCodeIdFromSamplingCode() { - if (withSamplingCode() && withSamplingCodePrefix() && !withSamplingCodeId()) { - setSamplingCodeId(Integer.valueOf(getSamplingCode().replace(samplingCodePrefix, ""))); - } } public boolean withSamplingCode() { @@ -431,10 +402,6 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel return samplingCodePrefix != null; } - public boolean withSamplingCodeId() { - return samplingCodeId != null; - } - //------------------------------------------------------------------------// //-- AttachmentModelAware --// //------------------------------------------------------------------------// diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java index e1930d0..5c18896 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservatio import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.sampling.SamplingCodePrefix; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.table.CaracteristicColumnIdentifier; import org.jdesktop.swingx.table.TableColumnExt; @@ -97,7 +98,7 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab protected Species species; - protected String samplingCodePrefix; + protected SamplingCodePrefix samplingCodePrefix; protected Caracteristic lengthstepCaracteristic; @@ -146,13 +147,10 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab } } - public void setSamplingCodePrefix(String samplingCodePrefix) { + public void setSamplingCodePrefix(SamplingCodePrefix samplingCodePrefix) { this.samplingCodePrefix = samplingCodePrefix; if (rows != null) { - rows.forEach(row -> { - row.setSamplingCodePrefix(samplingCodePrefix); - - }); + rows.forEach(row -> row.setSamplingCodePrefix(samplingCodePrefix)); } } @@ -189,6 +187,18 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab result.setLengthStepCaracteristic(lengthstepCaracteristic); result.setMaturityCaracteristic(maturityCaracteristic); + // quand l'utilisateur change le prefix dans la conf, si la ligne a deja un code prélèvement, + // le prefix reste le même, même si l'utilisateur supprime le code et en regénère un + // il faut pousser le nouveau prefix si l'utilisateur supprime le code + result.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE, evt -> { + if (result.withSamplingCode() && result.withSamplingCodePrefix()) { + result.setSamplingCodePrefix(new SamplingCodePrefix(result.getSamplingCode())); + + } else if (!result.withSamplingCode()) { + result.setSamplingCodePrefix(samplingCodePrefix); + } + }); + return result; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jaxx index 0bd8aa4..aad07ec 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jaxx @@ -27,6 +27,8 @@ fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + fr.ifremer.tutti.service.sampling.SamplingCodePrefix + org.nuiton.jaxx.widgets.number.NumberEditor </import> @@ -37,7 +39,7 @@ public SampleCodeEditionPopupUI(TuttiUI<?,?> parentUI) { TuttiUIUtil.setParentUI(this, parentUI); } -public void open(String prefix, Integer sampleCode) { +public void open(SamplingCodePrefix prefix, Integer sampleCode) { handler.open(prefix, sampleCode); } ]]></script> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jcss index 52d27ce..9a305f6 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUI.jcss @@ -31,7 +31,7 @@ } #sampleCodePrefix { - text: {getModel().getSampleCodePrefix()}; + text: {getModel().getSampleCodePrefix().toString()}; } #sampleCodeField { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIHandler.java index a502e17..783c33a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIHandler.java @@ -22,6 +22,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservatio * #L% */ +import fr.ifremer.tutti.service.sampling.SamplingCodePrefix; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; @@ -67,7 +68,7 @@ public class SampleCodeEditionPopupUIHandler extends AbstractTuttiUIHandler<Samp return getUI().getSampleCodeField(); } - public void open(String prefix, Integer sampleCode) { + public void open(SamplingCodePrefix prefix, Integer sampleCode) { getModel().setSampleCodePrefix(prefix); getModel().setSampleCode(sampleCode); getModel().setValid(false); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIModel.java index b44d828..7a0fc59 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SampleCodeEditionPopupUIModel.java @@ -24,6 +24,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservatio * #L% */ +import fr.ifremer.tutti.service.sampling.SamplingCodePrefix; import org.jdesktop.beans.AbstractSerializableBean; /** @@ -43,7 +44,7 @@ public class SampleCodeEditionPopupUIModel extends AbstractSerializableBean { protected Integer sampleCode; - protected String sampleCodePrefix; + protected SamplingCodePrefix sampleCodePrefix; public Integer getSampleCode() { return sampleCode; @@ -55,11 +56,11 @@ public class SampleCodeEditionPopupUIModel extends AbstractSerializableBean { firePropertyChange(PROPERTY_SAMPLE_CODE, oldValue, sampleCode); } - public String getSampleCodePrefix() { + public SamplingCodePrefix getSampleCodePrefix() { return sampleCodePrefix; } - public void setSampleCodePrefix(String sampleCodePrefix) { + public void setSampleCodePrefix(SamplingCodePrefix sampleCodePrefix) { Object oldValue = getSampleCodePrefix(); this.sampleCodePrefix = sampleCodePrefix; firePropertyChange(PROPERTY_SAMPLE_CODE_PREFIX, oldValue, sampleCodePrefix); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SamplingCodeCellEditor.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SamplingCodeCellEditor.java index 5386f13..7fd4ee9 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SamplingCodeCellEditor.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/SamplingCodeCellEditor.java @@ -23,7 +23,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservatio */ import com.google.common.base.Preconditions; -import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCache; +import fr.ifremer.tutti.service.sampling.CruiseSamplingCache; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUI; import org.apache.commons.logging.Log; @@ -147,7 +147,7 @@ public class SamplingCodeCellEditor extends AbstractCellEditor implements TableC Optional<CruiseSamplingCache> optionalCruiseSamplingCache = context.getDataContext().getOptionalCruiseSamplingCache(); if (optionalCruiseSamplingCache.isPresent()) { int i = optionalCruiseSamplingCache.get().getNextSamplingCodeId(getRow().getSpecies().getReferenceTaxonId()); - row.setSamplingCodeId(i); + row.setSamplingCode(row.getSamplingCodePrefix().toSamplingCode(i)); } stopCellEditing(); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java index e4a8f0d..b8a63e0 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java @@ -30,9 +30,9 @@ import fr.ifremer.tutti.persistence.entities.protocol.CalcifiedPiecesSamplingDef import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; -import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCache; -import fr.ifremer.tutti.service.samplingCache.SamplingEvent; -import fr.ifremer.tutti.service.samplingCache.SamplingListener; +import fr.ifremer.tutti.service.sampling.CruiseSamplingCache; +import fr.ifremer.tutti.service.sampling.SamplingEvent; +import fr.ifremer.tutti.service.sampling.SamplingListener; import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.SpeciesBatchRowModel; import org.apache.commons.logging.Log; 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 7c5dde2..87da7cc 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 @@ -43,16 +43,13 @@ import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.TaxonCache; import fr.ifremer.tutti.persistence.entities.referential.TaxonCaches; import fr.ifremer.tutti.service.DecoratorService; +import fr.ifremer.tutti.service.sampling.SamplingCodePrefix; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.TuttiUIContext; 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.individualobservation.SamplingCodeCellRenderer; import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.SamplingCodeCellEditor; -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.EditSpeciesBatchPanelUI; -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBenthosBatchUISupport; -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.individualobservation.SamplingCodeCellRenderer; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.EditSpeciesBatchPanelUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBenthosBatchUISupport; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.SpeciesBatchRowModel; @@ -883,9 +880,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci Species species = speciesBatch.getSpecies(); IndividualObservationBatchTableModel obsTableModel = getObsTableModel(); obsTableModel.setSpecies(species); - String samplingCodeSeparator = getConfig().getSamplingCodeSeparator(); - obsTableModel.setSamplingCodePrefix(getConfig().getSamplingCodePrefix() + samplingCodeSeparator + - decorate(species, DecoratorService.WITH_SURVEY_CODE_NO_NAME) + samplingCodeSeparator); + SamplingCodePrefix samplingCodePrefix = new SamplingCodePrefix(getConfig().getSamplingCodePrefix(), + decorate(species, DecoratorService.WITH_SURVEY_CODE_NO_NAME)); + obsTableModel.setSamplingCodePrefix(samplingCodePrefix); model.setTotalWeight(speciesBatch.getWeight()); @@ -1882,8 +1879,8 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci protected void beforeOpenPopup(int modelRowIndex, int modelColumnIndex) { super.beforeOpenPopup(modelRowIndex, modelColumnIndex); - boolean sampleCodeMenusEnabled = modelRowIndex >= 1 && ui.getObsTable().getSelectedRowCount() == 1 - && getObsTableModel().getRows().get(ui.getObsTable().getSelectedRow()).withSamplingCodeId(); + boolean sampleCodeMenusEnabled = modelRowIndex >= 0 && ui.getObsTable().getSelectedRowCount() == 1 + && getObsTableModel().getRows().get(ui.getObsTable().getSelectedRow()).withSamplingCode(); ui.getEditSampleCodeMenu().setEnabled(sampleCodeMenusEnabled); ui.getDeleteSampleCodeMenu().setEnabled(sampleCodeMenusEnabled); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/DeleteSampleCodeAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/DeleteSampleCodeAction.java index b76840f..c6f6fc8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/DeleteSampleCodeAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/DeleteSampleCodeAction.java @@ -59,7 +59,7 @@ public class DeleteSampleCodeAction extends SimpleActionSupport<SpeciesFrequency JOptionPane.YES_NO_OPTION); if (answer == JOptionPane.YES_OPTION) { - selectedRow.setSamplingCodeId(null); + selectedRow.setSamplingCode(null); obsTableModel.fireTableRowsUpdated(selectedRowIndex, selectedRowIndex); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java index a492709..d935646 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java @@ -27,6 +27,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.ac 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.individualobservation.SampleCodeEditionPopupUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.SampleCodeEditionPopupUIModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; import org.jdesktop.swingx.JXTable; @@ -52,8 +53,9 @@ public class EditSampleCodeAction extends SimpleActionSupport<SpeciesFrequencyUI SampleCodeEditionPopupUI sampleCodeEditionPopupUI = new SampleCodeEditionPopupUI(ui); sampleCodeEditionPopupUI.open(selectedRow.getSamplingCodePrefix(), selectedRow.getSamplingCodeId()); - if (sampleCodeEditionPopupUI.getModel().isValid()) { - selectedRow.setSamplingCodeId(sampleCodeEditionPopupUI.getModel().getSampleCode()); + SampleCodeEditionPopupUIModel model = sampleCodeEditionPopupUI.getModel(); + if (model.isValid()) { + selectedRow.setSamplingCode(model.getSampleCodePrefix().toSamplingCode(model.getSampleCode())); obsTableModel.fireTableRowsUpdated(selectedRowIndex, selectedRowIndex); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.