branch feature/7089 created (now f1aea25)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7089 in repository tutti. See http://git.codelutin.com/tutti.git at f1aea25 suppression des especes deja utilisée et de leurs synonymes dans la liste de toutes les espèces (fixes #7089) This branch includes the following new commits: new 1f190cf affichage des synonymes ou non dans la popup de sélection d'une espèce pour les lots espèces (refs #7089) new cf72737 affichage des synonymes ou non dans la popup de sélection d'une espèce pour les lots benthos (refs #7089) new f1aea25 suppression des especes deja utilisée et de leurs synonymes dans la liste de toutes les espèces (fixes #7089) 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 f1aea258af7dd09e22584686d8f604f344c05604 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 6 17:50:27 2016 +0100 suppression des especes deja utilisée et de leurs synonymes dans la liste de toutes les espèces (fixes #7089) commit cf72737b1b9b14d311be72ce1dd228a446f1ffe8 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 6 17:28:15 2016 +0100 affichage des synonymes ou non dans la popup de sélection d'une espèce pour les lots benthos (refs #7089) commit 1f190cf81384a425742b5f31aa2a575e7c188a8a Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 6 17:20:08 2016 +0100 affichage des synonymes ou non dans la popup de sélection d'une espèce pour les lots espèces (refs #7089) -- 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/7089 in repository tutti. See http://git.codelutin.com/tutti.git commit 1f190cf81384a425742b5f31aa2a575e7c188a8a Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 6 17:20:08 2016 +0100 affichage des synonymes ou non dans la popup de sélection d'une espèce pour les lots espèces (refs #7089) --- .../species/actions/RenameSpeciesBatchAction.java | 18 ++++++++++++-- .../ui/swing/util/actions/LongActionSupport.java | 6 +++++ .../ui/swing/util/species/SelectSpeciesUI.css | 12 +++++++++- .../ui/swing/util/species/SelectSpeciesUI.jaxx | 15 ++++++++++-- .../swing/util/species/SelectSpeciesUIHandler.java | 14 ----------- .../swing/util/species/SelectSpeciesUIModel.java | 28 ++++++++++++++++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 6 +++++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 +++ 8 files changed, 83 insertions(+), 19 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java index 1b3080d..a9dab4b 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java @@ -26,6 +26,8 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; +import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; @@ -37,8 +39,10 @@ import jaxx.runtime.SwingUtil; import org.jdesktop.swingx.JXTable; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; import static org.nuiton.i18n.I18n.t; @@ -54,7 +58,6 @@ public class RenameSpeciesBatchAction extends LongActionSupport<SpeciesBatchUIMo public RenameSpeciesBatchAction(SpeciesBatchUIHandler handler) { super(handler, false); - } @Override @@ -67,6 +70,7 @@ public class RenameSpeciesBatchAction extends LongActionSupport<SpeciesBatchUIMo SpeciesBatchRowModel row = tableModel.getEntry(selectedRowIndex); SpeciesBatchUIModel model = handler.getModel(); + List<Species> allSpeciesList = new ArrayList<>(getDataContext().getSpecies()); List<Species> speciesList = Lists.newArrayList( getDataContext().getReferentSpeciesWithSurveyCode()); SampleCategory<?> firstSampleCategory = row.getFirstSampleCategory(); @@ -74,7 +78,17 @@ public class RenameSpeciesBatchAction extends LongActionSupport<SpeciesBatchUIMo speciesList.removeAll( model.getSpeciesUsed().get((CaracteristicQualitativeValue) categoryValue)); - selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), speciesList); + selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), allSpeciesList, speciesList); + + if (!selectedSpecies.isReferenceTaxon()) { + String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); + List<Species> referents = getDataContext().getReferentSpecies(); + Map<String, Species> referentsById = Speciess.splitReferenceSpeciesByReferenceTaxonId(referents); + String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId()); + selectedSpecies = referentsById.get(taxonId); + String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); + sendMessage(t("tutti.flash.info.species.replaced", decoratedSynonym, decoratedReferent)); + } result &= selectedSpecies != null; return result; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/actions/LongActionSupport.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/actions/LongActionSupport.java index 52d6ebf..b107da1 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/actions/LongActionSupport.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/actions/LongActionSupport.java @@ -100,10 +100,16 @@ public abstract class LongActionSupport<M extends AbstractBean, UI extends Tutti } protected Species openAddSpeciesDialog(String title, List<Species> species) { + return openAddSpeciesDialog(title, species, null); + } + + protected Species openAddSpeciesDialog(String title, List<Species> species, List<Species> synonymFilteredSpecies) { SelectSpeciesUI dialogContent = new SelectSpeciesUI(true, getUI()); SelectSpeciesUIModel model = dialogContent.getModel(); model.setSelectedSpecies(null); model.setSpecies(species); + model.setSynonymFilteredSpecies(synonymFilteredSpecies); + model.setShowSynonyms(synonymFilteredSpecies == null); getHandler().openDialog(dialogContent, title, new Dimension(400, 130)); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.css index bbf5fe6..d22a05a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.css @@ -25,7 +25,17 @@ bean: {model}; property: selectedSpecies; selectedItem: {model.getSelectedSpecies()}; - data: {model.getSpecies()}; + data: { model.isShowSynonyms() ? model.getSpecies() : model.getSynonymFilteredSpecies() }; +} + +#showSynonyms { + text: "tutti.selectSpecies.action.showSynonyms"; + toolTipText: "tutti.selectSpecies.action.showSynonyms.tip"; + i18nMnemonic: "tutti.selectSpecies.action.showSynonyms.mnemonic"; + focusable: false; + selected: { model.isShowSynonyms() }; + enabled: { model.getSynonymFilteredSpecies() != null }; + foreground: { java.awt.Color.BLACK }; } #cancelButton { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.jaxx index ac10ee3..38f3255 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUI.jaxx @@ -42,8 +42,19 @@ public SelectSpeciesUI(boolean useSurveyCode, TuttiUI parentUI) { <SelectSpeciesUIModel id='model' initializer='getContextValue(SelectSpeciesUIModel.class)'/> - <BeanFilterableComboBox id='speciesCombo' constraints='BorderLayout.CENTER' - constructorParams='this' genericType='Species'/> + <Table constraints='BorderLayout.CENTER'> + <row> + <cell weightx="1"> + <BeanFilterableComboBox id='speciesCombo' constructorParams='this' genericType='Species' /> + </cell> + </row> + <row> + <cell> + <JCheckBox id='showSynonyms' + onItemStateChanged="model.setShowSynonyms(event.getStateChange() == java.awt.event.ItemEvent.SELECTED)"/> + </cell> + </row> + </Table> <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'> <JButton id='cancelButton'/> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIHandler.java index 127ff21..90b7e46 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIHandler.java @@ -75,12 +75,6 @@ public class SelectSpeciesUIHandler extends AbstractTuttiUIHandler<SelectSpecies } }); - getModel().addPropertyChangeListener(SelectSpeciesUIModel.PROPERTY_SPECIES, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - - } - }); } @Override @@ -100,12 +94,4 @@ public class SelectSpeciesUIHandler extends AbstractTuttiUIHandler<SelectSpecies return null; } - public void validate() { - closeDialog(); - } - - public void cancel() { - getModel().setSelectedSpecies(null); - closeDialog(); - } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIModel.java index d5daa5c..9e79f14 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/SelectSpeciesUIModel.java @@ -36,12 +36,20 @@ public class SelectSpeciesUIModel extends AbstractTuttiBeanUIModel<SelectSpecies public static final String PROPERTY_SPECIES = "species"; + public static final String PROPERTY_SYNONYM_FILTERED_SPECIES = "synonymFilteredSpecies"; + public static final String PROPERTY_SELECTED_SPECIES = "selectedSpecies"; + public static final String PROPERTY_SHOW_SYNONYMS = "showSynonyms"; + protected List<Species> species = Lists.newArrayList(); + protected List<Species> synonymFilteredSpecies = null; + protected Species selectedSpecies; + protected boolean showSynonyms; + public SelectSpeciesUIModel() { super(null, null); } @@ -66,6 +74,26 @@ public class SelectSpeciesUIModel extends AbstractTuttiBeanUIModel<SelectSpecies firePropertyChange(PROPERTY_SELECTED_SPECIES, oldValue, selectedSpecies); } + public boolean isShowSynonyms() { + return showSynonyms; + } + + public void setShowSynonyms(boolean showSynonyms) { + Object oldValue = isShowSynonyms(); + this.showSynonyms = showSynonyms; + firePropertyChange(PROPERTY_SHOW_SYNONYMS, oldValue, showSynonyms); + } + + public List<Species> getSynonymFilteredSpecies() { + return synonymFilteredSpecies; + } + + public void setSynonymFilteredSpecies(List<Species> synonymFilteredSpecies) { + Object oldValue = getSynonymFilteredSpecies(); + this.synonymFilteredSpecies = synonymFilteredSpecies; + firePropertyChange(PROPERTY_SYNONYM_FILTERED_SPECIES, oldValue, synonymFilteredSpecies); + } + @Override protected SelectSpeciesUIModel newEntity() { return new SelectSpeciesUIModel(); 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 4ab1654..55612f1 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 @@ -2075,9 +2075,15 @@ tutti.selectNode.cruisePartialSelected= tutti.selectNode.cruiseSelected= tutti.selectNode.operation= tutti.selectNode.operationSelected= +tutti.selectSpecies.action.addSpecies= +tutti.selectSpecies.action.addSpecies.mnemonic= +tutti.selectSpecies.action.addSpecies.tip= tutti.selectSpecies.action.cancel= tutti.selectSpecies.action.cancel.mnemonic= tutti.selectSpecies.action.cancel.tip= +tutti.selectSpecies.action.showSynonyms= +tutti.selectSpecies.action.showSynonyms.mnemonic= +tutti.selectSpecies.action.showSynonyms.tip= tutti.selectSpecies.action.validate= tutti.selectSpecies.action.validate.mnemonic= tutti.selectSpecies.action.validate.tip= 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 8f2b1da..c475819 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 @@ -1943,6 +1943,9 @@ tutti.selectNode.operationSelected=Le trait est sélectionné pour l'export tutti.selectSpecies.action.cancel=Annuler tutti.selectSpecies.action.cancel.mnemonic=A tutti.selectSpecies.action.cancel.tip=Annuler la sélection de l'espèce +tutti.selectSpecies.action.showSynonyms=Afficher les synonymes +tutti.selectSpecies.action.showSynonyms.mnemonic=s +tutti.selectSpecies.action.showSynonyms.tip=Afficher ou non les synonymes dans la liste déroulante tutti.selectSpecies.action.validate=Valider tutti.selectSpecies.action.validate.mnemonic=V tutti.selectSpecies.action.validate.tip=Valider la sélection de l'espèce -- 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/7089 in repository tutti. See http://git.codelutin.com/tutti.git commit cf72737b1b9b14d311be72ce1dd228a446f1ffe8 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 6 17:28:15 2016 +0100 affichage des synonymes ou non dans la popup de sélection d'une espèce pour les lots benthos (refs #7089) --- .../benthos/actions/RenameBenthosBatchAction.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java index 2d82743..6ed18ff 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java @@ -26,6 +26,8 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; +import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchTableModel; @@ -37,8 +39,10 @@ import jaxx.runtime.SwingUtil; import org.jdesktop.swingx.JXTable; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; import static org.nuiton.i18n.I18n.t; @@ -67,6 +71,7 @@ public class RenameBenthosBatchAction extends LongActionSupport<BenthosBatchUIMo BenthosBatchRowModel row = tableModel.getEntry(selectedRowIndex); BenthosBatchUIModel model = handler.getModel(); + List<Species> allSpecies = new ArrayList<>(getDataContext().getSpecies()); List<Species> speciesList = Lists.newArrayList( getDataContext().getReferentBenthosWithSurveyCode()); SampleCategory<?> firstSampleCategory = row.getFirstSampleCategory(); @@ -75,7 +80,17 @@ public class RenameBenthosBatchAction extends LongActionSupport<BenthosBatchUIMo model.getSpeciesUsed().get( (CaracteristicQualitativeValue) categoryValue)); - selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), speciesList); + selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), allSpecies, speciesList); + + if (!selectedSpecies.isReferenceTaxon()) { + String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); + List<Species> referents = getDataContext().getReferentSpecies(); + Map<String, Species> referentsById = Speciess.splitReferenceSpeciesByReferenceTaxonId(referents); + String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId()); + selectedSpecies = referentsById.get(taxonId); + String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); + sendMessage(t("tutti.flash.info.species.replaced", decoratedSynonym, decoratedReferent)); + } result &= selectedSpecies != null; return result; -- 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/7089 in repository tutti. See http://git.codelutin.com/tutti.git commit f1aea258af7dd09e22584686d8f604f344c05604 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 6 17:50:27 2016 +0100 suppression des especes deja utilisée et de leurs synonymes dans la liste de toutes les espèces (fixes #7089) --- .../benthos/actions/RenameBenthosBatchAction.java | 29 +++++++++++++++------- .../species/actions/RenameSpeciesBatchAction.java | 26 +++++++++++++------ 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java index 6ed18ff..a9b0ec3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/RenameBenthosBatchAction.java @@ -23,6 +23,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.actions; */ import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -70,22 +71,32 @@ public class RenameBenthosBatchAction extends LongActionSupport<BenthosBatchUIMo int selectedRowIndex = SwingUtil.getSelectedModelRow(table); BenthosBatchRowModel row = tableModel.getEntry(selectedRowIndex); + List<Species> referents = getDataContext().getReferentSpecies(); + Map<String, Species> referentsById = Speciess.splitReferenceSpeciesByReferenceTaxonId(referents); + BenthosBatchUIModel model = handler.getModel(); - List<Species> allSpecies = new ArrayList<>(getDataContext().getSpecies()); - List<Species> speciesList = Lists.newArrayList( - getDataContext().getReferentBenthosWithSurveyCode()); + SampleCategory<?> firstSampleCategory = row.getFirstSampleCategory(); Serializable categoryValue = firstSampleCategory.getCategoryValue(); - speciesList.removeAll( - model.getSpeciesUsed().get( - (CaracteristicQualitativeValue) categoryValue)); + Collection<Species> speciesUsedForFirstCategory = + model.getSpeciesUsed().get((CaracteristicQualitativeValue) categoryValue); + + List<Species> allSpeciesList = new ArrayList<>(getDataContext().getSpecies()); + allSpeciesList.removeAll(speciesUsedForFirstCategory); + //remove the synonyms of the already used species + Multimap<String, Species> speciesByReferent = Speciess.splitByReferenceTaxonId(allSpeciesList); + for (Species species : speciesUsedForFirstCategory) { + Collection<Species> synonyms = speciesByReferent.get(String.valueOf(species.getReferenceTaxonId())); + allSpeciesList.removeAll(synonyms); + } + + List<Species> speciesList = Lists.newArrayList(getDataContext().getReferentBenthosWithSurveyCode()); + speciesList.removeAll(speciesUsedForFirstCategory); - selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), allSpecies, speciesList); + selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), allSpeciesList, speciesList); if (!selectedSpecies.isReferenceTaxon()) { String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); - List<Species> referents = getDataContext().getReferentSpecies(); - Map<String, Species> referentsById = Speciess.splitReferenceSpeciesByReferenceTaxonId(referents); String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId()); selectedSpecies = referentsById.get(taxonId); String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java index a9dab4b..576a22e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/RenameSpeciesBatchAction.java @@ -23,6 +23,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.actions; */ import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -69,21 +70,32 @@ public class RenameSpeciesBatchAction extends LongActionSupport<SpeciesBatchUIMo int selectedRowIndex = SwingUtil.getSelectedModelRow(table); SpeciesBatchRowModel row = tableModel.getEntry(selectedRowIndex); + List<Species> referents = getDataContext().getReferentSpecies(); + Map<String, Species> referentsById = Speciess.splitReferenceSpeciesByReferenceTaxonId(referents); + SpeciesBatchUIModel model = handler.getModel(); - List<Species> allSpeciesList = new ArrayList<>(getDataContext().getSpecies()); - List<Species> speciesList = Lists.newArrayList( - getDataContext().getReferentSpeciesWithSurveyCode()); + SampleCategory<?> firstSampleCategory = row.getFirstSampleCategory(); Serializable categoryValue = firstSampleCategory.getCategoryValue(); - speciesList.removeAll( - model.getSpeciesUsed().get((CaracteristicQualitativeValue) categoryValue)); + Collection<Species> speciesUsedForFirstCategory = + model.getSpeciesUsed().get((CaracteristicQualitativeValue) categoryValue); + + List<Species> allSpeciesList = new ArrayList<>(getDataContext().getSpecies()); + allSpeciesList.removeAll(speciesUsedForFirstCategory); + //remove the synonyms of the already used species + Multimap<String, Species> speciesByReferent = Speciess.splitByReferenceTaxonId(allSpeciesList); + for (Species species : speciesUsedForFirstCategory) { + Collection<Species> synonyms = speciesByReferent.get(String.valueOf(species.getReferenceTaxonId())); + allSpeciesList.removeAll(synonyms); + } + + List<Species> speciesList = Lists.newArrayList(getDataContext().getReferentSpeciesWithSurveyCode()); + speciesList.removeAll(speciesUsedForFirstCategory); selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), allSpeciesList, speciesList); if (!selectedSpecies.isReferenceTaxon()) { String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); - List<Species> referents = getDataContext().getReferentSpecies(); - Map<String, Species> referentsById = Speciess.splitReferenceSpeciesByReferenceTaxonId(referents); String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId()); selectedSpecies = referentsById.get(taxonId); String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm