This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit d7fba14f856776fc96165b6511b70a7e0cf0d900 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Oct 27 20:06:35 2016 +0200 Ajout du menu contextuel pour changer l'ordre des captures --- .../impl/longline/CatchLonglineTableModel.java | 35 ++++++++++++++---- .../table/impl/longline/CatchLonglineUI.jaxx | 5 +++ .../table/impl/longline/CatchLonglineUI.jcss | 13 +++++++ .../impl/longline/CatchLonglineUIHandler.java | 42 ++++++++++++++++++++++ .../i18n/application-swing_en_GB.properties | 4 +++ .../i18n/application-swing_es_ES.properties | 4 +++ .../i18n/application-swing_fr_FR.properties | 4 +++ 7 files changed, 100 insertions(+), 7 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java index c03a5df..6068bb7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineTableModel.java @@ -22,17 +22,18 @@ package fr.ird.observe.application.swing.ui.content.table.impl.longline; * #L% */ +import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; +import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; +import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import fr.ird.observe.services.dto.longline.CatchLonglineDto; import fr.ird.observe.services.dto.longline.CatchLonglineHelper; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; import fr.ird.observe.services.dto.longline.SizeMeasureDto; import fr.ird.observe.services.dto.longline.WeightMeasureDto; -import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; -import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; -import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.swing.SwingUtilities; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; @@ -85,16 +86,16 @@ public class CatchLonglineTableModel extends ContentTableModel<SetLonglineCatchD model.getSizeMeasuresTableModel().storeInCacheForRow(editingRow); List<SizeMeasureDto> sizeMeasures = model.getSizeMeasuresTableModel().getData().stream() - .filter(sizeMeasureDto -> sizeMeasureDto.getSizeMeasureType() != null) - .collect(Collectors.toList()); + .filter(sizeMeasureDto -> sizeMeasureDto.getSizeMeasureType() != null) + .collect(Collectors.toList()); getRowBean().setSizeMeasure(sizeMeasures); model.getWeightMeasuresTableModel().storeInCacheForRow(editingRow); List<WeightMeasureDto> weightMeasures = model.getWeightMeasuresTableModel().getData().stream() - .filter(weightMeasureDto -> weightMeasureDto.getWeightMeasureType() != null) - .collect(Collectors.toList()); + .filter(weightMeasureDto -> weightMeasureDto.getWeightMeasureType() != null) + .collect(Collectors.toList()); getRowBean().setWeightMeasure(weightMeasures); @@ -158,4 +159,24 @@ public class CatchLonglineTableModel extends ContentTableModel<SetLonglineCatchD protected CatchLonglineUIModel getModel() { return (CatchLonglineUIModel) super.getModel(); } + + public void moveUp(int selectedRow) { + CatchLonglineDto remove = data.remove(selectedRow); + data.add(selectedRow - 1, remove); + fireTableRowsUpdated(selectedRow - 1, selectedRow); + setSelectedRow(selectedRow - 1); + getModel().setCanSaveRow(false); + getModel().setCanResetRow(false); + getModel().setModified(true); + } + + public void moveDown(int selectedRow) { + CatchLonglineDto remove = data.remove(selectedRow); + data.add(selectedRow + 1, remove); + fireTableRowsUpdated(selectedRow, selectedRow + 1); + setSelectedRow(selectedRow + 1); + getModel().setCanSaveRow(false); + getModel().setCanResetRow(false); + getModel().setModified(true); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx index 45ab0cd..14815cc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jaxx @@ -124,6 +124,11 @@ <JMenuItem id='deleteSelectedWeightMeasure' onActionPerformed='getHandler().deleteSelectedWeightMeasure()'/> </JPopupMenu> + <JPopupMenu id='catchLonglinesPopup'> + <JMenuItem id='moveCatchLonglineUp' onActionPerformed='getHandler().moveCatchLonglineUp()'/> + <JMenuItem id='moveCatchLonglineDown' onActionPerformed='getHandler().moveCatchLonglineDown()'/> + </JPopupMenu> + <ButtonGroup id='acquisitionModeGroup' onStateChanged='getHandler().updateCatchAcquisitionMode((CatchAcquisitionModeEnum) acquisitionModeGroup.getSelectedValue())'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jcss index 0bb7962..ed5c587 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUI.jcss @@ -28,6 +28,19 @@ /*canResetRow:{getHandler().canResetRow(tableModel.isModified() , validatorTable.isChanged())};*/ } +#moveCatchLonglineUp { + text: "observe.content.catchLongline.action.moveCatchLonglineUp"; + toolTipText: "observe.content.catchLongline.action.moveCatchLonglineUp.tip"; + actionIcon: go-up; +} + +#moveCatchLonglineDown { + text: "observe.content.catchLongline.action.moveCatchLonglineDown"; + toolTipText: "observe.content.catchLongline.action.moveCatchLonglineDown.tip"; + actionIcon: go-down; +} + + /* ***************************************************************************** */ /* CARACTERISTIC TAB ********************************************************** */ /* ***************************************************************************** */ diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 9d06255..be10439 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -36,6 +36,7 @@ import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.ui.tree.node.ObserveNode; import fr.ird.observe.application.swing.ui.tree.node.TripLonglineNode; +import fr.ird.observe.application.swing.ui.util.table.AutotSelectRowAndShowPopupActionSupport; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.BasketDto; @@ -72,7 +73,10 @@ import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; +import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.SwingUtilities; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeListener; @@ -531,6 +535,8 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat UIHelper.setTableColumnRenderer(table, 9, UIHelper.newBooleanTableCellRenderer(renderer)); UIHelper.setTableColumnRenderer(table, 10, UIHelper.newStringTableCellRenderer(renderer, 10, true)); + new CatchLonglinesAutotSelectRowAndShowPopupAction(ui, ui.getTableScrollPane(), table, ui.getCatchLonglinesPopup()); + } { @@ -989,4 +995,40 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newBranchlineService(); } + public void moveCatchLonglineUp() { + int selectedRow = getUi().getTable().getSelectedRow(); + getTableModel().moveUp(selectedRow); + } + + public void moveCatchLonglineDown() { + int selectedRow = getUi().getTable().getSelectedRow(); + getTableModel().moveDown(selectedRow); + } + + static class CatchLonglinesAutotSelectRowAndShowPopupAction extends AutotSelectRowAndShowPopupActionSupport { + + private final CatchLonglineUI ui; + + public CatchLonglinesAutotSelectRowAndShowPopupAction(CatchLonglineUI ui, + JScrollPane pane, + JTable table, + JPopupMenu popup) { + super(pane, table, popup); + this.ui = ui; + } + + @Override + protected void beforeOpenPopup(int modelRowIndex, int modelColumnIndex) { + + CatchLonglineTableModel model = (CatchLonglineTableModel) getTable().getModel(); + + boolean canMoveUp = !ui.getModel().isCanSaveRow() && modelRowIndex > 0; + boolean canMoveDown = !ui.getModel().isCanSaveRow() && modelRowIndex < model.getRowCount() - 1; + + ui.getMoveCatchLonglineUp().setEnabled(canMoveUp); + ui.getMoveCatchLonglineDown().setEnabled(canMoveDown); + + } + + } } diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index ad778b1..717dd9b 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -709,6 +709,10 @@ observe.content.catchLongline.action.deleteSelectedSizeMeasure=Delete observe.content.catchLongline.action.deleteSelectedSizeMeasure.tip=Delete selected size measure observe.content.catchLongline.action.deleteSelectedWeightMeasure=Delete observe.content.catchLongline.action.deleteSelectedWeightMeasure.tip=Delete selected weight measure +observe.content.catchLongline.action.moveCatchLonglineDown=Move down +observe.content.catchLongline.action.moveCatchLonglineDown.tip=Move down the catch +observe.content.catchLongline.action.moveCatchLonglineUp=Move up +observe.content.catchLongline.action.moveCatchLonglineUp.tip=Move up the catch observe.content.catchLongline.action.new=New catch observe.content.catchLongline.action.new.tip=Create a new catch observe.content.catchLongline.action.reset.photoReferences.tip=Reset photo references diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 5132994..5807c0f 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -709,6 +709,10 @@ observe.content.catchLongline.action.deleteSelectedSizeMeasure=Eliminar observe.content.catchLongline.action.deleteSelectedSizeMeasure.tip=Eliminar la medida de tamaño observe.content.catchLongline.action.deleteSelectedWeightMeasure=Eliminar observe.content.catchLongline.action.deleteSelectedWeightMeasure.tip=Eliminar la medida de peso +observe.content.catchLongline.action.moveCatchLonglineDown=Move down \#TODO +observe.content.catchLongline.action.moveCatchLonglineDown.tip=Move down the catch \#TODO +observe.content.catchLongline.action.moveCatchLonglineUp=Move up \#TODO +observe.content.catchLongline.action.moveCatchLonglineUp.tip=Move up the catch \#TODO observe.content.catchLongline.action.new=Nueva captura observe.content.catchLongline.action.new.tip=Crear una nueva captura observe.content.catchLongline.action.reset.photoReferences.tip=Reiniciar las referencias photo diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index c236220..d622503 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -709,6 +709,10 @@ observe.content.catchLongline.action.deleteSelectedSizeMeasure=Supprimer observe.content.catchLongline.action.deleteSelectedSizeMeasure.tip=Supprimer la mesure de la taille observe.content.catchLongline.action.deleteSelectedWeightMeasure=Supprimer observe.content.catchLongline.action.deleteSelectedWeightMeasure.tip=Supprimer la mesure du poids +observe.content.catchLongline.action.moveCatchLonglineDown=Descendre +observe.content.catchLongline.action.moveCatchLonglineDown.tip=Descendre la capture +observe.content.catchLongline.action.moveCatchLonglineUp=Remonter +observe.content.catchLongline.action.moveCatchLonglineUp.tip=Remoter la capture observe.content.catchLongline.action.new=Nouvelle capture observe.content.catchLongline.action.new.tip=Créér une nouvelle capture observe.content.catchLongline.action.reset.photoReferences.tip=Réinitiliser les références photo -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.