]> source.dussan.org Git - archiva.git/blob
8b934cb11360f680604fda1b0a8b32e5e57c2328
[archiva.git] /
1 package org.codehaus.redback.integration.eXc;
2
3 /*
4  * Copyright 2005-2006 The Codehaus.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 import java.util.Collection;
20 import java.util.Collections;
21 import java.util.List;
22
23 import org.codehaus.redback.integration.util.UserComparator;
24 import org.extremecomponents.table.callback.ProcessRowsCallback;
25 import org.extremecomponents.table.core.TableConstants;
26 import org.extremecomponents.table.core.TableModel;
27 import org.extremecomponents.table.limit.Sort;
28
29 /**
30  * ProcessUserRowsCallback - Efficient and safe sort callback for user manager provided user lists.
31  *
32  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
33  * @version $Id$
34  */
35 public class ProcessUserRowsCallback
36     extends ProcessRowsCallback
37 {
38
39     @SuppressWarnings("unchecked")
40     public Collection sortRows( TableModel model, Collection rows )
41         throws Exception
42     {
43         boolean sorted = model.getLimit().isSorted();
44
45         if ( !sorted )
46         {
47             return rows;
48         }
49
50         Sort sort = model.getLimit().getSort();
51         String property = sort.getProperty();
52         String sortOrder = sort.getSortOrder();
53
54         System.out.println( "SORTING: " + property + " - " + sortOrder );
55
56         UserComparator comparator = new UserComparator( property, TableConstants.SORT_ASC.equals( sortOrder ) );
57         Collections.sort( (List) rows, comparator );
58
59         return rows;
60     }
61
62 }