Tri d’une liste Java.Util.List
Dans le cadre d’une application GWT qui utilise le nouvel objet graphique Cell List, j’ai eu besoin d’effectuer un tri sur les objets métiers qu’il contient.
L’objet Cell List utilise un com.google.gwt.view.client.ListDataProvider qui lui implémente un objet List.
Une fois que l’on sait ça, c’est tellement simple, que je n’y est pas pensé de suite.
/** * ObjetMetier => un objet représentant un élément d'une BDD * sortOn => le nom de l'attribut sur lequel on veux faire le tri */ private void doSortObjetMetier(final String sortOn) { Collections.sort(dataProvider.getList(), new Comparator<ObjetMetier>() { @Override public int compare(ObjetMetier arg0, ObjetMetier arg1) { if(sortOn.equals("attribut1")) { return (arg0 == null || arg0.attribut1() == null || arg1 == null || arg1.attribut1() == null) ? -1 : arg0.attribut1().compareTo(arg1.attribut1()); } else if(sortOn.equals("attribut2")) { return (arg0 == null || arg0.attribut2() == null || arg1 == null || arg1.attribut2() == null) ? -1 : arg0.attribut2().compareTo(arg1.attribut2()); } return -1; } }); dataProvider.refresh(); }
C’est presque trop simple ^^
Laisser un commentaire