branch develop updated (7597d7a -> c583700)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See http://git.codelutin.com/tutti.git from 7597d7a fixes #6369: [CAPTURE] écran mensurations : préciser en face de clas min et class max l'unité (mm ou cm) en fonction du champ "type de mesure" new 6c9bd2d ajout du comportement pour l'ecran benthos new cd91569 ajout du comportement pour l'ecran espece new b602a06 amelioration pour lecran benthos new c583700 fixes #6370 [MENSURATIONS] empêcher toute modification de la méthode de mensuration et du pas de mesure si il y a au moins une données dans le tableau des mensurations The 4 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 c583700d278c41e759bf6f0c52477a9a5087350b Merge: 7597d7a b602a06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:33:03 2014 +0100 fixes #6370 [MENSURATIONS] empêcher toute modification de la méthode de mensuration et du pas de mesure si il y a au moins une données dans le tableau des mensurations commit b602a063319f03866a960381c5480c94516fe3e3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:32:39 2014 +0100 amelioration pour lecran benthos commit cd91569f09a824900bae3d19ddbe9b5a2332ca06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:32:19 2014 +0100 ajout du comportement pour l'ecran espece commit 6c9bd2d8bf4a25f49b21725c387d37b95c88c2c7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:20:15 2014 +0100 ajout du comportement pour l'ecran benthos Summary of changes: .../frequency/BenthosFrequencyTableModel.java | 69 ++++++++++++++++------ .../benthos/frequency/BenthosFrequencyUI.css | 4 +- .../frequency/BenthosFrequencyUIHandler.java | 66 +++++++++++++-------- .../benthos/frequency/BenthosFrequencyUIModel.java | 20 +++++++ .../frequency/SpeciesFrequencyTableModel.java | 67 +++++++++++++++------ .../species/frequency/SpeciesFrequencyUI.css | 4 +- .../frequency/SpeciesFrequencyUIHandler.java | 19 +++++- .../species/frequency/SpeciesFrequencyUIModel.java | 20 +++++++ 8 files changed, 203 insertions(+), 66 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit 6c9bd2d8bf4a25f49b21725c387d37b95c88c2c7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:20:15 2014 +0100 ajout du comportement pour l'ecran benthos --- .../frequency/BenthosFrequencyTableModel.java | 67 ++++++++++++++++------ .../benthos/frequency/BenthosFrequencyUI.css | 4 +- .../frequency/BenthosFrequencyUIHandler.java | 66 +++++++++++++-------- .../benthos/frequency/BenthosFrequencyUIModel.java | 20 +++++++ 4 files changed, 112 insertions(+), 45 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java index e3bac3f..714d3f0 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java @@ -72,6 +72,7 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be protected final WeightUnit weightUnit; protected final PropertyChangeListener rowPropertyChangeListener; + protected final PropertyChangeListener onLengthStepChangedListener;; public BenthosFrequencyTableModel(WeightUnit weightUnit, TableColumnModelExt columnModel, @@ -82,10 +83,54 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be this.uiModel = uiModel; this.rowCache = Maps.newTreeMap(); this.rowPropertyChangeListener = rowPropertyChangeListener; + this.onLengthStepChangedListener = new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Float oldValue = (Float) evt.getOldValue(); + if (oldValue != null) { + rowCache.remove(oldValue); + } + BenthosFrequencyRowModel row = (BenthosFrequencyRowModel) evt.getSource(); + Float lengthStep = row.getLengthStep(); + if (lengthStep != null) { + rowCache.put(lengthStep, row); + } + } + }; setNoneEditableCols(); } @Override + protected void onRowAdded(int rowIndex, BenthosFrequencyRowModel newValue) { + recomputeCanEditLengthStep(); + } + + public void recomputeCanEditLengthStep() { + + boolean result = true; + + for (BenthosFrequencyRowModel row : rows) { + + if (row.isEmpty()) { + // la ligne est vide + continue; + } + if (row.getLengthStep() == null || row.getNumber() == null) { + // la ligne n'est pas complete + continue; + } + + // une ligne non vide et complete a ete trouvee + // on ne peut plus editer + result = false; + + } + + uiModel.setCanEditLengthStep(result); + + } + + @Override public BenthosFrequencyRowModel createNewRow() { Float defaultStep = null; @@ -95,28 +140,12 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be BenthosFrequencyRowModel rowModel = getEntry(rowCount - 1); Float lengthStep = rowModel.getLengthStep(); if (lengthStep != null) { - defaultStep = uiModel.getLengthStep( - lengthStep + uiModel.getStep()); + defaultStep = uiModel.getLengthStep(lengthStep + uiModel.getStep()); } } - BenthosFrequencyRowModel result = - new BenthosFrequencyRowModel(weightUnit); - result.addPropertyChangeListener(BenthosFrequencyRowModel.PROPERTY_LENGTH_STEP, - new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Float oldValue = (Float) evt.getOldValue(); - if (oldValue != null) { - rowCache.remove(oldValue); - } - BenthosFrequencyRowModel row = (BenthosFrequencyRowModel) evt.getSource(); - Float lengthStep = row.getLengthStep(); - if (lengthStep != null) { - rowCache.put(lengthStep, row); - } - } - }); + BenthosFrequencyRowModel result = new BenthosFrequencyRowModel(weightUnit); + result.addPropertyChangeListener(BenthosFrequencyRowModel.PROPERTY_LENGTH_STEP, onLengthStepChangedListener); result.addPropertyChangeListener(rowPropertyChangeListener); result.setLengthStepCaracteristic(uiModel.getLengthStepCaracteristic()); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css index 169c3a0..5a85bdf 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css @@ -56,7 +56,7 @@ ComputableDataEditor { useFloat: true; numberPattern: {DECIMAL1_PATTERN}; bean: {model}; - enabled: {!model.isSimpleCountingMode()}; + enabled: {!model.isSimpleCountingMode() && model.isCanEditLengthStep()}; _selectOnFocus: true; _validatorLabel: {t("tutti.editBenthosFrequencies.field.step")}; _help: {"tutti.editBenthosFrequencies.field.step.help"}; @@ -104,7 +104,7 @@ ComputableDataEditor { #lengthStepCaracteristicComboBox { property: lengthStepCaracteristic; selectedItem: {model.getLengthStepCaracteristic()}; - enabled: {!model.isSimpleCountingMode()}; + enabled: {!model.isSimpleCountingMode() && model.isCanEditLengthStep()}; _validatorLabel: {t("tutti.editBenthosFrequencies.field.lengthStepCaracteristic")}; _help: {"tutti.editBenthosFrequencies.field.lengthStepCaracteristic.help"}; } 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 77a7e7b..518e48d 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 @@ -25,45 +25,48 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyTableModel; -import fr.ifremer.tutti.ui.swing.util.TuttiNumberTickUnitSource; -import fr.ifremer.tutti.util.Numbers; -import org.jdesktop.swingx.decorator.HighlightPredicate; -import org.jdesktop.swingx.decorator.Highlighter; -import org.jdesktop.swingx.table.TableColumnExt; -import org.jfree.chart.ChartFactory; -import org.jfree.chart.ChartPanel; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.axis.NumberTickUnitSource; -import org.jfree.chart.axis.ValueAxis; -import org.jfree.data.xy.XYSeries; -import org.jfree.data.xy.XYSeriesCollection; -import org.nuiton.jaxx.application.swing.util.Cancelable; -import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler; 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.TuttiBeanMonitor; +import fr.ifremer.tutti.ui.swing.util.TuttiNumberTickUnitSource; import fr.ifremer.tutti.ui.swing.util.TuttiUI; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; +import fr.ifremer.tutti.util.Numbers; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; +import org.jdesktop.swingx.decorator.HighlightPredicate; +import org.jdesktop.swingx.decorator.Highlighter; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; +import org.jdesktop.swingx.table.TableColumnExt; +import org.jfree.chart.ChartFactory; +import org.jfree.chart.ChartPanel; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.axis.NumberTickUnitSource; +import org.jfree.chart.axis.ValueAxis; +import org.jfree.data.xy.XYSeries; +import org.jfree.data.xy.XYSeriesCollection; +import org.nuiton.jaxx.application.swing.util.Cancelable; -import javax.swing.*; -import javax.swing.table.TableColumn; -import java.awt.*; +import javax.swing.JComponent; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JSplitPane; +import javax.swing.JTextField; +import javax.swing.SwingUtilities; +import java.awt.BorderLayout; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; @@ -168,6 +171,7 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth } } model.recomputeTotalNumberAndWeight(); + getTableModel().recomputeCanEditLengthStep(); } @Override @@ -186,6 +190,7 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth model.updateRowWithWeight(row); boolean lengthStepModified = BenthosFrequencyRowModel.PROPERTY_LENGTH_STEP.equals(propertyName); + boolean numberModified = BenthosFrequencyRowModel.PROPERTY_NUMBER.equals(propertyName); if (lengthStepModified) { Float lengthStepToDec = (Float) oldValue; @@ -223,6 +228,11 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth recomputeRowValidState(row); } model.updateEmptyRow(row); + + if (lengthStepModified || numberModified) { + + getTableModel().recomputeCanEditLengthStep(); + } } @Override @@ -832,6 +842,7 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth /** * Decrement the frequency of the lengthstep of the row + * * @param logRow */ public void decrementLengthStep(BenthosFrequencyLogRowModel logRow) { @@ -840,10 +851,17 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth BenthosFrequencyRowModel speciesFrequencyRowModel = tableModel.getRowCache().get(logRow.getLengthStep()); if (speciesFrequencyRowModel != null) { Integer number = speciesFrequencyRowModel.getNumber(); - if (number != null && number > 0) { - speciesFrequencyRowModel.setNumber(number - 1); + if (number != null) { + + if (number > 1) { + speciesFrequencyRowModel.setNumber(number - 1); + } else { + speciesFrequencyRowModel.setNumber(null); + } + tableModel.fireTableDataChanged(); } + tableModel.recomputeCanEditLengthStep(); } BenthosFrequencyLogsTableModel logsTableModel = (BenthosFrequencyLogsTableModel) getUI().getLogsTable().getModel(); @@ -993,10 +1011,10 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth dataset.setIntervalWidth(step); chart = ChartFactory.createXYBarChart(null, - t("tutti.editSpeciesFrequencies.table.header.lengthStep"), - false, - t("tutti.editSpeciesFrequencies.table.header.number"), - dataset); + t("tutti.editSpeciesFrequencies.table.header.lengthStep"), + false, + t("tutti.editSpeciesFrequencies.table.header.number"), + dataset); chart.clearSubtitles(); ValueAxis rangeAxis = chart.getXYPlot().getRangeAxis(); 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 674d3a1..0966ffa 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 @@ -83,6 +83,8 @@ public class BenthosFrequencyUIModel extends AbstractTuttiTableUIModel<BenthosBa public static final String PROPERTY_NEXT_EDITABLE_ROW_INDEX = "nextEditableRowIndex"; + public static final String PROPERTY_CAN_EDIT_LENGTH_STEP = "canEditLengthStep"; + /** * Fill mode. * @@ -183,6 +185,14 @@ public class BenthosFrequencyUIModel extends AbstractTuttiTableUIModel<BenthosBa */ protected Map<Float, MutableInt> nbOfRowsByLengthStep = new HashMap<Float, MutableInt>(); + /** + * Can edit length step? (only if no row is filled). + * see https://forge.codelutin.com/issues/5694 + * + * @since 3.11 + */ + protected boolean canEditLengthStep = true; + public BenthosFrequencyUIModel(WeightUnit weightUnit, SampleCategoryModel sampleCategoryModel) { super(BenthosBatchRowModel.class, null, null); @@ -278,6 +288,16 @@ public class BenthosFrequencyUIModel extends AbstractTuttiTableUIModel<BenthosBa firePropertyChange(PROPERTY_SIMPLE_COUNT, oldValue, simpleCount); } + public boolean isCanEditLengthStep() { + return canEditLengthStep; + } + + public void setCanEditLengthStep(boolean canEditLengthStep) { + Object oldValue = isCanEditLengthStep(); + this.canEditLengthStep = canEditLengthStep; + firePropertyChange(PROPERTY_CAN_EDIT_LENGTH_STEP, oldValue, canEditLengthStep); + } + public Integer getNextEditableRowIndex() { return nextEditableRowIndex; } -- 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit cd91569f09a824900bae3d19ddbe9b5a2332ca06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:32:19 2014 +0100 ajout du comportement pour l'ecran espece --- .../frequency/SpeciesFrequencyTableModel.java | 67 ++++++++++++++++------ .../species/frequency/SpeciesFrequencyUI.css | 4 +- .../frequency/SpeciesFrequencyUIHandler.java | 19 +++++- .../species/frequency/SpeciesFrequencyUIModel.java | 20 +++++++ 4 files changed, 89 insertions(+), 21 deletions(-) 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 0ac5ae6..6efd894 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 @@ -24,6 +24,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency; import com.google.common.collect.Maps; import fr.ifremer.tutti.type.WeightUnit; +import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyRowModel; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import org.jdesktop.swingx.table.TableColumnModelExt; @@ -72,6 +73,7 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp protected final WeightUnit weightUnit; protected final PropertyChangeListener rowPropertyChangeListener; + protected final PropertyChangeListener onLengthStepChangedListener; public SpeciesFrequencyTableModel(WeightUnit weightUnit, TableColumnModelExt columnModel, @@ -82,10 +84,54 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp this.uiModel = uiModel; this.rowCache = Maps.newTreeMap(); this.rowPropertyChangeListener = rowPropertyChangeListener; + this.onLengthStepChangedListener = new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Float oldValue = (Float) evt.getOldValue(); + if (oldValue != null) { + rowCache.remove(oldValue); + } + SpeciesFrequencyRowModel row = (SpeciesFrequencyRowModel) evt.getSource(); + Float lengthStep = row.getLengthStep(); + if (lengthStep != null) { + rowCache.put(lengthStep, row); + } + } + }; setNoneEditableCols(); } @Override + protected void onRowAdded(int rowIndex, SpeciesFrequencyRowModel newValue) { + recomputeCanEditLengthStep(); + } + + public void recomputeCanEditLengthStep() { + + boolean result = true; + + for (SpeciesFrequencyRowModel row : rows) { + + if (row.isEmpty()) { + // la ligne est vide + continue; + } + if (row.getLengthStep() == null || row.getNumber() == null) { + // la ligne n'est pas complete + continue; + } + + // une ligne non vide et complete a ete trouvee + // on ne peut plus editer + result = false; + + } + + uiModel.setCanEditLengthStep(result); + + } + + @Override public SpeciesFrequencyRowModel createNewRow() { Float defaultStep = null; @@ -99,23 +145,8 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp lengthStep + uiModel.getStep()); } } - SpeciesFrequencyRowModel result = - new SpeciesFrequencyRowModel(weightUnit); - result.addPropertyChangeListener(SpeciesFrequencyRowModel.PROPERTY_LENGTH_STEP, - new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Float oldValue = (Float) evt.getOldValue(); - if (oldValue != null) { - rowCache.remove(oldValue); - } - SpeciesFrequencyRowModel row = (SpeciesFrequencyRowModel) evt.getSource(); - Float lengthStep = row.getLengthStep(); - if (lengthStep != null) { - rowCache.put(lengthStep, row); - } - } - }); + SpeciesFrequencyRowModel result = new SpeciesFrequencyRowModel(weightUnit); + result.addPropertyChangeListener(SpeciesFrequencyRowModel.PROPERTY_LENGTH_STEP,onLengthStepChangedListener); result.addPropertyChangeListener(rowPropertyChangeListener); @@ -151,5 +182,7 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp rowCache.put(lengthStep, row); } } + + recomputeCanEditLengthStep(); } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css index 395a20e..ab2f490 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css @@ -56,7 +56,7 @@ ComputableDataEditor { useFloat: true; numberPattern: {DECIMAL1_PATTERN}; bean: {model}; - enabled: {!model.isSimpleCountingMode()}; + enabled: {!model.isSimpleCountingMode() && model.isCanEditLengthStep()}; _selectOnFocus: true; _validatorLabel: {t("tutti.editSpeciesFrequencies.field.step")}; _help: {"tutti.editSpeciesFrequencies.field.step.help"}; @@ -104,7 +104,7 @@ ComputableDataEditor { #lengthStepCaracteristicComboBox { property: lengthStepCaracteristic; selectedItem: {model.getLengthStepCaracteristic()}; - enabled: {!model.isSimpleCountingMode()}; + enabled: {!model.isSimpleCountingMode() && model.isCanEditLengthStep()}; _validatorLabel: {t("tutti.editSpeciesFrequencies.field.lengthStepCaracteristic")}; _help: {"tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.help"}; } 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 9c4516e..7de2882 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 @@ -38,6 +38,7 @@ import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.FrequencyConfigurationMode; +import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyUIModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyCellComponent.FrequencyCellEditor; @@ -226,6 +227,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci model.updateRowWithWeight(row); boolean lengthStepModified = SpeciesFrequencyRowModel.PROPERTY_LENGTH_STEP.equals(propertyName); + boolean numberModified = BenthosFrequencyRowModel.PROPERTY_NUMBER.equals(propertyName); if (lengthStepModified) { Float lengthStepToDec = (Float) oldValue; @@ -264,6 +266,12 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } model.updateEmptyRow(row); + + if (lengthStepModified || numberModified) { + + getTableModel().recomputeCanEditLengthStep(); + } + } @Override @@ -922,10 +930,17 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci SpeciesFrequencyRowModel speciesFrequencyRowModel = tableModel.getRowCache().get(logRow.getLengthStep()); if (speciesFrequencyRowModel != null) { Integer number = speciesFrequencyRowModel.getNumber(); - if (number != null && number > 0) { - speciesFrequencyRowModel.setNumber(number - 1); + if (number != null) { + + if (number > 1) { + speciesFrequencyRowModel.setNumber(number - 1); + } else { + speciesFrequencyRowModel.setNumber(null); + } + tableModel.fireTableDataChanged(); } + tableModel.recomputeCanEditLengthStep(); } SpeciesFrequencyLogsTableModel logsTableModel = (SpeciesFrequencyLogsTableModel) getUI().getLogsTable().getModel(); 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 85b71a7..8d9b11d 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 @@ -83,6 +83,8 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public static final String PROPERTY_NEXT_EDITABLE_ROW_INDEX = "nextEditableRowIndex"; + public static final String PROPERTY_CAN_EDIT_LENGTH_STEP = "canEditLengthStep"; + /** * Fill mode. * @@ -183,6 +185,14 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa */ protected Map<Integer, MutableInt> nbOfRowsByLengthStep = new HashMap<Integer, MutableInt>(); + /** + * Can edit length step? (only if no row is filled). + * see https://forge.codelutin.com/issues/5694 + * + * @since 3.11 + */ + protected boolean canEditLengthStep = true; + public SpeciesFrequencyUIModel(WeightUnit weightUnit, SampleCategoryModel sampleCategoryModel) { super(SpeciesBatchRowModel.class, null, null); @@ -278,6 +288,16 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa firePropertyChange(PROPERTY_SIMPLE_COUNT, oldValue, simpleCount); } + public boolean isCanEditLengthStep() { + return canEditLengthStep; + } + + public void setCanEditLengthStep(boolean canEditLengthStep) { + Object oldValue = isCanEditLengthStep(); + this.canEditLengthStep = canEditLengthStep; + firePropertyChange(PROPERTY_CAN_EDIT_LENGTH_STEP, oldValue, canEditLengthStep); + } + public Integer getNextEditableRowIndex() { return nextEditableRowIndex; } -- 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit b602a063319f03866a960381c5480c94516fe3e3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:32:39 2014 +0100 amelioration pour lecran benthos --- .../operation/catches/benthos/frequency/BenthosFrequencyTableModel.java | 2 ++ .../operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java index 714d3f0..e87b7fd 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java @@ -180,5 +180,7 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be rowCache.put(lengthStep, row); } } + + recomputeCanEditLengthStep(); } } 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 518e48d..d9ecc9f 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 @@ -171,7 +171,6 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth } } model.recomputeTotalNumberAndWeight(); - getTableModel().recomputeCanEditLengthStep(); } @Override @@ -233,6 +232,7 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth getTableModel().recomputeCanEditLengthStep(); } + } @Override -- 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 develop in repository tutti. See http://git.codelutin.com/tutti.git commit c583700d278c41e759bf6f0c52477a9a5087350b Merge: 7597d7a b602a06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 31 21:33:03 2014 +0100 fixes #6370 [MENSURATIONS] empêcher toute modification de la méthode de mensuration et du pas de mesure si il y a au moins une données dans le tableau des mensurations .../frequency/BenthosFrequencyTableModel.java | 69 ++++++++++++++++------ .../benthos/frequency/BenthosFrequencyUI.css | 4 +- .../frequency/BenthosFrequencyUIHandler.java | 66 +++++++++++++-------- .../benthos/frequency/BenthosFrequencyUIModel.java | 20 +++++++ .../frequency/SpeciesFrequencyTableModel.java | 67 +++++++++++++++------ .../species/frequency/SpeciesFrequencyUI.css | 4 +- .../frequency/SpeciesFrequencyUIHandler.java | 19 +++++- .../species/frequency/SpeciesFrequencyUIModel.java | 20 +++++++ 8 files changed, 203 insertions(+), 66 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm