branch feature/8013 created (now 26486d6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8013 in repository tutti. See http://git.codelutin.com/tutti.git at 26486d6 3. ajouter colonne « observations individuelles ». Cette case ne peut être cochée que si « méthode de mensuration » est renseignée refs #8013 This branch includes the following new commits: new 26486d6 3. ajouter colonne « observations individuelles ». Cette case ne peut être cochée que si « méthode de mensuration » est renseignée refs #8013 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 26486d6d35af829c467f594d03ece930b1bfc086 Author: Kevin Morin <morin@codelutin.com> Date: Mon Feb 22 18:07:53 2016 +0100 3. ajouter colonne « observations individuelles ». Cette case ne peut être cochée que si « méthode de mensuration » est renseignée refs #8013 -- 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/8013 in repository tutti. See http://git.codelutin.com/tutti.git commit 26486d6d35af829c467f594d03ece930b1bfc086 Author: Kevin Morin <morin@codelutin.com> Date: Mon Feb 22 18:07:53 2016 +0100 3. ajouter colonne « observations individuelles ». Cette case ne peut être cochée que si « méthode de mensuration » est renseignée refs #8013 --- .../src/main/xmi/tutti-persistence.zargo | Bin 62059 -> 62109 bytes .../protocol/EditProtocolSpeciesRowModel.java | 14 ++++++ .../protocol/EditProtocolSpeciesTableModel.java | 7 ++- .../content/protocol/EditProtocolUIHandler.java | 56 +++++++++++++++++++-- .../resources/i18n/tutti-ui-swing_en_GB.properties | 2 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 2 + 6 files changed, 77 insertions(+), 4 deletions(-) diff --git a/tutti-persistence/src/main/xmi/tutti-persistence.zargo b/tutti-persistence/src/main/xmi/tutti-persistence.zargo index 71c1af7..350d894 100644 Binary files a/tutti-persistence/src/main/xmi/tutti-persistence.zargo and b/tutti-persistence/src/main/xmi/tutti-persistence.zargo differ diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java index d087790..f53149f 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java @@ -73,6 +73,8 @@ public class EditProtocolSpeciesRowModel extends AbstractTuttiBeanUIModel<Specie protected List<Integer> mandatorySampleCategoryId; + protected boolean individualObservationEnabled; + protected Rtp rtpMale; protected Rtp rtpFemale; @@ -263,6 +265,18 @@ public class EditProtocolSpeciesRowModel extends AbstractTuttiBeanUIModel<Specie firePropertyChange(PROPERTY_MANDATORY_SAMPLE_CATEGORY_ID, null, mandatorySampleCategoryId); } + @Override + public boolean isIndividualObservationEnabled() { + return individualObservationEnabled; + } + + @Override + public void setIndividualObservationEnabled(boolean individualObservationEnabled) { + Object oldValue = isIndividualObservationEnabled(); + this.individualObservationEnabled = individualObservationEnabled; + firePropertyChange(PROPERTY_INDIVIDUAL_OBSERVATION_ENABLED, oldValue, individualObservationEnabled); + } + public boolean isUseRtp() { return withRtpFemale() && withRtpMale() && withRtpUndefined(); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java index f7d85e3..daefffa 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java @@ -71,6 +71,11 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel n("tutti.editProtocol.table.header.calcifySample"), n("tutti.editProtocol.table.header.calcifySample.tip")); + public static final ColumnIdentifier<EditProtocolSpeciesRowModel> INDIVIDUAL_OBSERVATION_ENABLED = ColumnIdentifier.newId( + EditProtocolSpeciesRowModel.PROPERTY_INDIVIDUAL_OBSERVATION_ENABLED, + n("tutti.editProtocol.table.header.individualObservation"), + n("tutti.editProtocol.table.header.individualObservation.tip")); + public static final ColumnIdentifier<EditProtocolSpeciesRowModel> USE_RTP = ColumnIdentifier.newId( EditProtocolSpeciesRowModel.PROPERTY_USE_RTP, n("tutti.editProtocol.table.header.useRtp"), @@ -148,7 +153,7 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel propertyName); if (result) { - if (USE_RTP.equals(propertyName)) { + if (USE_RTP.equals(propertyName) || INDIVIDUAL_OBSERVATION_ENABLED.equals(propertyName)) { // must have filled a species to edit this column EditProtocolSpeciesRowModel entry = getEntry(rowIndex); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index 1783f92..2e41a1e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -87,10 +87,13 @@ import javax.swing.JComponent; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; +import javax.swing.event.CellEditorListener; +import javax.swing.event.ChangeEvent; import javax.swing.event.ListSelectionListener; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.JTableHeader; +import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumnModel; import java.awt.Color; import java.awt.Component; @@ -377,7 +380,7 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI EditProtocolSpeciesTableModel.SURVEY_CODE_ID); speciesSurveyCodeColumn.setSortable(true); - addLengthClassesColumnToModel(columnModel, model.getLengthClassesPmfmId()); + addLengthClassesColumnToModel(columnModel, model.getLengthClassesPmfmId(), table); addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.WEIGHT_ENABLED, table); addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.COUNT_IF_NO_FREQUENCY_ENABLED, table); @@ -400,6 +403,9 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table); + + addIndividualObservationColumnToModel(table, columnModel); + addColumnToModel(columnModel, RtpCellEditor.newEditor(ui), new RtpCellRenderer(), @@ -438,7 +444,7 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI EditProtocolSpeciesTableModel.SURVEY_CODE_ID); speciesSurveyCodeColumn.setSortable(true); - addLengthClassesColumnToModel(columnModel, model.getLengthClassesPmfmId()); + addLengthClassesColumnToModel(columnModel, model.getLengthClassesPmfmId(), table); addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.WEIGHT_ENABLED, table); addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.COUNT_IF_NO_FREQUENCY_ENABLED, table); @@ -462,6 +468,8 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table); + addIndividualObservationColumnToModel(table, columnModel); + addColumnToModel(columnModel, RtpCellEditor.newEditor(ui), new RtpCellRenderer(), @@ -679,6 +687,28 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } + protected void addIndividualObservationColumnToModel(JXTable table, DefaultTableColumnModelExt columnModel) { + TableCellRenderer renderer = new TableCellRenderer() { + + TableCellRenderer delegate = table.getDefaultRenderer(Boolean.class); + + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, int column) { + Component result = delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + result.setEnabled(table.isCellEditable(row, column)); + return result; + } + }; + addColumnToModel(columnModel, + table.getDefaultEditor(Boolean.class), + renderer, + EditProtocolSpeciesTableModel.INDIVIDUAL_OBSERVATION_ENABLED); + } + protected void initAvailableZonesModel() { PersistenceService persistenceService = getPersistenceService(); @@ -1040,7 +1070,8 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } protected void addLengthClassesColumnToModel(TableColumnModel model, - List<String> selectedIds) { + List<String> selectedIds, + JTable table) { Decorator<Caracteristic> decorator = getDecorator(Caracteristic.class, null); @@ -1057,6 +1088,25 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI ObjectToStringConverter converter = BeanUIUtil.newDecoratedObjectToStringConverter(decorator); BeanUIUtil.decorate(comboBox, converter); ComboBoxCellEditor editor = new ComboBoxCellEditor(comboBox); + editor.addCellEditorListener(new CellEditorListener() { + + @Override + public void editingStopped(ChangeEvent e) { + EditProtocolSpeciesTableModel tableModel = (EditProtocolSpeciesTableModel) table.getModel(); + EditProtocolSpeciesRowModel selectedRow = tableModel.getRows().get(table.convertRowIndexToModel(table.getSelectedRow())); + Caracteristic lengthStepPmfm = selectedRow.getLengthStepPmfm(); + boolean withLengthStepPmfm = lengthStepPmfm != null; + selectedRow.setCountIfNoFrequencyEnabled(withLengthStepPmfm); + if (!withLengthStepPmfm) { + selectedRow.setIndividualObservationEnabled(false); + } + } + + @Override + public void editingCanceled(ChangeEvent e) { + + } + }); addColumnToModel(model, editor, 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 9facbd3..95fe468 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 @@ -1166,6 +1166,8 @@ tutti.editProtocol.table.header.caracteristics.type= tutti.editProtocol.table.header.caracteristics.type.tip= tutti.editProtocol.table.header.countIfNoFrequency= tutti.editProtocol.table.header.countIfNoFrequency.tip= +tutti.editProtocol.table.header.individualObservation= +tutti.editProtocol.table.header.individualObservation.tip= tutti.editProtocol.table.header.lengthStep= tutti.editProtocol.table.header.lengthStep.tip= tutti.editProtocol.table.header.operationFields.field= 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 d20fb7d..0d2c2ec 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 @@ -1113,6 +1113,8 @@ tutti.editProtocol.table.header.caracteristics.type=Onglet tutti.editProtocol.table.header.caracteristics.type.tip=Onglet tutti.editProtocol.table.header.countIfNoFrequency=Dénombrement tutti.editProtocol.table.header.countIfNoFrequency.tip=L'espèce doit elle être dénombrée ? +tutti.editProtocol.table.header.individualObservation=Obs. indiv. +tutti.editProtocol.table.header.individualObservation.tip=L'espèce accepte-t-elle des observations individuelles ? tutti.editProtocol.table.header.lengthStep=Mode de mensuration tutti.editProtocol.table.header.lengthStep.tip=Comment mesurer les classes de taille ? (si vide alors pas de mesure) tutti.editProtocol.table.header.operationFields.field=Champ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm