r993 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency resources/i18n
Author: tchemit Date: 2013-05-23 14:27:49 +0200 (Thu, 23 May 2013) New Revision: 993 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/993 Log: fixes #2499: [MENSURATIONS] possibilit?\195?\169 de mettre plusieurs lignes avec la m?\195?\170me classe de taille Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-05-23 11:35:53 UTC (rev 992) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-05-23 12:27:49 UTC (rev 993) @@ -53,7 +53,9 @@ import org.jdesktop.swingx.decorator.Highlighter; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JTextField; +import javax.swing.UIManager; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; @@ -63,6 +65,8 @@ import java.util.Map; import java.util.Set; +import static org.nuiton.i18n.I18n._; + /** * @author tchemit <chemit@codelutin.com> * @since 0.2 @@ -575,6 +579,36 @@ log.debug("Save UI " + ui); } + // check that we do not have doublon in length + // see http://forge.codelutin.com/issues/2499 + Set<Float> lengths = Sets.newHashSet(); + + Float doublon = null; + int index = 0; + for (BenthosFrequencyRowModel row : getModel().getRows()) { + Float lengthStep = row.getLengthStep(); + if (!lengths.add(lengthStep)) { + + // already exist + doublon = lengthStep; + continue; + } + index++; + } + if (doublon != null) { + + // can't save mensurations (found doublon) + String message = + _("tutti.editBenthosFrequencies.error.length.doublon", + doublon, index); + TuttiUIContext.getErrorHelper().showErrorDialog( + message); + + // focus to first error row + AbstractSelectTableAction.doSelectCell(getTable(), index, 0); + return; + } + frequencyEditor.validateEdition(getModel()); closeUI(ui); @@ -586,7 +620,7 @@ public String decorateCategory(BenthosBatchRowModel object) { return object == null ? "" : - decorate(object.getFinestCategory().getCategoryType()) + " / " + decorate(object.getFinestCategory().getCategoryValue()); + decorate(object.getFinestCategory().getCategoryType()) + " / " + decorate(object.getFinestCategory().getCategoryValue()); } //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-05-23 11:35:53 UTC (rev 992) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-05-23 12:27:49 UTC (rev 993) @@ -38,7 +38,10 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyCellComponent.FrequencyCellEditor; -import fr.ifremer.tutti.ui.swing.util.*; +import fr.ifremer.tutti.ui.swing.util.Cancelable; +import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import fr.ifremer.tutti.ui.swing.util.TuttiUI; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; import jaxx.runtime.SwingUtil; @@ -51,7 +54,9 @@ import org.jdesktop.swingx.decorator.Highlighter; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JTextField; +import javax.swing.UIManager; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; @@ -61,6 +66,8 @@ import java.util.Map; import java.util.Set; +import static org.nuiton.i18n.I18n._; + /** * @author tchemit <chemit@codelutin.com> * @since 0.2 @@ -573,6 +580,36 @@ log.debug("Save UI " + ui); } + // check that we do not have doublon in length + // see http://forge.codelutin.com/issues/2499 + Set<Float> lengths = Sets.newHashSet(); + + Float doublon = null; + int index = 0; + for (SpeciesFrequencyRowModel row : getModel().getRows()) { + Float lengthStep = row.getLengthStep(); + if (!lengths.add(lengthStep)) { + + // already exist + doublon = lengthStep; + continue; + } + index++; + } + if (doublon != null) { + + // can't save mensurations (found doublon) + String message = + _("tutti.editSpeciesFrequencies.error.length.doublon", + doublon, index); + TuttiUIContext.getErrorHelper().showErrorDialog( + message); + + // focus to first error row + AbstractSelectTableAction.doSelectCell(getTable(), index, 0); + return; + } + frequencyEditor.validateEdition(getModel()); closeUI(ui); @@ -584,7 +621,7 @@ public String decorateCategory(SpeciesBatchRowModel object) { return object == null ? "" : - decorate(object.getFinestCategory().getCategoryType()) + " / " + decorate(object.getFinestCategory().getCategoryValue()); + decorate(object.getFinestCategory().getCategoryType()) + " / " + decorate(object.getFinestCategory().getCategoryValue()); } //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-23 11:35:53 UTC (rev 992) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-23 12:27:49 UTC (rev 993) @@ -390,6 +390,7 @@ tutti.editBenthosFrequencies.action.save.tip= tutti.editBenthosFrequencies.batchCategory= tutti.editBenthosFrequencies.batchSpecies= +tutti.editBenthosFrequencies.error.length.doublon= tutti.editBenthosFrequencies.field.lengthStepCaracteristic= tutti.editBenthosFrequencies.field.lengthStepCaracteristic.tip= tutti.editBenthosFrequencies.field.maxStep= @@ -922,6 +923,7 @@ tutti.editSpeciesFrequencies.batchCategory= tutti.editSpeciesFrequencies.batchCategoryValue= tutti.editSpeciesFrequencies.batchSpecies= +tutti.editSpeciesFrequencies.error.length.doublon= tutti.editSpeciesFrequencies.field.lengthStepCaracteristic= tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip= tutti.editSpeciesFrequencies.field.maxStep= Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-23 11:35:53 UTC (rev 992) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-23 12:27:49 UTC (rev 993) @@ -162,7 +162,7 @@ tutti.createBenthosBatch.field.species=Espèce du lot tutti.createBenthosBatch.field.species.tip=Espèce du lot tutti.createBenthosBatch.title=Créer un lot -tutti.createBenthosMelag.error.message=Erreur à la ligne %s : le lot n'a pas de poids de sous échantillon ni de poids dans les mensurations +tutti.createBenthosMelag.error.message=Erreur à la ligne %s \: le lot n'a pas de poids de sous échantillon ni de poids dans les mensurations tutti.createBenthosMelag.error.title=Erreur tutti.createIndividualObservationBatch.action.addSpecies=... tutti.createIndividualObservationBatch.action.addSpecies.mnemonic=. @@ -217,7 +217,7 @@ tutti.createSpeciesMelag.action.validate=Valider tutti.createSpeciesMelag.action.validate.mnemonic=V tutti.createSpeciesMelag.action.validate.tip=Valider la création du MELAG -tutti.createSpeciesMelag.error.message=Erreur à la ligne %s : le lot n'a pas de poids de sous échantillon ni de poids dans les mensurations +tutti.createSpeciesMelag.error.message=Erreur à la ligne %s \: le lot n'a pas de poids de sous échantillon ni de poids dans les mensurations tutti.createSpeciesMelag.error.title=Erreur tutti.createSpeciesMelag.message=Combien pesait le MELAG (kg) ? tutti.createSpeciesMelag.title=Poids du MELAG (kg) @@ -384,6 +384,7 @@ tutti.editBenthosFrequencies.action.save.tip=Enregistrer les mensurations tutti.editBenthosFrequencies.batchCategory=Catégorie tutti.editBenthosFrequencies.batchSpecies=Espèce +tutti.editBenthosFrequencies.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.editBenthosFrequencies.field.lengthStepCaracteristic=Type de mesure tutti.editBenthosFrequencies.field.lengthStepCaracteristic.tip=Méthode de mensuration des individus tutti.editBenthosFrequencies.field.maxStep=Classe max @@ -886,6 +887,7 @@ tutti.editSpeciesFrequencies.action.save.tip=Enregistrer les mensurations tutti.editSpeciesFrequencies.batchCategory=Catégorie tutti.editSpeciesFrequencies.batchSpecies=Espèce +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.lengthStepCaracteristic=Type de mesure tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip=Méthode de mensuration des individus tutti.editSpeciesFrequencies.field.maxStep=Classe max
participants (1)
-
tchemit@users.forge.codelutin.com