branch feature/7491 created (now a9590d6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7491 in repository tutti. See http://git.codelutin.com/tutti.git at a9590d6 benthos : ajout de la colonne "poids individuel" non éditable en bleu italique (refs #7491) This branch includes the following new commits: new a9590d6 benthos : ajout de la colonne "poids individuel" non éditable en bleu italique (refs #7491) 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 a9590d6f419ec6f29d6880f2552bae6d4e4ddf66 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 20 18:04:05 2016 +0100 benthos : ajout de la colonne "poids individuel" non éditable en bleu italique (refs #7491) -- 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/7491 in repository tutti. See http://git.codelutin.com/tutti.git commit a9590d6f419ec6f29d6880f2552bae6d4e4ddf66 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 20 18:04:05 2016 +0100 benthos : ajout de la colonne "poids individuel" non éditable en bleu italique (refs #7491) --- .../frequency/BenthosFrequencyRowModel.java | 43 ++++++++++++++++++++++ .../frequency/BenthosFrequencyTableModel.java | 11 +++++- .../frequency/BenthosFrequencyUIHandler.java | 11 ++++++ .../table/ComputedWeightTableCellRenderer.java | 37 +++++++++++++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 1 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 1 + 6 files changed, 103 insertions(+), 1 deletion(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java index 93bf46f..d8ff981 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java @@ -53,6 +53,10 @@ public class BenthosFrequencyRowModel extends AbstractTuttiBeanUIModel<BenthosBa public static final String PROPERTY_LENGHT_STEP_CARACTERISTIC = "lengthStepCaracteristic"; + public static final String PROPERTY_INDIVIDUAL_WEIGHT = "individualWeight"; + + public static final String PROPERTY_INDIVIDUAL_WEIGHT_CONSISTENT = "individualWeightConsistent"; + /** * Length step. * @@ -75,6 +79,18 @@ public class BenthosFrequencyRowModel extends AbstractTuttiBeanUIModel<BenthosBa protected Float weight; /** + * Average weight for an individual + * @since 4.4 + */ + protected Float individualWeight; + + /** + * Is the average weight for an individual consistent + * @since 4.4 + */ + protected Boolean individualWeightConsistent; + + /** * Length step caracteristic. * * @since 0.3 @@ -198,6 +214,26 @@ public class BenthosFrequencyRowModel extends AbstractTuttiBeanUIModel<BenthosBa firePropertyChange(PROPERTY_WEIGHT, oldValue, weight); } + public Float getIndividualWeight() { + return individualWeight; + } + + public void setIndividualWeight(Float individualWeight) { + Object oldValue = getIndividualWeight(); + this.individualWeight = individualWeight; + firePropertyChange(PROPERTY_INDIVIDUAL_WEIGHT, oldValue, individualWeight); + } + + public Boolean isIndividualWeightConsistent() { + return individualWeightConsistent; + } + + public void setIndividualWeightConsistent(Boolean individualWeightConsistent) { + Object oldValue = isIndividualWeightConsistent(); + this.individualWeightConsistent = individualWeightConsistent; + firePropertyChange(PROPERTY_INDIVIDUAL_WEIGHT_CONSISTENT, oldValue, individualWeightConsistent); + } + @Override public Caracteristic getLengthStepCaracteristic() { return lengthStepCaracteristic; @@ -238,4 +274,11 @@ public class BenthosFrequencyRowModel extends AbstractTuttiBeanUIModel<BenthosBa return lengthStep == null && (weight == null || number == null); } + public void computeIndividualWeight() { + if (weight == null || number == null || number == 0) { + setIndividualWeight(null); + } else { + setIndividualWeight(weight / number); + } + } } 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 4f1fe60..0dbc1e9 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 @@ -59,6 +59,11 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be n("tutti.editBenthosFrequencies.table.header.weight"), n("tutti.editBenthosFrequencies.table.header.weight")); + public static final ColumnIdentifier<BenthosFrequencyRowModel> INDIVIDUAL_WEIGHT = ColumnIdentifier.newId( + BenthosFrequencyRowModel.PROPERTY_INDIVIDUAL_WEIGHT, + n("tutti.editBenthosFrequencies.table.header.individualWeight"), + n("tutti.editBenthosFrequencies.table.header.individualWeight")); + private final BenthosFrequencyUIModel uiModel; private final BenthosFrequencyUIModelCache modelCache; @@ -86,7 +91,7 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be this.uiModel = uiModel; this.modelCache = uiModel.cache; this.series = uiModel.dataset.getSeries(0); - setNoneEditableCols(); + setNoneEditableCols(INDIVIDUAL_WEIGHT); } @Override @@ -277,6 +282,8 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be } + row.computeIndividualWeight(); + uiModel.recomputeCanEditLengthStep(); uiModel.recomputeRowValidState(row); uiModel.updateEmptyRow(row); @@ -299,6 +306,8 @@ public class BenthosFrequencyTableModel extends AbstractApplicationTableModel<Be BenthosFrequencyRowModel row = (BenthosFrequencyRowModel) evt.getSource(); modelCache.updateRowWithWeight(row); + row.computeIndividualWeight(); + uiModel.recomputeRowsValidateState(); uiModel.updateEmptyRow(row); 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 7e540e7..ffd16b8 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 @@ -40,6 +40,7 @@ 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.ui.swing.util.table.ComputedWeightTableCellRenderer; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections4.CollectionUtils; @@ -367,6 +368,16 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth table); } + + { // Individual weight + + addColumnToModel(columnModel, + null, + new ComputedWeightTableCellRenderer(table, getConfig().getColorComputedWeights()), + BenthosFrequencyTableModel.INDIVIDUAL_WEIGHT, + weightUnit); + } + // create table model BenthosFrequencyTableModel tableModel = new BenthosFrequencyTableModel(weightUnit, columnModel, model); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/ComputedWeightTableCellRenderer.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/ComputedWeightTableCellRenderer.java new file mode 100644 index 0000000..de528f5 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/ComputedWeightTableCellRenderer.java @@ -0,0 +1,37 @@ +package fr.ifremer.tutti.ui.swing.util.table; + +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.SwingConstants; +import javax.swing.table.TableCellRenderer; +import java.awt.Color; +import java.awt.Component; +import java.awt.Font; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.4 + */ +public class ComputedWeightTableCellRenderer implements TableCellRenderer { + + protected final TableCellRenderer defaultRenderer; + + protected final Color consistentColor; + + public ComputedWeightTableCellRenderer(JTable table, Color consistentColor) { + defaultRenderer = table.getDefaultRenderer(Number.class); + this.consistentColor = consistentColor; + } + + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + Component result = defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + if(result instanceof JLabel) { + JLabel jLabel = (JLabel)result; + jLabel.setHorizontalTextPosition(SwingConstants.RIGHT); + } + + result.setForeground(consistentColor); + result.setFont(result.getFont().deriveFont(Font.ITALIC)); + return result; + } +} diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 917c711..9ee3646 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -596,6 +596,7 @@ tutti.editBenthosFrequencies.logTable.header.label= tutti.editBenthosFrequencies.logTable.removeRow.confirm.message= tutti.editBenthosFrequencies.logTable.removeRow.confirm.title= tutti.editBenthosFrequencies.simpleCountingAndFrequencies= +tutti.editBenthosFrequencies.table.header.individualWeight= tutti.editBenthosFrequencies.table.header.lengthStep= tutti.editBenthosFrequencies.table.header.number= tutti.editBenthosFrequencies.table.header.weight= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 8288461..ac0dbf6 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -568,6 +568,7 @@ tutti.editBenthosFrequencies.logTable.header.label=Logs tutti.editBenthosFrequencies.logTable.removeRow.confirm.message=Êtes-vous sûr de vouloir supprimer la mesure %s ? tutti.editBenthosFrequencies.logTable.removeRow.confirm.title=Suppression d'une mesure tutti.editBenthosFrequencies.simpleCountingAndFrequencies=Des mensurations ont été saisies dans le tableau. Saisir un simple dénombrement les effacera. +tutti.editBenthosFrequencies.table.header.individualWeight=Poids individuel tutti.editBenthosFrequencies.table.header.lengthStep=Classe de taille tutti.editBenthosFrequencies.table.header.number=Nombre tutti.editBenthosFrequencies.table.header.weight=Poids observé -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm