=== modified file 'dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/sortorder/DefaultSortOrderManager.java' --- dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/sortorder/DefaultSortOrderManager.java 2009-03-03 16:46:36 +0000 +++ dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/sortorder/DefaultSortOrderManager.java 2009-10-06 11:29:00 +0000 @@ -29,7 +29,9 @@ import java.util.ArrayList; import java.util.Comparator; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.comparator.DataElementAlternativeNameComparator; @@ -64,10 +66,46 @@ { private final static String SETTING_NAME_SORT_ORDER = "currentSortOrder"; + private Map> dataElementComparators; + private Map> indicatorComparators; + private Map> organisationUnitComparators; + private Map> dataSetComparators; + + public void init() + { + dataElementComparators = new HashMap>(); + dataElementComparators.put( SORT_ORDER_NAME, new DataElementNameComparator() ); + dataElementComparators.put( SORT_ORDER_SHORTNAME, new DataElementShortNameComparator() ); + dataElementComparators.put( SORT_ORDER_ALTERNATIVENAME, new DataElementAlternativeNameComparator() ); + dataElementComparators.put( SORT_ORDER_CODE, new DataElementCodeComparator() ); + dataElementComparators.put( SORT_ORDER_CUSTOM, new DataElementSortOrderComparator() ); + + indicatorComparators = new HashMap>(); + indicatorComparators.put( SORT_ORDER_NAME, new IndicatorNameComparator() ); + indicatorComparators.put( SORT_ORDER_SHORTNAME, new IndicatorShortNameComparator() ); + indicatorComparators.put( SORT_ORDER_ALTERNATIVENAME, new IndicatorAlternativeNameComparator() ); + indicatorComparators.put( SORT_ORDER_CODE, new IndicatorCodeComparator() ); + indicatorComparators.put( SORT_ORDER_CUSTOM, new IndicatorSortOrderComparator() ); + + organisationUnitComparators = new HashMap>(); + organisationUnitComparators.put( SORT_ORDER_NAME, new OrganisationUnitNameComparator() ); + organisationUnitComparators.put( SORT_ORDER_SHORTNAME, new OrganisationUnitShortNameComparator() ); + organisationUnitComparators.put( SORT_ORDER_ALTERNATIVENAME, new OrganisationUnitNameComparator() ); // SIC + organisationUnitComparators.put( SORT_ORDER_CODE, new OrganisationUnitCodeComparator() ); + organisationUnitComparators.put( SORT_ORDER_CUSTOM, new OrganisationUnitNameComparator() ); // SIC + + dataSetComparators = new HashMap>(); + dataSetComparators.put( SORT_ORDER_NAME, new DataSetNameComparator() ); + dataSetComparators.put( SORT_ORDER_SHORTNAME, new DataSetShortNameComparator() ); + dataSetComparators.put( SORT_ORDER_ALTERNATIVENAME, new DataSetNameComparator() ); // SIC + dataSetComparators.put( SORT_ORDER_CODE, new DataSetCodeComparator() ); + dataSetComparators.put( SORT_ORDER_CUSTOM, new DataSetSortOrderComparator() ); + } + // ------------------------------------------------------------------------- // Dependencies // ------------------------------------------------------------------------- - + private UserSettingService userSettingService; public void setUserSettingService( UserSettingService userSettingService ) @@ -97,116 +135,22 @@ public Comparator getCurrentDataElementSortOrderComparator() { - String sortOrder = getCurrentSortOrder(); - - if ( sortOrder != null ) - { - if ( sortOrder.equals( SORT_ORDER_NAME ) ) - { - return new DataElementNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_SHORTNAME ) ) - { - return new DataElementShortNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_ALTERNATIVENAME ) ) - { - return new DataElementAlternativeNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_CODE ) ) - { - return new DataElementCodeComparator(); - } - if ( sortOrder.equals( SORT_ORDER_CUSTOM ) ) - { - return new DataElementSortOrderComparator(); - } - } - - return new DataElementNameComparator(); + return dataElementComparators.get( getCurrentSortOrder() ); } public Comparator getCurrentIndicatorSortOrderComparator() { - String sortOrder = getCurrentSortOrder(); - - if ( sortOrder != null ) - { - if ( sortOrder.equals( SORT_ORDER_NAME ) ) - { - return new IndicatorNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_SHORTNAME ) ) - { - return new IndicatorShortNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_ALTERNATIVENAME ) ) - { - return new IndicatorAlternativeNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_CODE ) ) - { - return new IndicatorCodeComparator(); - } - if ( sortOrder.equals( SORT_ORDER_CUSTOM ) ) - { - return new IndicatorSortOrderComparator(); - } - } - - return new IndicatorNameComparator(); + return indicatorComparators.get( getCurrentSortOrder() ); } public Comparator getCurrentOrganisationUnitSortOrderComparator() { - String sortOrder = getCurrentSortOrder(); - - if ( sortOrder != null ) - { - if ( sortOrder.equals( SORT_ORDER_NAME ) || sortOrder.equals( SORT_ORDER_ALTERNATIVENAME ) ) - { - return new OrganisationUnitNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_SHORTNAME ) ) - { - return new OrganisationUnitShortNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_CODE ) ) - { - return new OrganisationUnitCodeComparator(); - } - - // Custom sort order not implemented - } - - return new OrganisationUnitNameComparator(); + return organisationUnitComparators.get( getCurrentSortOrder() ); } public Comparator getCurrentDataSetSortOrderComparator() { - String sortOrder = getCurrentSortOrder(); - - if ( sortOrder != null ) - { - if ( sortOrder.equals( SORT_ORDER_NAME ) || sortOrder.equals( SORT_ORDER_ALTERNATIVENAME ) ) - { - return new DataSetNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_SHORTNAME ) ) - { - return new DataSetShortNameComparator(); - } - if ( sortOrder.equals( SORT_ORDER_CODE ) ) - { - return new DataSetCodeComparator(); - } - if ( sortOrder.equals( SORT_ORDER_CUSTOM ) ) - { - return new DataSetSortOrderComparator(); - } - } - - return new DataSetNameComparator(); + return dataSetComparators.get( getCurrentSortOrder() ); } public List getSortOrders() === modified file 'dhis-2/dhis-options/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-options/src/main/resources/META-INF/dhis/beans.xml 2009-09-28 19:33:22 +0000 +++ dhis-2/dhis-options/src/main/resources/META-INF/dhis/beans.xml 2009-10-06 11:29:00 +0000 @@ -5,7 +5,7 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> + class="org.hisp.dhis.options.sortorder.DefaultSortOrderManager" init-method="init">