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 6a9cacbcda8d2f86acd89dbcfa545b4a674bae84 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 15 17:31:17 2014 +0200 fixes #5786: [CAPTURE] disfonctionnements dans saisie des poids et nombres dans l'écran mensuration en 3.7.3 --- .../catches/benthos/BenthosBatchRowModel.java | 10 +++--- .../frequency/BenthosFrequencyRowModel.java | 5 +++ .../frequency/BenthosFrequencyUIHandler.java | 6 ++-- .../benthos/frequency/BenthosFrequencyUIModel.java | 39 ++++++++++++++++------ .../catches/species/SpeciesBatchRowModel.java | 8 +++-- .../frequency/SpeciesFrequencyRowModel.java | 7 +++- .../frequency/SpeciesFrequencyUIHandler.java | 9 ++--- .../species/frequency/SpeciesFrequencyUIModel.java | 39 ++++++++++++++++------ 8 files changed, 88 insertions(+), 35 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java index 2c37c2c..d60e123 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java @@ -41,7 +41,7 @@ import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import org.apache.commons.collections4.CollectionUtils; -import org.nuiton.jaxx.application.ApplicationDataUtil; +import org.nuiton.jaxx.application.bean.JavaBeanObjectUtil; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -499,8 +499,8 @@ public class BenthosBatchRowModel extends AbstractTuttiBeanUIModel<BenthosBatch, public void setSampleCategoryValue(Integer sampleCategoryId, Serializable value) { SampleCategory<?> sampleCategory = getSampleCategoryById(sampleCategoryId); - ApplicationDataUtil.setProperty(sampleCategory, - SampleCategory.PROPERTY_CATEGORY_VALUE, value); + JavaBeanObjectUtil.setProperty(sampleCategory, + SampleCategory.PROPERTY_CATEGORY_VALUE, value); firePropertyChange(PROPERTY_SAMPLE_CATEGORY_VALUE, null, sampleCategory); } @@ -508,8 +508,8 @@ public class BenthosBatchRowModel extends AbstractTuttiBeanUIModel<BenthosBatch, public void setSampleCategoryWeight(Integer sampleCategoryId, Object value) { SampleCategory<?> sampleCategory = getSampleCategoryById(sampleCategoryId); - ApplicationDataUtil.setProperty(sampleCategory, - SampleCategory.PROPERTY_CATEGORY_WEIGHT, value); + JavaBeanObjectUtil.setProperty(sampleCategory, + SampleCategory.PROPERTY_CATEGORY_WEIGHT, value); firePropertyChange(PROPERTY_SAMPLE_CATEGORY_WEIGHT, null, sampleCategory); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java index 3f31580..47949f2 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java @@ -233,4 +233,9 @@ public class BenthosFrequencyRowModel extends AbstractTuttiBeanUIModel<BenthosBa @Override public void setRankOrder(Integer rankOrder) { } + + public boolean isEmpty() { + return lengthStep == null && (weight == null || number == null); + } + } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java index 74e93e7..ebe7ec5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java @@ -269,7 +269,7 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth // get step from the pmfm float step = getStep(newValue); getModel().setStep(step); - if (getModel().getRows()!=null) { + if (CollectionUtils.isNotEmpty(getModel().getRows())) { for (BenthosFrequencyRowModel rowModel : getModel().getRows()) { rowModel.setLengthStepCaracteristic(newValue); recomputeRowValidState(rowModel); @@ -525,7 +525,7 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth model.setNextEditableRowIndex(editor.getNextEditableRowIndex()); model.setTotalNumber(null); model.setTotalComputedWeight(null); - model.setTotalWeight(speciesBatch.getWeight()); + model.setTotalWeight(null); model.setSimpleCount(null); model.setMinStep(null); model.setMaxStep(null); @@ -539,6 +539,8 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth if (speciesBatch != null) { + model.setTotalWeight(speciesBatch.getWeight()); + List<BenthosFrequencyRowModel> frequency = speciesBatch.getFrequency(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java index cc7230a..06702a4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java @@ -23,9 +23,9 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency; */ import com.google.common.collect.Sets; -import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; 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.benthos.BenthosBatchRowModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; @@ -343,7 +343,7 @@ public class BenthosFrequencyUIModel extends AbstractTuttiTableUIModel<BenthosBa Float totalWeight = getTotalWeight(); Float computedWeight = getTotalComputedWeight(); return totalWeight != null && computedWeight != null - && Weights.isEqualWeight(totalWeight, computedWeight); + && Weights.isEqualWeight(totalWeight, computedWeight); } public Set<BenthosFrequencyRowModel> getEmptyRows() { @@ -368,26 +368,45 @@ public class BenthosFrequencyUIModel extends AbstractTuttiTableUIModel<BenthosBa } public boolean isSomeRowsWithWeightAndOtherWithout() { + boolean result; + if (CollectionUtils.isEmpty(rows)) { + // no row result = false; + } else { // there is some rows - int nbRowsWithWeight = getNbRowsWithWeight(); - int nbEmptyRows = emptyRows.size(); - if (nbRowsWithWeight == 0 || (nbEmptyRows + nbRowsWithWeight == rows.size())) { - // no row with weight or all none empty rows have a weight - result = false; - } else { + int nbNoneEmptyRows = 0; + int nbNoneEmptyRowsWithWeight = 0; + + for (BenthosFrequencyRowModel row : rows) { + + if (row.isEmpty()) { + + // no value on rows, no chekc on it + continue; + } + + nbNoneEmptyRows++; + + if (row.getWeight() != null) { + + nbNoneEmptyRowsWithWeight++; + + } - // some rows with weight and other without - result = true; } + + result = nbNoneEmptyRowsWithWeight > 0 && nbNoneEmptyRows != nbNoneEmptyRowsWithWeight; + } + return result; + } public void updateRowWithWeight(BenthosFrequencyRowModel row) { 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 4520493..f37cff6 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 @@ -42,6 +42,8 @@ import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import org.apache.commons.collections4.CollectionUtils; import org.nuiton.jaxx.application.ApplicationDataUtil; +import org.nuiton.jaxx.application.bean.JavaBeanObjectUtil; +import org.nuiton.util.beans.BeanUtil; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -489,7 +491,7 @@ public class SpeciesBatchRowModel extends AbstractTuttiBeanUIModel<SpeciesBatch, public void setSampleCategoryValue(Integer sampleCategoryId, Serializable value) { SampleCategory<?> sampleCategory = getSampleCategoryById(sampleCategoryId); - ApplicationDataUtil.setProperty(sampleCategory, + JavaBeanObjectUtil.setProperty(sampleCategory, SampleCategory.PROPERTY_CATEGORY_VALUE, value); firePropertyChange(PROPERTY_SAMPLE_CATEGORY_VALUE, null, sampleCategory); } @@ -498,8 +500,8 @@ public class SpeciesBatchRowModel extends AbstractTuttiBeanUIModel<SpeciesBatch, public void setSampleCategoryWeight(Integer sampleCategoryId, Object value) { SampleCategory<?> sampleCategory = getSampleCategoryById(sampleCategoryId); - ApplicationDataUtil.setProperty(sampleCategory, - SampleCategory.PROPERTY_CATEGORY_WEIGHT, value); + JavaBeanObjectUtil.setProperty(sampleCategory, + SampleCategory.PROPERTY_CATEGORY_WEIGHT, value); firePropertyChange(PROPERTY_SAMPLE_CATEGORY_WEIGHT, null, sampleCategory); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java index 78fc821..4fd90c5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java @@ -28,8 +28,8 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.type.WeightUnit; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -233,4 +233,9 @@ public class SpeciesFrequencyRowModel extends AbstractTuttiBeanUIModel<SpeciesBa @Override public void setRankOrder(Integer rankOrder) { } + + public boolean isEmpty() { + return lengthStep == null && (weight == null || number == 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 9b8c044..03ac92f 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 @@ -317,7 +317,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // get step from the pmfm float step = getStep(newValue); getModel().setStep(step); - if (getModel().getRows() != null) { + if (CollectionUtils.isNotEmpty(getModel().getRows())) { for (SpeciesFrequencyRowModel rowModel : getModel().getRows()) { rowModel.setLengthStepCaracteristic(newValue); recomputeRowValidState(rowModel); @@ -582,7 +582,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci model.setNextEditableRowIndex(editor.getNextEditableRowIndex()); model.setTotalNumber(null); model.setTotalComputedWeight(null); - model.setTotalWeight(speciesBatch.getWeight()); + model.setTotalWeight(null); model.setSimpleCount(null); model.setMinStep(null); model.setMaxStep(null); @@ -596,8 +596,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci if (speciesBatch != null) { - List<SpeciesFrequencyRowModel> frequency = - speciesBatch.getFrequency(); + model.setTotalWeight(speciesBatch.getWeight()); + + List<SpeciesFrequencyRowModel> frequency = speciesBatch.getFrequency(); // try to load existing frequency 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 80559c6..dc36c0f 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 @@ -23,9 +23,9 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency; */ import com.google.common.collect.Sets; -import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; 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.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; @@ -351,7 +351,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa Float totalWeight = getTotalWeight(); Float computedWeight = getTotalComputedWeight(); return totalWeight != null && computedWeight != null - && Weights.isEqualWeight(totalWeight, computedWeight); + && Weights.isEqualWeight(totalWeight, computedWeight); } public Set<SpeciesFrequencyRowModel> getEmptyRows() { @@ -376,26 +376,45 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa } public boolean isSomeRowsWithWeightAndOtherWithout() { + boolean result; + if (CollectionUtils.isEmpty(rows)) { + // no row result = false; + } else { // there is some rows - int nbRowsWithWeight = getNbRowsWithWeight(); - int nbEmptyRows = emptyRows.size(); - if (nbRowsWithWeight == 0 || (nbEmptyRows + nbRowsWithWeight == rows.size())) { - // no row with weight or all none empty rows have a weight - result = false; - } else { + int nbNoneEmptyRows = 0; + int nbNoneEmptyRowsWithWeight = 0; + + for (SpeciesFrequencyRowModel row : rows) { + + if (row.isEmpty()) { + + // no value on rows, no chekc on it + continue; + } + + nbNoneEmptyRows++; + + if (row.getWeight() != null) { + + nbNoneEmptyRowsWithWeight++; + + } - // some rows with weight and other without - result = true; } + + result = nbNoneEmptyRowsWithWeight > 0 && nbNoneEmptyRows != nbNoneEmptyRowsWithWeight; + } + return result; + } public void updateRowWithWeight(SpeciesFrequencyRowModel row) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.