Author: chatellier Date: 2010-11-26 16:13:45 +0000 (Fri, 26 Nov 2010) New Revision: 302 Log: Losqu'une espece est s?\195?\169lectionn?\195?\169e, elle n'apparait plus dans la liste des especes filtr?\195?\169es Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx 2010-11-26 15:54:17 UTC (rev 301) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx 2010-11-26 16:13:45 UTC (rev 302) @@ -31,6 +31,7 @@ void $afterCompleteSetup() { // modification (species -> selection model) filteredSpecyListModel.addListDataListener((CoserListSelectionModel)filteredSpecyList.getSelectionModel()); + selectedSpecyListModel.addListDataListener((CoserListSelectionModel)selectedSpecyList.getSelectionModel()); } ]]></script> Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-26 15:54:17 UTC (rev 301) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-26 16:13:45 UTC (rev 302) @@ -59,8 +59,8 @@ import fr.ifremer.coser.bean.Project; import fr.ifremer.coser.bean.RSufiResult; import fr.ifremer.coser.bean.Selection; +import fr.ifremer.coser.services.ProjectService; import fr.ifremer.coser.services.PublicationService; -import fr.ifremer.coser.services.ProjectService; import fr.ifremer.coser.ui.result.SelectionAddResultDialog; import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpecyListModel; import fr.ifremer.coser.ui.util.CoserListSelectionModel; @@ -293,9 +293,14 @@ for (Object selectedSpecyType : selectedSpecyTypes) { specyTypes.add((String)selectedSpecyType); } + + List<String> filteredSpecies = projectService.getProjectSpecies(project, selection, strata, specyTypes); - List<String> species = projectService.getProjectSpecies(project, selection, strata, specyTypes); - view.getFilteredSpecyListModel().setSpecies(species); + // ne fait pas apparaitre les especes deja selectionnées + if (selection.getSelectedSpecies() != null) { + filteredSpecies.removeAll(selection.getSelectedSpecies()); + } + view.getFilteredSpecyListModel().setSpecies(filteredSpecies); } /** @@ -548,11 +553,18 @@ for (Object selectedFilteredSpecy : selectedFilteredSpecies) { selectedSpecies.add((String)selectedFilteredSpecy); } + + // met a jour le liste des especes selectionnées + List<String> selectedSpeciesList = new ArrayList<String>(selectedSpecies); + Collections.sort(selectedSpeciesList); + selection.setSelectedSpecies(selectedSpeciesList); + view.getSelectedSpecyListModel().setSpecies(selectedSpeciesList); - List<String> speciesList = new ArrayList<String>(selectedSpecies); - Collections.sort(speciesList); - selection.setSelectedSpecies(speciesList); - view.getSelectedSpecyListModel().setSpecies(speciesList); + // met a jour la liste filtrée (retrait des especes selectionnées) + // ne fait pas apparaitre les especes deja selectionnées + List<String> filteredSpecies = view.getFilteredSpecyListModel().getSpecies(); + filteredSpecies.removeAll(selectedSpeciesList); + view.getFilteredSpecyListModel().setSpecies(filteredSpecies); } /** @@ -564,14 +576,22 @@ Selection selection = view.getContextValue(Selection.class); + List<String> filteredSpecies = new ArrayList<String>(view.getFilteredSpecyListModel().getSpecies()); List<String> selectedSpecies = new ArrayList<String>(view.getSelectedSpecyListModel().getSpecies()); Object[] selectedSelectedSpecies = view.getSelectedSpecyList().getSelectedValues(); for (Object selectedSelectedSpecy : selectedSelectedSpecies) { - selectedSpecies.remove(selectedSelectedSpecy); + selectedSpecies.remove((String)selectedSelectedSpecy); + filteredSpecies.add((String)selectedSelectedSpecy); } Collections.sort(selectedSpecies); + Collections.sort(filteredSpecies); + + // met à jour la liste des especes selectionnées selection.setSelectedSpecies(selectedSpecies); view.getSelectedSpecyListModel().setSpecies(selectedSpecies); + + // met a jour la liste filtrée (retrait des especes selectionnées) + view.getFilteredSpecyListModel().setSpecies(filteredSpecies); } /**