/* * Ext GWT 2.2.4 - Ext for GWT * Copyright(c) 2007-2010, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ package com.extjs.gxt.ui.client.store; import java.util.Comparator; import com.extjs.gxt.ui.client.data.ModelData; import com.extjs.gxt.ui.client.util.DefaultComparator; /** * Sorts the records in a store. * * @param <M> the record type */ public class StoreSorter<M extends ModelData> { /** * The default comparator instance. */ public static DefaultComparator<Object> DEFAULT_COMPARATOR = new DefaultComparator<Object>(); protected Comparator<Object> comparator; /** * Creates a new store sorter. */ public StoreSorter() { comparator = DEFAULT_COMPARATOR; } /** * Creates a new store sorter. * * @param comparator the comparator */ public StoreSorter(Comparator<Object> comparator) { this.comparator = comparator; } public int compare(Store<M> store, M m1, M m2, String property) { if (property != null) { Object v1 = m1.get(property); Object v2 = m2.get(property); return comparator.compare(v1, v2); } return comparator.compare(m1, m2); } }