Author: kmorin Date: 2013-06-11 17:14:17 +0200 (Tue, 11 Jun 2013) New Revision: 1101 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1101 Log: fixes #2700 [MENSURATION] - Saisie en d?\195?\169nombrement et message affich?\195?\169 sans donn?\195?\169es saisies Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 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/BenthosFrequencyUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 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/SpeciesFrequencyUIModel.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java 2013-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java 2013-06-11 15:14:17 UTC (rev 1101) @@ -105,7 +105,7 @@ }); result.setLengthStepCaracteristic(uiModel.getLengthStepCaracteristic()); result.setLengthStep(defaultStep); - result.setValid(true); + result.setValid(defaultStep != null); return result; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2013-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2013-06-11 15:14:17 UTC (rev 1101) @@ -297,7 +297,7 @@ #dataInFrequenciesWarningContainer { background: {new java.awt.Color(245, 218, 88)}; - visible: {model.getRowsInError().size() != model.getRows().size()}; + visible: {(model.getRowsInError().size() + model.getEmptyRows().size()) != model.getRows().size()}; } #dataInFrequenciesWarning { 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-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-06-11 15:14:17 UTC (rev 1101) @@ -126,6 +126,7 @@ Object newValue) { boolean recomputeAllRows; + BenthosFrequencyUIModel model = getModel(); if (row.getWeight() != null) { // check if no row had a weight, then if one of them now has a weight, @@ -141,7 +142,7 @@ } - List<BenthosFrequencyRowModel> rows = getModel().getRows(); + List<BenthosFrequencyRowModel> rows = model.getRows(); Integer totalNumber = 0; Float totalWeight = 0f; for (BenthosFrequencyRowModel r : rows) { @@ -159,12 +160,17 @@ } } } - getModel().setTotalNumber(totalNumber); - getModel().setTotalWeight(totalWeight); + model.setTotalNumber(totalNumber); + model.setTotalWeight(totalWeight); if (!recomputeAllRows) { recomputeRowValidState(row); } + if (row.isValid() && row.getNumber() == null && row.getWeight() == null) { + model.addEmptyRow(row); + } else { + model.removeEmptyRow(row); + } } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java 2013-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java 2013-06-11 15:14:17 UTC (rev 1101) @@ -24,11 +24,15 @@ * #L% */ +import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import java.util.List; +import java.util.Set; + /** * @author tchemit <chemit@codelutin.com> * @since 0.2 @@ -65,6 +69,8 @@ public static final String PROPERTY_TOTAL_WEIGHT = "totalWeight"; + public static final String PROPERTY_EMPTY_ROWS = "emptyRows"; + public static enum ConfigurationMode { SIMPLE, AUTO_GEN, @@ -135,10 +141,18 @@ */ protected Float totalWeight; + protected Set<BenthosFrequencyRowModel> emptyRows; + public BenthosFrequencyUIModel() { super(SpeciesBatchRowModel.class, null, null); + setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet()); } + public void setRows(List<BenthosFrequencyRowModel> rows) { + super.setRows(rows); + setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet()); + } + public ConfigurationMode getConfigurationMode() { return configurationMode; } @@ -263,6 +277,25 @@ firePropertyChange(PROPERTY_TOTAL_WEIGHT, oldValue, totalWeight); } + public Set<BenthosFrequencyRowModel> getEmptyRows() { + return emptyRows; + } + + public void setEmptyRows(Set<BenthosFrequencyRowModel> emptyRows) { + this.emptyRows = emptyRows; + firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + } + + public void addEmptyRow(BenthosFrequencyRowModel row) { + emptyRows.add(row); + firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + } + + public void removeEmptyRow(BenthosFrequencyRowModel row) { + emptyRows.remove(row); + firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + } + @Override protected SpeciesBatchRowModel newEntity() { return new SpeciesBatchRowModel(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-06-11 15:14:17 UTC (rev 1101) @@ -105,7 +105,7 @@ }); result.setLengthStepCaracteristic(uiModel.getLengthStepCaracteristic()); result.setLengthStep(defaultStep); - result.setValid(true); + result.setValid(defaultStep != null); return result; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-06-11 15:14:17 UTC (rev 1101) @@ -297,7 +297,7 @@ #dataInFrequenciesWarningContainer { background: {new java.awt.Color(245, 218, 88)}; - visible: {model.getRowsInError().size() != model.getRows().size()}; + visible: {(model.getRowsInError().size() + model.getEmptyRows().size()) != model.getRows().size()}; } #dataInFrequenciesWarning { 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-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-06-11 15:14:17 UTC (rev 1101) @@ -127,6 +127,7 @@ Object newValue) { boolean recomputeAllRows; + SpeciesFrequencyUIModel model = getModel(); if (row.getWeight() != null) { // check if no row had a weight, then if one of them now has a weight, @@ -141,7 +142,7 @@ recomputeAllRows = withWeightRows.isEmpty(); } - List<SpeciesFrequencyRowModel> rows = getModel().getRows(); + List<SpeciesFrequencyRowModel> rows = model.getRows(); Integer totalNumber = 0; Float totalWeight = 0f; for (SpeciesFrequencyRowModel r : rows) { @@ -159,12 +160,17 @@ } } } - getModel().setTotalNumber(totalNumber); - getModel().setTotalWeight(totalWeight); + model.setTotalNumber(totalNumber); + model.setTotalWeight(totalWeight); if (!recomputeAllRows) { recomputeRowValidState(row); } + if (row.isValid() && row.getNumber() == null && row.getWeight() == null) { + model.addEmptyRow(row); + } else { + model.removeEmptyRow(row); + } } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-06-11 15:09:23 UTC (rev 1100) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-06-11 15:14:17 UTC (rev 1101) @@ -24,10 +24,14 @@ * #L% */ +import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import java.util.List; +import java.util.Set; + /** * @author tchemit <chemit@codelutin.com> * @since 0.2 @@ -64,6 +68,8 @@ public static final String PROPERTY_TOTAL_WEIGHT = "totalWeight"; + public static final String PROPERTY_EMPTY_ROWS = "emptyRows"; + public static enum ConfigurationMode { SIMPLE, AUTO_GEN, @@ -134,10 +140,18 @@ */ protected Integer simpleCount; + protected Set<SpeciesFrequencyRowModel> emptyRows; + public SpeciesFrequencyUIModel() { super(SpeciesBatchRowModel.class, null, null); + setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet()); } + public void setRows(List<SpeciesFrequencyRowModel> rows) { + super.setRows(rows); + setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet()); + } + public ConfigurationMode getConfigurationMode() { return configurationMode; } @@ -262,6 +276,25 @@ firePropertyChange(PROPERTY_TOTAL_WEIGHT, oldValue, totalWeight); } + public Set<SpeciesFrequencyRowModel> getEmptyRows() { + return emptyRows; + } + + public void setEmptyRows(Set<SpeciesFrequencyRowModel> emptyRows) { + this.emptyRows = emptyRows; + firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + } + + public void addEmptyRow(SpeciesFrequencyRowModel row) { + emptyRows.add(row); + firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + } + + public void removeEmptyRow(SpeciesFrequencyRowModel row) { + emptyRows.remove(row); + firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + } + @Override protected SpeciesBatchRowModel newEntity() { return new SpeciesBatchRowModel();