02/02: n'activer RTP que si méthode de mensuration renseignée. Donc dans la navigation flèche avant flèche arrière penser à "sauter" les espèces sans méthode de mensuration (fixes #7937)
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7937 in repository tutti. See http://git.codelutin.com/tutti.git commit 9c3e9d43cdce327361cf79b1ff6f0fa99cc34775 Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 25 18:27:44 2016 +0100 n'activer RTP que si méthode de mensuration renseignée. Donc dans la navigation flèche avant flèche arrière penser à "sauter" les espèces sans méthode de mensuration (fixes #7937) --- .../protocol/EditProtocolSpeciesTableModel.java | 42 ++++++++++++++++++++++ .../content/protocol/EditProtocolUIHandler.java | 3 -- .../swing/content/protocol/rtp/RtpCellEditor.java | 4 +-- .../content/protocol/rtp/RtpEditorUIHandler.java | 8 ++--- .../content/protocol/rtp/RtpEditorUIModel.java | 32 ++++++++++++++--- 5 files changed, 74 insertions(+), 15 deletions(-) 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 e1aae83..f7d85e3 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 @@ -29,6 +29,8 @@ import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -98,6 +100,25 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel result.setCountIfNoFrequencyEnabled(true); result.setCalcifySampleEnabled(true); result.setValid(true); + + result.addPropertyChangeListener(EditProtocolSpeciesRowModel.PROPERTY_LENGTH_STEP_PMFM, + new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + + if (evt.getNewValue() == null) { + + EditProtocolSpeciesRowModel rowModel = (EditProtocolSpeciesRowModel) evt.getSource(); + rowModel.setRtpMale(null); + rowModel.setRtpFemale(null); + rowModel.setRtpUndefined(null); + + } + + } + }); + return result; } @@ -117,6 +138,27 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel fireTableCellUpdated(rowIndex, columnIndex); } + @Override + protected boolean isCellEditable(int rowIndex, + int columnIndex, + ColumnIdentifier<EditProtocolSpeciesRowModel> propertyName) { + + boolean result = super.isCellEditable(rowIndex, + columnIndex, + propertyName); + if (result) { + + if (USE_RTP.equals(propertyName)) { + + // must have filled a species to edit this column + EditProtocolSpeciesRowModel entry = getEntry(rowIndex); + result = entry.getLengthStepPmfm() != null; + + } + } + return result; + } + /** * Return the list of used species in the table (used to fill the * comparator cache for species sort) 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 0bf72e6..c92afd3 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 @@ -37,7 +37,6 @@ import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; import fr.ifremer.tutti.persistence.entities.protocol.OperationFieldMappingRow; -import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; @@ -347,8 +346,6 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI this.ui.getBenthosComboBox().reset(); this.ui.getCaracteristicMappingComboBox().reset(); - Decorator<Rtp> rtpDecorator = getDecorator(Rtp.class, null); - { // create species table model diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java index 6e063a7..883b7ee 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java @@ -55,8 +55,8 @@ public class RtpCellEditor extends AbstractCellEditor implements TableCellEditor public RtpCellEditor(EditProtocolUI context) { - this.editorButton = new RtpButton(context); - this.editorButton.setBorder(new LineBorder(Color.BLACK)); + editorButton = new RtpButton(context); + editorButton.setBorder(new LineBorder(Color.BLACK)); addCellEditorListener(new CellEditorListener() { @Override public void editingStopped(ChangeEvent e) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java index 2dcfb9e..95ba647 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java @@ -29,7 +29,6 @@ import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import jaxx.runtime.swing.ComponentMover; -import jaxx.runtime.swing.ComponentResizer; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -69,12 +68,11 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, super.initUI(ui); ui.pack(); - ui.setResizable(true); - ComponentResizer cr = new ComponentResizer(); - cr.registerComponent(ui); +// ComponentResizer cr = new ComponentResizer(); +// cr.registerComponent(ui); ComponentMover cm = new ComponentMover(); - cm.setDragInsets(cr.getDragInsets()); +// cm.setDragInsets(cr.getDragInsets()); cm.registerComponent(ui); ui.getBodyPanel().setRightDecoration(ui.getHeaderToolBar()); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java index 1b29a0f..cc2981b 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java @@ -34,6 +34,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.RowSorter; +import java.util.ArrayList; +import java.util.List; /** * Created on 14/01/16. @@ -68,7 +70,9 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci protected EditProtocolSpeciesTableModel tableModel; - protected RowSorter rowSorter; + // list of the indexes of the rows in the table model + // only the rows with lengthstep caracteristics are in the list + protected List<Integer> rows = new ArrayList<>(); protected int row = -1; @@ -180,8 +184,26 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci public void setRowModel(EditProtocolSpeciesTableModel tableModel, RowSorter rowSorter, int row) { this.tableModel = tableModel; - this.rowSorter = rowSorter; - setRowModel(row); + + int rowIndex = 0; + + for (int i = 0 ; i < tableModel.getRowCount() ; i++) { + + int rowIndexInModel = rowSorter.convertRowIndexToModel(i); + EditProtocolSpeciesRowModel rowModel = tableModel.getEntry(rowIndexInModel); + + if (rowModel.getLengthStepPmfm() != null ) { + + rows.add(rowIndexInModel); + if (row == i) { + rowIndex = rows.size() - 1; + } + + } + + } + + setRowModel(rowIndex); } public void setRowModel(int row) { @@ -192,7 +214,7 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci setRow(row); setFirstRow(row == 0); - setLastRow(row == tableModel.getRowCount() - 1); + setLastRow(row == rows.size() - 1); EditProtocolSpeciesRowModel rowModel = getRowModel(); @@ -212,7 +234,7 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci } public EditProtocolSpeciesRowModel getRowModel() { - int rowIndex = rowSorter.convertRowIndexToModel(row); + int rowIndex = rows.get(row); return tableModel.getEntry(rowIndex); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm