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 ^^

Tagués avec : ,
Publié dans Java

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*