Author: chatellier Date: 2010-12-17 16:41:42 +0000 (Fri, 17 Dec 2010) New Revision: 427 Log: Vidage des lignes si le contenu sup?\195?\169rieur a chang?\195?\169. Am?\195?\169lioration de la coh?\195?\169rence apres rechargement des donn?\195?\169es. Modified: 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/SelectionHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-12-17 16:39:06 UTC (rev 426) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-12-17 16:41:42 UTC (rev 427) @@ -174,14 +174,11 @@ * @param view view */ public void initSelection(SelectionView view) { - Selection selection = view.getContextValue(Selection.class); // initialize la liste de toutes les années // c'est normalement la seule initialisation a faire SelectionDetailsView detailView = view.getSelectionDetailsTab(); - detailView.getYearsListModel().setYears(selection.getAllYears()); - // tout est selectionné par defaut - ((CoserListSelectionModel)detailView.getYearsList().getSelectionModel()).setSelectedObjects(selection.getSelectedYears()); + initSelectionYears(detailView); view.setCreationState(true); @@ -189,8 +186,30 @@ view.setEnabledAt(1, false); // selection lists view.setEnabledAt(2, false); // rsufi } - + /** + * Initialise la listes des années disponible dans les données + * chargées. + * + * @param view view + */ + public void initSelectionYears(SelectionDetailsView view) { + Selection selection = view.getContextValue(Selection.class); + view.getYearsListModel().setYears(selection.getAllYears()); + + // tout est selectionné par defaut + ((CoserListSelectionModel)view.getYearsList().getSelectionModel()).setSelectedObjects(selection.getSelectedYears()); + + // clear other lists + view.getStrataListModel().setStrata(new ArrayList<String>()); + view.getStrataList().clearSelection(); + view.getFilteredSpeciesListModel().setSpecies(new ArrayList<String>()); + view.getFilteredSpeciesList().clearSelection(); + view.getSelectedSpeciesListModel().setSpecies(new ArrayList<String>()); + view.getSelectedSpeciesList().clearSelection(); + } + + /** * Recharge la selection en valorisant les différentes listes. * * Fait ici, car sinon, les evenements ne se déclenchent pas au même @@ -213,7 +232,7 @@ ((CoserListSelectionModel)detailView.getYearsList().getSelectionModel()).setSelectedObjects(selectedYears); // details view : fill strata data and selection - updateSelectionYearsData(detailView); + updateSelectionYearsData(detailView, true); List<String> selectedStrata = selection.getSelectedStrata(); ((CoserListSelectionModel)detailView.getStrataList().getSelectionModel()).setSelectedObjects(selectedStrata); @@ -256,16 +275,10 @@ _("coser.ui.selection.selectionTitle"), JOptionPane.INFORMATION_MESSAGE); // affiche les années + initSelectionYears(view); view.getValidDatesButton().setEnabled(true); view.getDetailAccordionPane().setSelected(1); - - // vide les autres listes - view.getStrataListModel().setStrata(new ArrayList<String>()); - view.getStrataList().clearSelection(); - view.getFilteredSpeciesListModel().setSpecies(new ArrayList<String>()); - view.getFilteredSpeciesList().clearSelection(); - view.getSelectedSpeciesListModel().setSpecies(new ArrayList<String>()); - view.getSelectedSpeciesList().clearSelection(); + } catch (CoserBusinessException ex) { throw new CoserException("Can't reload control data", ex); } @@ -275,9 +288,11 @@ /** * Rafraichit la liste des zones suite à la selection des années. * + * N'affiche pas de message utilsateur dans le cas d'un reload. + * * @param view view */ - public void updateSelectionYearsData(SelectionDetailsView view) { + protected void updateSelectionYearsData(SelectionDetailsView view, boolean reload) { Project project = view.getContextValue(Project.class); Selection selection = view.getContextValue(Selection.class); ProjectService projectService = view.getContextValue(ProjectService.class); @@ -301,14 +316,35 @@ // auto selectionne les strates par default view.getStrataList().addSelectionInterval(0, strata.size() - 1); - + + // clear other sublists + view.getFilteredSpeciesListModel().setSpecies(new ArrayList<String>()); + view.getFilteredSpeciesList().clearSelection(); + view.getSelectedSpeciesListModel().setSpecies(new ArrayList<String>()); + view.getSelectedSpeciesList().clearSelection(); + + if (!reload) { + JOptionPane.showMessageDialog(view, _("coser.ui.selection.detail.yearsvalidated"), + _("coser.ui.selection.selectionTitle"), JOptionPane.INFORMATION_MESSAGE); + } + if (log.isDebugEnabled()) { - log.debug("Strata list refreshed"); + log.debug("Years list refreshed"); } } catch (CoserBusinessException ex) { throw new CoserException("Can't filters data with specified years", ex); } } + + /** + * Rafraichit la liste des zones suite à la selection des années et affiche + * un message utilsateur. + * + * @param view view + */ + public void updateSelectionYearsData(SelectionDetailsView view) { + updateSelectionYearsData(view, false); + } /** * Init openmap toolbar and openmap layers.