branch feature/8128 created (now 9b77752)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8128 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git at 9b77752 Utilisation des arrondis de poids (see #8128) + utilisation des nouvelles méthodes sur les poids This branch includes the following new commits: new a8428a8 Permettre d'arrondir à partir d'une unité new 90d8ec1 Ajout de nouvelles méthodes sur Weights new 9b77752 Utilisation des arrondis de poids (see #8128) + utilisation des nouvelles méthodes sur les poids The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 9b777527beaf2daac2981aec1c837c11a08b31aa Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 16 17:34:44 2016 +0100 Utilisation des arrondis de poids (see #8128) + utilisation des nouvelles méthodes sur les poids commit 90d8ec1df5e4e39377f82d20202e9e5c6b6c7ae0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 16 17:34:08 2016 +0100 Ajout de nouvelles méthodes sur Weights commit a8428a8d458bdcf66c2a5d72f9a0e0420291aa40 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 16 17:33:27 2016 +0100 Permettre d'arrondir à partir d'une unité -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8128 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit a8428a8d458bdcf66c2a5d72f9a0e0420291aa40 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 16 17:33:27 2016 +0100 Permettre d'arrondir à partir d'une unité --- .../java/fr/ifremer/tutti/type/WeightUnit.java | 34 +++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/type/WeightUnit.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/type/WeightUnit.java index f56b5cb..9649279 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/type/WeightUnit.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/type/WeightUnit.java @@ -22,6 +22,7 @@ package fr.ifremer.tutti.type; * #L% */ +import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Objects; @@ -49,6 +50,20 @@ public enum WeightUnit { public Float toEntity(Float weight) { return weight == null ? null : weight / 1000.0f; } + + @Override + public Float round(Float weight) { + Float result; + if (weight == null) { + result = null; + } else { + BigDecimal sumB = new BigDecimal(String.valueOf(weight)) + .setScale(2, BigDecimal.ROUND_HALF_UP) + .abs(); + result = sumB.floatValue(); + } + return result; + } }, KG(n("application.common.unit.kg"), n("application.common.unit.short.kg"), 4, "\\d{0,6}(\\.\\d{0,4})?") { @Override @@ -60,6 +75,21 @@ public enum WeightUnit { public Float toEntity(Float weight) { return weight; } + + @Override + public Float round(Float weight) { + Float result; + if (weight == null) { + result = null; + } else { + + BigDecimal sumB = new BigDecimal(String.valueOf(weight)) + .setScale(3, BigDecimal.ROUND_HALF_UP) + .abs(); + result = sumB.floatValue(); + } + return result; + } }; private final String i18nShortKey; @@ -130,9 +160,11 @@ public enum WeightUnit { */ public abstract Float toEntity(Float weight); + public abstract Float round(Float weight); + public Float convertWeight(Float weight, WeightUnit weightUnit) { Objects.requireNonNull(weightUnit); - return fromEntity(weightUnit.toEntity(weight)); + return round(fromEntity(weightUnit.toEntity(weight))); } public String decorateLabel(String label) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8128 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 90d8ec1df5e4e39377f82d20202e9e5c6b6c7ae0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 16 17:34:08 2016 +0100 Ajout de nouvelles méthodes sur Weights --- .../src/main/java/fr/ifremer/tutti/util/Weights.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java index 4be5791..32eef67 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java @@ -24,7 +24,8 @@ package fr.ifremer.tutti.util; * #L% */ -import java.math.BigDecimal; +import fr.ifremer.tutti.type.WeightUnit; + import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; @@ -80,10 +81,7 @@ public class Weights { * @since 1.0.1 */ public static float roundKiloGram(float value) { - BigDecimal sumB = new BigDecimal(String.valueOf(value)) - .setScale(3, BigDecimal.ROUND_HALF_UP) - .abs(); - return sumB.floatValue(); + return WeightUnit.KG.round(value); } /** @@ -134,4 +132,12 @@ public class Weights { public static boolean isNullOrZero(Float weight) { return weight == null || compareRawWeights(weight, 0.0f) == 0; } + + public static boolean isNotZero(float weight) { + return compareRawWeights(weight, 0.0f) != 0; + } + + public static boolean isNotNullNorZero(Float number) { + return number!=null && Weights.isNotZero(number); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8128 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 9b777527beaf2daac2981aec1c837c11a08b31aa Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 16 17:34:44 2016 +0100 Utilisation des arrondis de poids (see #8128) + utilisation des nouvelles méthodes sur les poids --- .../catches/species/frequency/SpeciesFrequencyRowModel.java | 12 +++++++----- .../catches/species/frequency/SpeciesFrequencyUIModel.java | 10 +++++----- 2 files changed, 12 insertions(+), 10 deletions(-) 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 38319b6..7c3f22d 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 @@ -31,6 +31,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; +import fr.ifremer.tutti.util.Weights; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -220,13 +221,13 @@ public class SpeciesFrequencyRowModel extends AbstractTuttiBeanUIModel<SpeciesBa @Override public void setWeight(Float weight) { Object oldValue = getWeight(); - computedOrNotWeight.setData(weight); + computedOrNotWeight.setData(weightUnit.round(weight)); firePropertyChange(PROPERTY_WEIGHT, oldValue, weight); } public boolean withWeight() { Float weight = getWeight(); - return weight != null && weight > 0; + return Weights.isNotNullNorZero(weight); } /** @@ -237,8 +238,9 @@ public class SpeciesFrequencyRowModel extends AbstractTuttiBeanUIModel<SpeciesBa if (weight == null) { weight = 0f; } - if (weight + weightToAdd >= 0) { - setWeight(weight + weightToAdd); + float newWeight = weight + weightToAdd; + if (Weights.isNotZero(newWeight)) { + setWeight(newWeight); } } @@ -248,7 +250,7 @@ public class SpeciesFrequencyRowModel extends AbstractTuttiBeanUIModel<SpeciesBa public void setComputedWeight(Float weight) { Object oldValue = getComputedWeight(); - computedOrNotWeight.setComputedData(weight); + computedOrNotWeight.setComputedData(weightUnit.round(weight)); firePropertyChange(PROPERTY_COMPUTED_WEIGHT, oldValue, weight); } 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 c375999..7fc1f21 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 @@ -571,7 +571,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public void setTotalWeight(Float totalWeight) { Object oldValue = getTotalWeight(); - this.totalComputedOrNotWeight.setData(totalWeight); + this.totalComputedOrNotWeight.setData(weightUnit.round(totalWeight)); firePropertyChange(PROPERTY_TOTAL_WEIGHT, oldValue, totalWeight); } @@ -581,16 +581,16 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public void setTotalComputedWeight(Float totalComputedWeight) { Object oldValue = getTotalComputedWeight(); - this.totalComputedOrNotWeight.setComputedData(totalComputedWeight); + this.totalComputedOrNotWeight.setComputedData(weightUnit.round(totalComputedWeight)); firePropertyChange(PROPERTY_TOTAL_COMPUTED_WEIGHT, oldValue, totalComputedWeight); } // Utilisé dans un validateur, ne pas supprimer public boolean isTotalWeightSameAsComputedWeight() { Float totalWeight = getTotalWeight(); - Float computedWeight = getTotalComputedWeight(); - return totalWeight != null && computedWeight != null - && Weights.isEqualWeight(totalWeight, computedWeight); + Float totalComputedWeight = getTotalComputedWeight(); + return totalWeight != null && totalComputedWeight != null + && Weights.isEqualWeight(totalWeight, totalComputedWeight); } public Rtp getRtp() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm