branch feature/5954 updated (538a1ca -> 301c1d4)
This is an automated email from the git hooks/post-receive script. New change to branch feature/5954 in repository tutti. See http://git.codelutin.com/tutti.git from 538a1ca refactoring : table des caractéristiques non éditable, ajouter les caractéristiques depuis la liste déroulante au dessus new db18c9b - ne pas proposer les caractéristiques déjà ajoutées dans d'autres onglets - possibilité de supprimer des caractéristiques dans le tableau (clic droit) new 5558cf5 correction de la suppression new 301c1d4 import The 3 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 301c1d4bfcbf01c190a9f00ffb106e206cd6f128 Author: Kevin Morin <morin@codelutin.com> Date: Tue Dec 9 18:23:03 2014 +0100 import commit 5558cf57cf1e46276b3401c1182c66ed807fc005 Author: Kevin Morin <morin@codelutin.com> Date: Tue Dec 9 12:21:12 2014 +0100 correction de la suppression commit db18c9b281a10f88b0c8a39fd1fdeccbe44e550c Author: Kevin Morin <morin@codelutin.com> Date: Tue Dec 9 10:28:40 2014 +0100 - ne pas proposer les caractéristiques déjà ajoutées dans d'autres onglets - possibilité de supprimer des caractéristiques dans le tableau (clic droit) Summary of changes: .../entities/protocol/TuttiProtocols.java | 13 +-- .../src/main/xmi/tutti-persistence.zargo | Bin 57963 -> 57983 bytes .../src/main/xmi/tutti-persistence.zargo~ | Bin 57440 -> 57983 bytes .../filtered-resources/tutti-help-fr.properties | 3 +- .../action/AddCaracteristicMappingAction.java | 10 +- .../swing/action/ImportFromColumnFileAction.java | 89 ++++++++++++++++- .../action/RemoveCaracteristicMappingAction.java | 105 +++++++++++++++++++++ .../tutti/ui/swing/action/SaveProtocolAction.java | 3 +- .../fishing/AbstractCaracteristicTabUIHandler.java | 25 ++++- .../ui/swing/content/protocol/EditProtocolUI.css | 15 ++- .../ui/swing/content/protocol/EditProtocolUI.jaxx | 8 +- .../content/protocol/EditProtocolUIHandler.java | 28 +++++- .../content/protocol/EditProtocolUIModel.java | 60 +++++++++--- .../util/table/AbstractTuttiTableUIHandler.java | 1 - .../resources/i18n/tutti-ui-swing_en_GB.properties | 4 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 16 ++-- 16 files changed, 335 insertions(+), 45 deletions(-) create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java -- 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/5954 in repository tutti. See http://git.codelutin.com/tutti.git commit db18c9b281a10f88b0c8a39fd1fdeccbe44e550c Author: Kevin Morin <morin@codelutin.com> Date: Tue Dec 9 10:28:40 2014 +0100 - ne pas proposer les caractéristiques déjà ajoutées dans d'autres onglets - possibilité de supprimer des caractéristiques dans le tableau (clic droit) --- .../filtered-resources/tutti-help-fr.properties | 3 +- .../action/AddCaracteristicMappingAction.java | 10 +-- .../action/RemoveCaracteristicMappingAction.java | 93 ++++++++++++++++++++++ .../tutti/ui/swing/action/SaveProtocolAction.java | 3 +- .../ui/swing/content/protocol/EditProtocolUI.css | 14 ++++ .../ui/swing/content/protocol/EditProtocolUI.jaxx | 8 +- .../content/protocol/EditProtocolUIHandler.java | 28 ++++++- .../content/protocol/EditProtocolUIModel.java | 60 +++++++++++--- .../resources/i18n/tutti-ui-swing_en_GB.properties | 4 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 16 ++-- 10 files changed, 209 insertions(+), 30 deletions(-) diff --git a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties index 2597777..4c4bff0 100644 --- a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties +++ b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties @@ -1,5 +1,5 @@ #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Mon Dec 08 17:29:36 CET 2014 +#Mon Dec 08 18:37:45 CET 2014 \ "tutti.editProtocol.action.addCaracteristicMapping.help"\ = tutti.config.help=config.html tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions @@ -239,6 +239,7 @@ tutti.editProtocol.action.importProtocolCaracteristic.help=editProtocol.html\#ac tutti.editProtocol.action.importProtocolColumns.help= tutti.editProtocol.action.importProtocolSpecies.help=editProtocol.html\#actionsSpecies tutti.editProtocol.action.removeBenthosProtocol.help=editProtocol.html\#actionsBenthos +tutti.editProtocol.action.removeCaracteristicMapping.help= tutti.editProtocol.action.removeSpeciesProtocol.help=editProtocol.html\#actionsSpecies tutti.editProtocol.action.saveProtocol.help=editProtocol.html\#actions tutti.editProtocol.action.selectOtherBenthos.help=editProtocol.html\#actionsBenthos diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AddCaracteristicMappingAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AddCaracteristicMappingAction.java index 6b72393..b05d872 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AddCaracteristicMappingAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AddCaracteristicMappingAction.java @@ -63,14 +63,13 @@ public class AddCaracteristicMappingAction extends AbstractTuttiAction<EditProto BeanFilterableComboBox<Caracteristic> caracteristicMappingCombBox = ui.getCaracteristicMappingComboBox(); caracteristic = (Caracteristic) caracteristicMappingCombBox.getSelectedItem(); - Preconditions.checkNotNull( - caracteristic, "Can't add a speciesProtocol with a null species"); + Preconditions.checkNotNull(caracteristic, "Can't add a speciesProtocol with a null species"); // add new row to model (do it after combo stuff for ui best display) newRow = handler.createEditProtocolCaracteristicsRowModel(); newRow.setPsfm(caracteristic); - getModel().getCaracteristicMappingRows().add(newRow); + getModel().addCaracteristicMappingRow(newRow); } @Override @@ -82,7 +81,7 @@ public class AddCaracteristicMappingAction extends AbstractTuttiAction<EditProto // fire row was inserted in table model EditProtocolCaracteristicsTableModel tableModel = getHandler().getCaracteristicMappingTableModel(); - tableModel.fireTableRowsInserted(newRow); + tableModel.addNewRow(newRow); // select this new row int rowIndex = tableModel.getRowIndex(newRow); @@ -90,7 +89,6 @@ public class AddCaracteristicMappingAction extends AbstractTuttiAction<EditProto // add notification String caracteristicStr = decorate(caracteristic); - sendMessage(t("tutti.flash.info.caracteristic.add.to.protocol", - caracteristicStr)); + sendMessage(t("tutti.flash.info.caracteristic.add.to.protocol", caracteristicStr)); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java new file mode 100644 index 0000000..ce0732d --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java @@ -0,0 +1,93 @@ +package fr.ifremer.tutti.ui.swing.action; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Sets; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolCaracteristicsRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolCaracteristicsTableModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel; +import jaxx.runtime.SwingUtil; + +import javax.swing.*; +import java.util.Set; + +import static org.nuiton.i18n.I18n.t; + +/** + * @author Kevin Morin (Code Lutin) + * @since 3.10 + */ +public class RemoveCaracteristicMappingAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> { + + + /** + * Set of removed caracteristics. + */ + protected Set<Caracteristic> removedCarateristics; + + /** + * Set of removed rows. + */ + protected Set<EditProtocolCaracteristicsRowModel> removedRows; + + + public RemoveCaracteristicMappingAction(EditProtocolUIHandler handler) { + super(handler, false); + } + + @Override + public void doAction() throws Exception { + + JTable table = handler.getCaracteristicsMappingTable(); + + // need to have a selection + Preconditions.checkState(!table.getSelectionModel().isSelectionEmpty()); + + EditProtocolCaracteristicsTableModel tableModel = + (EditProtocolCaracteristicsTableModel) table.getModel(); + + removedCarateristics = Sets.newHashSet(); + removedRows = Sets.newHashSet(); + + for (Integer rowIndex : SwingUtil.getSelectedModelRows(table)) { + + // get row to remove + EditProtocolCaracteristicsRowModel selectedRow = + tableModel.getEntry(rowIndex); + + // re-add all synonym of this taxon to the species / benthos combobox + Caracteristic caracteristic = selectedRow.getPsfm(); + removedCarateristics.add(caracteristic); + + // mark row to be removed at the very last moment + removedRows.add(selectedRow); + } + } + + @Override + public void postSuccessAction() { + super.postSuccessAction(); + + // update comboboxes + getUI().getCaracteristicMappingComboBox().addItems(removedCarateristics); + + // remove all rows from model + getModel().removeCaracteristicMappingRows(removedRows); + + // fire table data changed + JTable table = handler.getCaracteristicsMappingTable(); + EditProtocolCaracteristicsTableModel tableModel = + (EditProtocolCaracteristicsTableModel) table.getModel(); + for (Integer rowIndex : SwingUtil.getSelectedModelRows(table)) { + tableModel.removeRow(rowIndex); + } + + // clear table selection + table.clearSelection(); + + // notify user + sendMessage(t("tutti.flash.info.caracteristicMapping.remove.from.protocol")); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java index b1702f9..be1ba1a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java @@ -45,6 +45,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.util.StringUtil; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -77,7 +78,7 @@ public class SaveProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, TuttiProtocol bean = model.toBean(); - List<EditProtocolCaracteristicsRowModel> protocolCaracteristicMappingRows = getUI().getModel().getCaracteristicMappingRows(); + Collection<EditProtocolCaracteristicsRowModel> protocolCaracteristicMappingRows = getUI().getModel().getCaracteristicMappingRows(); List<CaracteristicMappingRow> caracteristicMappingRows = new ArrayList<CaracteristicMappingRow>(); for (EditProtocolCaracteristicsRowModel row : protocolCaracteristicMappingRows) { if (row.getPsfm() != null && row.getType() != null) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css index d12659f..5bd6f32 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css @@ -91,6 +91,11 @@ JTextField { _help: { "tutti.editProtocol.action.addCaracteristicMapping.help" }; } + +#caracteristicMappingTablePopup { + label: "tutti.editProtocol.title.batchActions"; +} + #caracteristicsMappingTable { selectionMode: {ListSelectionModel.SINGLE_SELECTION}; selectionBackground: {null}; @@ -308,3 +313,12 @@ JTextField { _help: {"tutti.editProtocol.action.importProtocolColumns.help"}; } +#removeCaracteristicMappingButton { + actionIcon: delete; + text: "tutti.editProtocol.action.removeCaracteristicMapping"; + toolTipText: "tutti.editProtocol.action.removeCaracteristicMapping.tip"; + i18nMnemonic: "tutti.editProtocol.action.removeCaracteristicMapping.mnemonic"; + _applicationAction: {fr.ifremer.tutti.ui.swing.action.RemoveCaracteristicMappingAction.class}; + enabled: {model.isRemoveCaracteristicMappingEnabled()}; + _help: {"tutti.editProtocol.action.removeCaracteristicMapping.help"}; +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx index a976187..7be67a1 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx @@ -71,6 +71,10 @@ <JMenuItem id='removeBenthosProtocolButton'/> </JPopupMenu> + <JPopupMenu id='caracteristicMappingTablePopup'> + <JMenuItem id='removeCaracteristicMappingButton'/> + </JPopupMenu> + <JTabbedPane id='tabPanel' constraints='BorderLayout.CENTER'> <tab title='tutti.editProtocol.tab.info'> @@ -136,7 +140,9 @@ <row fill='both' weighty='1'> <cell fill='both' columns='2'> <JScrollPane> - <JXTable id='caracteristicsMappingTable'/> + <JXTable id='caracteristicsMappingTable' + onMouseClicked='handler.autoSelectRowInTable(event, caracteristicMappingTablePopup)' + onKeyPressed='handler.openRowMenu(event, caracteristicMappingTablePopup)'/> </JScrollPane> </cell> </row> 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 410d831..c64847b 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 @@ -25,6 +25,7 @@ package fr.ifremer.tutti.ui.swing.content.protocol; import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; @@ -495,6 +496,14 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI addHighlighters(caracteristicsMappingTable); + caracteristicsMappingTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent e) { + ListSelectionModel source = (ListSelectionModel) e.getSource(); + getModel().setRemoveCaracteristicMappingEnabled(!source.isSelectionEmpty()); + } + }); + // always scroll to selected row SwingUtil.scrollToTableSelection(caracteristicsMappingTable); @@ -562,6 +571,15 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } if (selectedDoubleList != null) { selectedDoubleList.getHandler().refreshFilteredElements(); + + } else { + // if the selected tab is the operation caracteristic mapping tab, then update the combobox + List<Caracteristic> selectedCaracteristics = new ArrayList<Caracteristic>(getModel().getCaracteristics()); + for (BeanDoubleList<Caracteristic> doubleList : allDoubleLists) { + selectedCaracteristics.removeAll(doubleList.getModel().getSelected()); + } + selectedCaracteristics.removeAll(getModel().getUsedCaracteristics()); + getUI().getCaracteristicMappingComboBox().setData(selectedCaracteristics); } } }); @@ -817,9 +835,7 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI initBeanList(widget, availableCaracteristics, Lists.<Caracteristic>newArrayList()); - UpdateSelectedList listener = new UpdateSelectedList( - widget, - getModel().getAllCaracteristic()); + UpdateSelectedList listener = new UpdateSelectedList(widget, getModel().getAllCaracteristic()); widget.putClientProperty("_updateListener", listener); widget.putClientProperty("_updateListenerId", propertyId); listener.select(selectedCaracteristics); @@ -828,6 +844,12 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI List<BeanDoubleList<Caracteristic>> list = Lists.newArrayList(allDoubleLists); list.remove(widget); widget.getHandler().addFilter(new SelectValuePredicate(list)); + widget.getHandler().addFilter(new Predicate<Caracteristic>() { + @Override + public boolean apply(Caracteristic caracteristic) { + return !getModel().isCaracteristicUsedInMapping(caracteristic); + } + }); } protected void selectLengthClasses(List<String> ids, JComboBox comboBox) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java index ec9f584..ef50154 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java @@ -22,7 +22,9 @@ package fr.ifremer.tutti.ui.swing.content.protocol; * #L% */ +import com.google.common.base.Function; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; @@ -37,6 +39,7 @@ import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -60,6 +63,8 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, public static final String PROPERTY_REMOVE_BENTHOS_ENABLED = "removeBenthosEnabled"; + public static final String PROPERTY_REMOVE_CARACTERISTIC_MAPPING_ENABLED = "removeCaracteristicMappingEnabled"; + public static final String PROPERTY_IMPORTED = "imported"; public static final String PROPERTY_CLONED = "cloned"; @@ -108,6 +113,8 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, */ protected boolean removeBenthosEnabled; + protected boolean removeCaracteristicMappingEnabled; + protected List<Species> allSpecies; protected List<Species> allSynonyms; @@ -120,7 +127,7 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, protected Map<String, Caracteristic> allCaracteristic; - protected List<EditProtocolCaracteristicsRowModel> caracteristicMappingRows; + protected Map<Caracteristic, EditProtocolCaracteristicsRowModel> caracteristicMappingRows; protected List<EditProtocolOperationFieldsRowModel> operationFieldMappingRows; @@ -149,24 +156,46 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, setLengthClassesPmfmId(ids); } -// public void setGearUseFeaturePmfm(List<Caracteristic> gearUseFeaturePmfm) { -// List<String> ids = TuttiEntities.collecIds(gearUseFeaturePmfm); -// setGearUseFeaturePmfmId(ids); -// } - public void setIndividualObservationPmfm(List<Caracteristic> individualObservationPmfm) { List<String> ids = TuttiEntities.collecIds(individualObservationPmfm); setIndividualObservationPmfmId(ids); } - public List<EditProtocolCaracteristicsRowModel> getCaracteristicMappingRows() { - return caracteristicMappingRows; + public Collection<EditProtocolCaracteristicsRowModel> getCaracteristicMappingRows() { + return caracteristicMappingRows.values(); + } + + public void addCaracteristicMappingRow(EditProtocolCaracteristicsRowModel newRow) { + caracteristicMappingRows.put(newRow.getPsfm(), newRow); + firePropertyChange(PROPERTY_CARACTERISTIC_MAPPING_ROWS, null, getCaracteristicMappingRows()); + } + + public void removeCaracteristicMappingRows(Collection<EditProtocolCaracteristicsRowModel> rowsToRemove) { + for (EditProtocolCaracteristicsRowModel row : rowsToRemove) { + caracteristicMappingRows.remove(row.getPsfm()); + } + firePropertyChange(PROPERTY_CARACTERISTIC_MAPPING_ROWS, null, getCaracteristicMappingRows()); } public void setCaracteristicMappingRows(List<EditProtocolCaracteristicsRowModel> caracteristicMappingRows) { - Object oldValue = getCaracteristicMappingRows(); - this.caracteristicMappingRows = caracteristicMappingRows; - firePropertyChange(PROPERTY_CARACTERISTIC_MAPPING_ROWS, oldValue, caracteristicMappingRows); + this.caracteristicMappingRows = new HashMap<Caracteristic, EditProtocolCaracteristicsRowModel>( + Maps.uniqueIndex(caracteristicMappingRows, + new Function<EditProtocolCaracteristicsRowModel, Caracteristic>() { + @Override + public Caracteristic apply(EditProtocolCaracteristicsRowModel editProtocolCaracteristicsRowModel) { + return editProtocolCaracteristicsRowModel.getPsfm(); + } + }) + ); + firePropertyChange(PROPERTY_CARACTERISTIC_MAPPING_ROWS, null, caracteristicMappingRows); + } + + public boolean isCaracteristicUsedInMapping(Caracteristic caracteristic) { + return caracteristicMappingRows.containsKey(caracteristic); + } + + public Collection<Caracteristic> getUsedCaracteristics() { + return caracteristicMappingRows.keySet(); } public List<EditProtocolOperationFieldsRowModel> getOperationFieldMappingRows() { @@ -217,6 +246,15 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, firePropertyChange(PROPERTY_REMOVE_BENTHOS_ENABLED, null, removeBenthosEnabled); } + public boolean isRemoveCaracteristicMappingEnabled() { + return removeCaracteristicMappingEnabled; + } + + public void setRemoveCaracteristicMappingEnabled(boolean removeCaracteristicMappingEnabled) { + this.removeCaracteristicMappingEnabled = removeCaracteristicMappingEnabled; + firePropertyChange(PROPERTY_REMOVE_CARACTERISTIC_MAPPING_ENABLED, null, removeCaracteristicMappingEnabled); + } + public boolean isImported() { return imported; } 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 6188409..5dc2c6d 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 @@ -937,6 +937,9 @@ tutti.editProtocol.action.loadImportColumns.success= tutti.editProtocol.action.removeBenthosProtocol= tutti.editProtocol.action.removeBenthosProtocol.mnemonic= tutti.editProtocol.action.removeBenthosProtocol.tip= +tutti.editProtocol.action.removeCaracteristicMapping= +tutti.editProtocol.action.removeCaracteristicMapping.mnemonic= +tutti.editProtocol.action.removeCaracteristicMapping.tip= tutti.editProtocol.action.removeSpeciesProtocol= tutti.editProtocol.action.removeSpeciesProtocol.mnemonic= tutti.editProtocol.action.removeSpeciesProtocol.tip= @@ -1293,6 +1296,7 @@ tutti.flash.info.benthos.remove.from.protocol= tutti.flash.info.benthos.replaced= tutti.flash.info.caracteristic.add.to.protocol= tutti.flash.info.caracteristic.imported.in.protocol= +tutti.flash.info.caracteristicMapping.remove.from.protocol= tutti.flash.info.caractristic.exported.from.protocol= tutti.flash.info.cruiseCreated= tutti.flash.info.cruiseSaved= 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 a4321a5..974710f 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 @@ -871,8 +871,8 @@ tutti.editProgram.title.create.program=Créer une nouvelle série de campagne tutti.editProgram.title.edit.program=Éditer une série de campagne existante tutti.editProtocol.action.addBenthosProtocol.mnemonic=j tutti.editProtocol.action.addBenthosProtocol.tip=Ajouter une espèce du benthos au protocole -tutti.editProtocol.action.addCaracteristicMapping.mnemonic= -tutti.editProtocol.action.addCaracteristicMapping.tip= +tutti.editProtocol.action.addCaracteristicMapping.mnemonic=j +tutti.editProtocol.action.addCaracteristicMapping.tip=Ajouter aux caractéristiques du trait tutti.editProtocol.action.addSpeciesProtocol.mnemonic=j tutti.editProtocol.action.addSpeciesProtocol.tip=Ajouter une espèce au protocole tutti.editProtocol.action.chooseColumnsFile.import=Choisir le fichier contenant les colonnes @@ -917,6 +917,9 @@ tutti.editProtocol.action.loadImportColumns.success=%s colonnes importées avec tutti.editProtocol.action.removeBenthosProtocol=Supprimer les benthos tutti.editProtocol.action.removeBenthosProtocol.mnemonic=S tutti.editProtocol.action.removeBenthosProtocol.tip=Supprimer les benthos sélectionnés +tutti.editProtocol.action.removeCaracteristicMapping=Supprimer les caractéristiques +tutti.editProtocol.action.removeCaracteristicMapping.mnemonic=S +tutti.editProtocol.action.removeCaracteristicMapping.tip=Supprimer les caractéristiques sélectionnés tutti.editProtocol.action.removeSpeciesProtocol=Supprimer les espèces tutti.editProtocol.action.removeSpeciesProtocol.mnemonic=S tutti.editProtocol.action.removeSpeciesProtocol.tip=Supprimer les espèces sélectionnées @@ -935,7 +938,7 @@ tutti.editProtocol.askCancelEditBeforeLeaving.cancelSaveSampleCategoryModel=La c tutti.editProtocol.askSaveBeforeLeaving.saveProtocol=Des modifications sur le protocole n'ont pas été enregistrées tutti.editProtocol.askSaveBeforeLeaving.saveSampleCategoryModel=Des modifications sur la catégorisation n'ont pas été enregistrées tutti.editProtocol.field.benthos.tip=Benthos -tutti.editProtocol.field.caracteristicMapping.tip= +tutti.editProtocol.field.caracteristicMapping.tip=Caractéristiques tutti.editProtocol.field.comment=Commentaire tutti.editProtocol.field.comment.tip=Commentaire tutti.editProtocol.field.protocol.name=Nom @@ -943,11 +946,9 @@ tutti.editProtocol.field.protocol.name.tip=Nom du protocole tutti.editProtocol.field.species.tip=Espèces tutti.editProtocol.tab.benthos=Benthos tutti.editProtocol.tab.caracteristic=Caractéristiques -tutti.editProtocol.tab.caracteristic.gearUseFeature=Mise en œuvre de l'engin tutti.editProtocol.tab.caracteristic.individualObservation=Observations individuelles tutti.editProtocol.tab.caracteristic.lengthClasses=Classes de taille tutti.editProtocol.tab.caracteristic.mapping=Caractéristiques du trait -tutti.editProtocol.tab.caracteristic.vesselUseFeature=Autres caractéristiques tutti.editProtocol.tab.info=Informations générales tutti.editProtocol.tab.species=Espèces tutti.editProtocol.table.header.calcifySample=Prélèvement de pièces calcifiées @@ -1240,14 +1241,15 @@ tutti.fishingOperations.warn.catchBatch.notFound=Pas d'arbre d’échantillonnag tutti.fishingOperations.warn.invalid.batch=<html><body>Les erreurs suivantes ont été détectées, impossible d'afficher les captures \:<br/><ul>%s</ul></body></html>. tutti.fishingOperations.warn.invalid.batch.model=L'arbre d’échantillonnage n'est pas compatible. Les captures ne seront pas visibles. tutti.flash.info.all.caractristic.exported=Toutes les caractéristiques exportées dans le fichier <strong>%s</strong>. -tutti.flash.info.benthos.add.to.protocol=Le benthos <strong>%s</strong> a été ajoutée au protocole. +tutti.flash.info.benthos.add.to.protocol=Le benthos <strong>%s</strong> a été ajouté au protocole. tutti.flash.info.benthos.imported.in.protocol=Benthos importés dans le protocole depuis le fichier <strong>%s</strong>. tutti.flash.info.benthos.imported.in.protocol.oneReplaced=Benthos importés dans le protocole depuis le fichier <strong>%s</strong>. 1 remplacée par son référent. tutti.flash.info.benthos.imported.in.protocol.severalReplaced=Benthos importés dans le protocole depuis le fichier <strong>%s</strong>. %s remplacées par leur référent. tutti.flash.info.benthos.remove.from.protocol=Les benthos ont été retirés du protocole. tutti.flash.info.benthos.replaced=Le benthos <strong>%s</strong> a été remplacé par son référent <strong>%s</strong>. -tutti.flash.info.caracteristic.add.to.protocol= +tutti.flash.info.caracteristic.add.to.protocol=La caractéristique <strong>%s</strong> a été ajoutée au protocole. tutti.flash.info.caracteristic.imported.in.protocol=Caractéristiques importées dans le protocole depuis le fichier <strong>%s</strong>. +tutti.flash.info.caracteristicMapping.remove.from.protocol=Les caractéristiques ont été retirées du protocole. tutti.flash.info.caractristic.exported.from.protocol=Caractéristiques du protocole exportées dans le fichier <strong>%s</strong>. tutti.flash.info.cruiseCreated=La campagne <strong>%s</strong> a été créée. tutti.flash.info.cruiseSaved=La campagne <strong>%s</strong> a été enregistrée. -- 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/5954 in repository tutti. See http://git.codelutin.com/tutti.git commit 5558cf57cf1e46276b3401c1182c66ed807fc005 Author: Kevin Morin <morin@codelutin.com> Date: Tue Dec 9 12:21:12 2014 +0100 correction de la suppression --- .../persistence/entities/protocol/TuttiProtocols.java | 3 +-- .../ui/swing/action/RemoveCaracteristicMappingAction.java | 14 +++++++++++++- .../tutti/ui/swing/content/protocol/EditProtocolUI.css | 1 - 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java index eaeae66..bad4ce2 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java @@ -147,9 +147,8 @@ public class TuttiProtocols extends AbstractTuttiProtocols { } protected static TuttiProtocol migrateProtocol(File file) { - //try to load a v2 try { - // try to load a v1 + //try to load a v2 TuttiProtocol2 tuttiProtocol2 = fromFileV2(file); TuttiProtocol result = fromTuttiProtocol2(tuttiProtocol2); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java index ce0732d..bc7eb03 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveCaracteristicMappingAction.java @@ -9,8 +9,12 @@ import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel; import jaxx.runtime.SwingUtil; +import org.apache.commons.collections4.ComparatorUtils; import javax.swing.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Set; import static org.nuiton.i18n.I18n.t; @@ -32,6 +36,8 @@ public class RemoveCaracteristicMappingAction extends AbstractTuttiAction<EditPr */ protected Set<EditProtocolCaracteristicsRowModel> removedRows; + protected List<Integer> removedRowIndexes; + public RemoveCaracteristicMappingAction(EditProtocolUIHandler handler) { super(handler, false); @@ -50,9 +56,12 @@ public class RemoveCaracteristicMappingAction extends AbstractTuttiAction<EditPr removedCarateristics = Sets.newHashSet(); removedRows = Sets.newHashSet(); + removedRowIndexes = new ArrayList<Integer>(); for (Integer rowIndex : SwingUtil.getSelectedModelRows(table)) { + removedRowIndexes.add(rowIndex); + // get row to remove EditProtocolCaracteristicsRowModel selectedRow = tableModel.getEntry(rowIndex); @@ -64,6 +73,8 @@ public class RemoveCaracteristicMappingAction extends AbstractTuttiAction<EditPr // mark row to be removed at the very last moment removedRows.add(selectedRow); } + + Collections.sort(removedRowIndexes, Collections.reverseOrder()); } @Override @@ -80,7 +91,8 @@ public class RemoveCaracteristicMappingAction extends AbstractTuttiAction<EditPr JTable table = handler.getCaracteristicsMappingTable(); EditProtocolCaracteristicsTableModel tableModel = (EditProtocolCaracteristicsTableModel) table.getModel(); - for (Integer rowIndex : SwingUtil.getSelectedModelRows(table)) { + + for (Integer rowIndex : removedRowIndexes) { tableModel.removeRow(rowIndex); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css index 5bd6f32..022ca7c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css @@ -97,7 +97,6 @@ JTextField { } #caracteristicsMappingTable { - selectionMode: {ListSelectionModel.SINGLE_SELECTION}; selectionBackground: {null}; selectionForeground: {Color.BLACK}; sortable: false; -- 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/5954 in repository tutti. See http://git.codelutin.com/tutti.git commit 301c1d4bfcbf01c190a9f00ffb106e206cd6f128 Author: Kevin Morin <morin@codelutin.com> Date: Tue Dec 9 18:23:03 2014 +0100 import --- .../entities/protocol/TuttiProtocols.java | 10 ++- .../src/main/xmi/tutti-persistence.zargo | Bin 57963 -> 57983 bytes .../src/main/xmi/tutti-persistence.zargo~ | Bin 57440 -> 57983 bytes .../swing/action/ImportFromColumnFileAction.java | 89 ++++++++++++++++++++- .../fishing/AbstractCaracteristicTabUIHandler.java | 25 +++++- .../util/table/AbstractTuttiTableUIHandler.java | 1 - 6 files changed, 113 insertions(+), 12 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java index bad4ce2..8d3baeb 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java @@ -158,7 +158,9 @@ public class TuttiProtocols extends AbstractTuttiProtocols { // try to load a v1 TuttiProtocol1 tuttiProtocol1 = fromFileV1(file); - TuttiProtocol result = fromTuttiProtocol1(tuttiProtocol1); + TuttiProtocol2 tuttiProtocol2 = fromTuttiProtocol1(tuttiProtocol1); + + TuttiProtocol result = fromTuttiProtocol2(tuttiProtocol2); return result; } } @@ -290,9 +292,9 @@ public class TuttiProtocols extends AbstractTuttiProtocols { return message; } - protected static TuttiProtocol fromTuttiProtocol1(TuttiProtocol1 tuttiProtocol1) { - TuttiProtocol result = newTuttiProtocol(); - Binder<TuttiProtocol1, TuttiProtocol> binder = BinderFactory.newBinder(TuttiProtocol1.class, TuttiProtocol.class); + protected static TuttiProtocol2 fromTuttiProtocol1(TuttiProtocol1 tuttiProtocol1) { + TuttiProtocol2 result = new TuttiProtocolBean2(); + Binder<TuttiProtocol1, TuttiProtocol2> binder = BinderFactory.newBinder(TuttiProtocol1.class, TuttiProtocol2.class); binder.copy(tuttiProtocol1, result); if (!tuttiProtocol1.isSpeciesEmpty()) { result.setSpecies(Lists.<SpeciesProtocol>newArrayList()); diff --git a/tutti-persistence/src/main/xmi/tutti-persistence.zargo b/tutti-persistence/src/main/xmi/tutti-persistence.zargo index 4f0e671..86f4fb3 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-persistence/src/main/xmi/tutti-persistence.zargo~ b/tutti-persistence/src/main/xmi/tutti-persistence.zargo~ index b3c7107..69721e7 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/action/ImportFromColumnFileAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportFromColumnFileAction.java index aaa73f6..53fe596 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportFromColumnFileAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportFromColumnFileAction.java @@ -4,11 +4,16 @@ import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.FishingOperations; +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.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Vessel; @@ -23,10 +28,14 @@ import org.nuiton.csv.Import2; import org.nuiton.csv.ImportConf; import org.nuiton.csv.ImportRow; import org.nuiton.csv.ValueParser; +import org.nuiton.csv.ValueSetter; import org.nuiton.csv.ext.CsvReaders; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; import java.io.File; import java.io.FileInputStream; +import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -78,6 +87,7 @@ public class ImportFromColumnFileAction extends AbstractTuttiAction<EditFishingO ImportConf conf = new ImportConf(); conf.setStrictMode(false); // conf.setIgnoreUnknownHeader(true); + Import2<FishingOperation> operationUIModelImport = Import2.newImport(conf, importModel, new FileInputStream(columnsFile)); @@ -95,9 +105,13 @@ public class ImportFromColumnFileAction extends AbstractTuttiAction<EditFishingO @Override public boolean apply(FishingOperation fishingOperation) { - String operationNumberColumn = mappingRowsByField.get(FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER).getImportColumn(); - String stationColumn = mappingRowsByField.get(FishingOperation.PROPERTY_STATION_NUMBER).getImportColumn(); - String startDateColumn = mappingRowsByField.get(FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE).getImportColumn(); + OperationFieldMappingRow operationNumberRow = mappingRowsByField.get(FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER); + OperationFieldMappingRow stationNumberRow = mappingRowsByField.get(FishingOperation.PROPERTY_STATION_NUMBER); + OperationFieldMappingRow startDateRow = mappingRowsByField.get(FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE); + + String operationNumberColumn = operationNumberRow != null ? operationNumberRow.getImportColumn() : null; + String stationColumn = stationNumberRow != null ? stationNumberRow.getImportColumn() : null; + String startDateColumn = startDateRow != null ? startDateRow.getImportColumn() : null; EditFishingOperationUIModel model = getModel(); boolean sameStationNumber = Objects.equals(fishingOperation.getStationNumber(), model.getStationNumber()); @@ -119,6 +133,8 @@ public class ImportFromColumnFileAction extends AbstractTuttiAction<EditFishingO if (predicate.apply(fishingOperation)) { if (next.isValid()) { getModel().fromEntity(fishingOperation); + getUI().getGearUseFeatureTabContent().getHandler().mergeCaracteristics(fishingOperation); + getUI().getVesselUseFeatureTabContent().getHandler().mergeCaracteristics(fishingOperation); } else { if (log.isErrorEnabled()) { @@ -148,6 +164,10 @@ public class ImportFromColumnFileAction extends AbstractTuttiAction<EditFishingO protected class ImportFromColumnFileModel extends TuttiCsvUtil.AbstractTuttiImportModel<FishingOperation> { + protected Binder<EditFishingOperationUIModel, FishingOperation> toBeanBinder = + BinderFactory.newBinder(EditFishingOperationUIModel.class, + FishingOperation.class); + public ImportFromColumnFileModel(char separator, Set<String> headers) { super(separator); @@ -219,6 +239,65 @@ public class ImportFromColumnFileAction extends AbstractTuttiAction<EditFishingO newMandatoryColumn(importColumn, field, valueParser); } } + + Collection<CaracteristicMappingRow> caracteristicMappingRows = protocol.getCaracteristicMapping(); + for (final CaracteristicMappingRow mappingRow : caracteristicMappingRows) { + String importColumn = mappingRow.getImportColumn(); + if (StringUtils.isNotBlank(importColumn) && headers.remove(importColumn)) { + + int pmfmId = Integer.parseInt(mappingRow.getPmfmId()); + final Caracteristic caracteristic = getContext().getPersistenceService().getCaracteristic(pmfmId); + + ValueSetter<FishingOperation, String> setter = new ValueSetter<FishingOperation, String>() { + @Override + public void set(FishingOperation fishingOperation, String value) throws Exception { + + Serializable realValue = null; + if (StringUtils.isNotBlank(value)) { + switch (caracteristic.getCaracteristicType()) { + case QUALITATIVE: + for (CaracteristicQualitativeValue cqv : caracteristic.getQualitativeValue()) { + if (value.equals(cqv.getId())) { + realValue = cqv; + break; + } + } + break; + + case NUMBER: + realValue = Float.parseFloat(value); + break; + + default: + realValue = value; + } + } + + CaracteristicMap caracteristicMap; + if (CaracteristicType.GEAR_USE_FEATURE.toString().equals(mappingRow.getTab())) { + caracteristicMap = fishingOperation.getGearUseFeatures(); + if (caracteristicMap == null) { + caracteristicMap = new CaracteristicMap(); + fishingOperation.setGearUseFeatures(caracteristicMap); + } + + } else { + caracteristicMap = fishingOperation.getVesselUseFeatures(); + if (caracteristicMap == null) { + caracteristicMap = new CaracteristicMap(); + fishingOperation.setVesselUseFeatures(caracteristicMap); + } + } + caracteristicMap.put(caracteristic, realValue); + + } + }; + newMandatoryColumn(importColumn, setter); + + } + } + + for (String header : headers) { newIgnoredColumn(header); } @@ -226,7 +305,9 @@ public class ImportFromColumnFileAction extends AbstractTuttiAction<EditFishingO @Override public FishingOperation newEmptyInstance() { - return FishingOperations.newFishingOperation(); + FishingOperation fishingOperation = FishingOperations.newFishingOperation(); + toBeanBinder.copy(getModel(), fishingOperation); + return fishingOperation; } } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java index 7c6e71c..c8a8317 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java @@ -193,7 +193,6 @@ public abstract class AbstractCaracteristicTabUIHandler /** Resets the table with the data from the database */ public void reset(FishingOperation fishingOperation) { - TM tableModel = getTableModel(); M model = getModel(); CaracteristicMap caracteristicMap = getCaracteristics(fishingOperation); @@ -202,8 +201,28 @@ public abstract class AbstractCaracteristicTabUIHandler } model.setCaracteristicMap(caracteristicMap); -// TuttiProtocol protocol = getDataContext().getProtocol(); + updateRows(); + model.setModify(false); + } + + /** Resets the table with the data from the database */ + public void mergeCaracteristics(FishingOperation fishingOperation) { + CaracteristicMap caracteristicMap = getCaracteristics(fishingOperation); + if (caracteristicMap != null) { + CaracteristicMap thisCaracteristicMap = getModel().getCaracteristicMap(); + for (Caracteristic caracteristic : caracteristicMap.keySet()) { + thisCaracteristicMap.put(caracteristic, caracteristicMap.get(caracteristic)); + } + + updateRows(); + } + } + + protected void updateRows() { + TM tableModel = getTableModel(); + M model = getModel(); List<String> pmfmIds = Lists.newArrayList(); + if (getDataContext().isProtocolFilled()) { List<String> protocolPmfmId = getProtocolPmfmIds(); if (protocolPmfmId != null) { @@ -211,6 +230,7 @@ public abstract class AbstractCaracteristicTabUIHandler } } + CaracteristicMap caracteristicMap = model.getCaracteristicMap(); List<RM> rows = Lists.newArrayList(); List<Caracteristic> caracteristics = Lists.newArrayList(caracteristicMap.keySet()); @@ -243,7 +263,6 @@ public abstract class AbstractCaracteristicTabUIHandler keyCombo.setData(caracteristicList); // selectFirstInCombo(keyCombo); keyCombo.getHandler().reset(); - model.setModify(false); } public void removeCaracteristic() { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java index 335d832..ab99b41 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java @@ -264,7 +264,6 @@ public abstract class AbstractTuttiTableUIHandler<R extends AbstractTuttiBeanUIM getModel().addPropertyChangeListener(AbstractTuttiTableUIModel.PROPERTY_ROWS, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { - log.info("row schanged"); onModelRowsChanged((List<R>) evt.getNewValue()); } }); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm