=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/comparator/UserRoleComparator.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/comparator/UserRoleComparator.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/comparator/UserRoleComparator.java 2011-06-18 17:33:31 +0000 @@ -0,0 +1,54 @@ +package org.hisp.dhis.user.comparator; + +/* + * Copyright (c) 2004-2010, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.util.Comparator; + +import org.hisp.dhis.user.UserAuthorityGroup; + +/** + * @author mortenoh + */ +public class UserRoleComparator + implements Comparator +{ + public int compare( UserAuthorityGroup ur0, UserAuthorityGroup ur1 ) + { + if ( ur0 == null ) + { + return 1; + } + + if ( ur1 == null ) + { + return -1; + } + + return ur0.getName().compareTo( ur1.getName() ); + } +} === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetUserRolesAction.java' --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetUserRolesAction.java 2011-06-18 17:19:28 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/commons/action/GetUserRolesAction.java 2011-06-18 17:33:31 +0000 @@ -28,18 +28,19 @@ */ import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import org.hisp.dhis.paging.ActionPagingSupport; import org.hisp.dhis.user.UserAuthorityGroup; import org.hisp.dhis.user.UserService; - -import com.opensymphony.xwork2.Action; +import org.hisp.dhis.user.comparator.UserRoleComparator; /** * @author mortenoh */ public class GetUserRolesAction - implements Action + extends ActionPagingSupport { // ------------------------------------------------------------------------- // Dependencies @@ -72,6 +73,15 @@ { userRoles = new ArrayList( userService.getAllUserAuthorityGroups() ); + Collections.sort( userRoles, new UserRoleComparator() ); + + if ( usePaging ) + { + this.paging = createPaging( userRoles.size() ); + + userRoles = userRoles.subList( paging.getStartPos(), paging.getEndPos() ); + } + return SUCCESS; }