branch feature/8189 updated (3051429 -> 563c3b6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8189 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git from 3051429 Ajout d'une nouvelle méthode de conversion qui semble fonctionner new 563c3b6 Amélioration de la méthode de convertion The 1 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 563c3b60f91960977b4d6f7107ab42b4246ab239 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Mar 31 11:15:59 2016 +0200 Amélioration de la méthode de convertion Summary of changes: .../java/fr/ifremer/tutti/type/WeightUnit.java | 24 ------------ .../main/java/fr/ifremer/tutti/util/Weights.java | 44 ++++++++++++++++++++++ .../frequency/SpeciesFrequencyTableModel.java | 9 +++-- .../frequency/SpeciesFrequencyUIHandler.java | 10 ++--- .../species/frequency/SpeciesFrequencyUIModel.java | 6 +-- 5 files changed, 55 insertions(+), 38 deletions(-) -- 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/8189 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 563c3b60f91960977b4d6f7107ab42b4246ab239 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Mar 31 11:15:59 2016 +0200 Amélioration de la méthode de convertion --- .../java/fr/ifremer/tutti/type/WeightUnit.java | 24 ------------ .../main/java/fr/ifremer/tutti/util/Weights.java | 44 ++++++++++++++++++++++ .../frequency/SpeciesFrequencyTableModel.java | 9 +++-- .../frequency/SpeciesFrequencyUIHandler.java | 10 ++--- .../species/frequency/SpeciesFrequencyUIModel.java | 6 +-- 5 files changed, 55 insertions(+), 38 deletions(-) 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 ef81a66..9849fdf 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 @@ -25,7 +25,6 @@ package fr.ifremer.tutti.type; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; -import java.util.Objects; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -147,29 +146,6 @@ public enum WeightUnit { return result; } - //FIXME A supprimer ne fait pas les arrondis avec la bonne unité ? et le calcul à l'envers j'ai l'impression - public Float convertWeight(Float weight, WeightUnit weightUnit) { - Objects.requireNonNull(weightUnit); - return round(fromEntity(weightUnit.toEntity(weight))); - } - - /** - * Pour convertir de l'unité courante vers l'unité passée en paramètre. - * - * @param sourceWeight le poids à convertir - * @param weightUnit l'unité de convertion - * @return le poids converti (et arrondi) dans l'unité cible - */ - public float convert(float sourceWeight, WeightUnit weightUnit) { - Objects.requireNonNull(weightUnit); - // on convertit le poids source en mode «entité» - float sourceWeightToEntity = toEntity(sourceWeight); - // on convertit depuis le mode «entité» vers l'unité cible - float targetWeightFromEntity = weightUnit.fromEntity(sourceWeightToEntity); - // on arrondit selon l'unité cible - return weightUnit.round(targetWeightFromEntity); - } - public String decorateLabel(String label) { return String.format("%s (%s)", label, getShortLabel()); } 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 c1c00cd..a239e63 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 @@ -29,6 +29,7 @@ import fr.ifremer.tutti.type.WeightUnit; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; +import java.util.Objects; /** * Created on 8/26/14. @@ -150,4 +151,47 @@ public class Weights { } return (float) (rtp.getA() * Math.pow(lengthStep, rtp.getB())); } + + /** + * Pour convertir d'une unité vers une autre. + * + * @param sourceWeight le poids à convertir + * @param sourceWeightUnit l'unité de convertion + * @param targetWeightUnit l'unité de convertion + * @return le poids converti (et arrondi) dans l'unité cible + */ + public static float convert(WeightUnit sourceWeightUnit, WeightUnit targetWeightUnit, float sourceWeight) { + + Objects.requireNonNull(sourceWeightUnit); + Objects.requireNonNull(targetWeightUnit); + + // on convertit le poids source en mode «entité» + float sourceWeightToEntity = sourceWeightUnit.toEntity(sourceWeight); + + // on convertit depuis le mode «entité» vers l'unité cible + float targetWeightFromEntity = targetWeightUnit.fromEntity(sourceWeightToEntity); + + // on arrondit selon l'unité cible + return targetWeightUnit.round(targetWeightFromEntity); + + } + + /** + * Pour convertir d'une unité vers une autre. + * + * @param sourceWeight le poids à convertir + * @param sourceWeightUnit l'unité de convertion + * @param targetWeightUnit l'unité de convertion + * @return le poids converti (et arrondi) dans l'unité cible + */ + public static Float convert(WeightUnit sourceWeightUnit, WeightUnit targetWeightUnit, Float sourceWeight) { + + Float targetWeight = sourceWeight; + if (sourceWeight != null) { + targetWeight = convert(sourceWeightUnit, targetWeightUnit, (float) sourceWeight); + } + + return targetWeight; + + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java index ae179fa..648e072 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java @@ -22,8 +22,9 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency; * #L% */ -import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.data.CopyIndividualObservationMode; +import fr.ifremer.tutti.type.WeightUnit; +import fr.ifremer.tutti.util.Weights; import org.jdesktop.swingx.table.TableColumnModelExt; import org.jfree.data.xy.XYSeries; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; @@ -282,7 +283,7 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp if (row.withNumber()) { frequenciesSeries.addOrUpdate(newValue, row.getNumber()); - Float weight = individualObservationWeightUnit.convertWeight(row.computeAverageWeight(), weightUnit); + Float weight = Weights.convert(weightUnit, individualObservationWeightUnit, row.computeAverageWeight()); averageWeightsSeries.addOrUpdate(newValue, weight); } @@ -333,7 +334,7 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp } else { frequenciesSeries.addOrUpdate(lengthStep, row.getNumber()); - Float weight = individualObservationWeightUnit.convertWeight(row.computeAverageWeight(), weightUnit); + Float weight = Weights.convert(weightUnit, individualObservationWeightUnit, row.computeAverageWeight()); averageWeightsSeries.addOrUpdate(lengthStep, weight); } @@ -377,7 +378,7 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp } else { - Float weight = individualObservationWeightUnit.convertWeight(row.computeAverageWeight(), weightUnit); + Float weight = Weights.convert(weightUnit, individualObservationWeightUnit, row.computeAverageWeight()); averageWeightsSeries.addOrUpdate(lengthStep, weight); } 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..e923a49 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 @@ -47,12 +47,8 @@ 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; @@ -1203,7 +1199,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci SpeciesFrequencyRowModel row = getRowForLengthstep(lengthStep); // conversion de poids - weight = weightUnit.convertWeight(weight, getConfig().getIndividualObservationWeightUnit()); + weight = Weights.convert(getConfig().getIndividualObservationWeightUnit(), weightUnit, weight); row.addToWeight(weight); if (Weights.isNullOrZero(row.getWeight())) { @@ -1849,7 +1845,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci Float weight = obsRow.getWeight(); if (CopyIndividualObservationMode.ALL == copyMode && weight != null) { // conversion de poids - weight = weightUnit.convertWeight(weight, individualObservationWeightUnit); + weight = Weights.convert(individualObservationWeightUnit, weightUnit, weight); row.addToWeight(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 7991d9b..877503f 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 @@ -27,8 +27,8 @@ import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.type.WeightUnit; -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.species.SpeciesOrBenthosBatchUISupport; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; @@ -374,7 +374,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa frequenciesSeries.addOrUpdate(lengthStep, number); - Float averageWeight = individualObservationWeightUnit.convertWeight(row.computeAverageWeight(), weightUnit); + Float averageWeight = Weights.convert(weightUnit, individualObservationWeightUnit, row.computeAverageWeight()); if (averageWeight != null) { averageWeightsSeries.addOrUpdate(lengthStep, averageWeight); } @@ -852,7 +852,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa if (row.withNumber() && row.getLengthStep() != null && withRtp()) { // computedWeightForLengthStep in grams float computedWeightForLengthStep = Weights.computeWithRtp(getRtp(), row.getLengthStep(), getLengthStepCaracteristicUnit()); - computedWeight = WeightUnit.G.convert(row.getNumber() * computedWeightForLengthStep, weightUnit); + computedWeight = Weights.convert(WeightUnit.G, weightUnit, row.getNumber() * computedWeightForLengthStep); } row.setRtpComputedWeight(computedWeight); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm