dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #22848
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 11121: Add paging and improve optionset filter in Optionset management.
------------------------------------------------------------
revno: 11121
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2013-05-31 11:56:13 +0700
message:
Add paging and improve optionset filter in Optionset management.
added:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/comparator/
dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/comparator/OptionSetNameComparator.java
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/OptionService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/option/DefaultOptionService.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/option/GetOptionSetListAction.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/optionSet.vm
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/OptionService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/OptionService.java 2012-11-01 15:15:26 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/OptionService.java 2013-05-31 04:56:13 +0000
@@ -36,20 +36,28 @@
public interface OptionService
{
final String ID = OptionService.class.getName();
-
+
int saveOptionSet( OptionSet optionSet );
-
+
void updateOptionSet( OptionSet optionSet );
-
+
OptionSet getOptionSet( int id );
-
+
OptionSet getOptionSet( String uid );
-
+
OptionSet getOptionSetByName( String name );
-
+
void deleteOptionSet( OptionSet optionSet );
Collection<OptionSet> getAllOptionSets();
+
+ List<String> getOptions( int optionSetId, String name, Integer max );
+
+ Integer getOptionSetsCountByName( String name );
+
+ Collection<OptionSet> getOptionSetsBetweenByName( String name, int first, int max );
+
+ Collection<OptionSet> getOptionSetsBetween( int first, int max );
- List<String> getOptions( int optionSetId, String key, Integer max );
+ Integer getOptionSetCount();
}
=== added directory 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/comparator'
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/comparator/OptionSetNameComparator.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/comparator/OptionSetNameComparator.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/option/comparator/OptionSetNameComparator.java 2013-05-31 04:56:13 +0000
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2004-2012, 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.
+ */
+
+package org.hisp.dhis.option.comparator;
+
+import java.util.Comparator;
+
+import org.hisp.dhis.option.OptionSet;
+
+/**
+ * @author Chau Thu Tran
+ * @version $ OptionSetComparator.java May 31, 2013 11:23:50 AM $
+ */
+public class OptionSetNameComparator
+ implements Comparator<OptionSet>
+{
+ public int compare( OptionSet optionSet0, OptionSet optionSet1 )
+ {
+ return optionSet0.getDisplayName().compareTo( optionSet1.getDisplayName() );
+ }
+}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/option/DefaultOptionService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/option/DefaultOptionService.java 2013-01-28 06:59:48 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/option/DefaultOptionService.java 2013-05-31 04:56:13 +0000
@@ -31,6 +31,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import org.hisp.dhis.i18n.I18nService;
@@ -121,4 +122,24 @@
return options;
}
+
+ public Integer getOptionSetsCountByName( String name )
+ {
+ return optionStore.getCountLikeName( name );
+ }
+
+ public Collection<OptionSet> getOptionSetsBetweenByName( String name, int first, int max )
+ {
+ return new HashSet<OptionSet>( i18n( i18nService, optionStore.getAllLikeNameOrderedName( name, first, max ) ));
+ }
+
+ public Collection<OptionSet> getOptionSetsBetween( int first, int max )
+ {
+ return new HashSet<OptionSet>( i18n( i18nService, optionStore.getAllOrderedName( first, max ) ));
+ }
+
+ public Integer getOptionSetCount()
+ {
+ return optionStore.getCount();
+ }
}
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/option/GetOptionSetListAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/option/GetOptionSetListAction.java 2012-02-08 04:05:53 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/option/GetOptionSetListAction.java 2013-05-31 04:56:13 +0000
@@ -27,12 +27,18 @@
package org.hisp.dhis.dataadmin.action.option;
+import static org.apache.commons.lang.StringUtils.isNotBlank;
+
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.hisp.dhis.attribute.Attribute;
import org.hisp.dhis.option.OptionService;
import org.hisp.dhis.option.OptionSet;
-
-import com.opensymphony.xwork2.Action;
+import org.hisp.dhis.option.comparator.OptionSetNameComparator;
+import org.hisp.dhis.paging.ActionPagingSupport;
/**
* @author Chau Thu Tran
@@ -40,7 +46,7 @@
* @version $GetOptionSetListAction.java Feb 3, 2012 9:28:11 PM$
*/
public class GetOptionSetListAction
- implements Action
+ extends ActionPagingSupport<Attribute>
{
// -------------------------------------------------------------------------------------------------
// Dependencies
@@ -49,25 +55,33 @@
private OptionService optionService;
// -------------------------------------------------------------------------------------------------
- // Input
- // -------------------------------------------------------------------------------------------------
-
- private Collection<OptionSet> optionSets;
-
- // -------------------------------------------------------------------------------------------------
- // Setters
- // -------------------------------------------------------------------------------------------------
+ // Input & Output
+ // -------------------------------------------------------------------------------------------------
+
+ private List<OptionSet> optionSets;
public void setOptionService( OptionService optionService )
{
this.optionService = optionService;
}
- public Collection<OptionSet> getOptionSets()
+ public List<OptionSet> getOptionSets()
{
return optionSets;
}
+ private String key;
+
+ public String getKey()
+ {
+ return key;
+ }
+
+ public void setKey( String key )
+ {
+ this.key = key;
+ }
+
// -------------------------------------------------------------------------------------------------
// Action implementation
// -------------------------------------------------------------------------------------------------
@@ -76,8 +90,22 @@
public String execute()
throws Exception
{
- optionSets = optionService.getAllOptionSets();
-
+ if ( isNotBlank( key ) )
+ {
+ this.paging = createPaging( optionService.getOptionSetsCountByName( key ) );
+
+ optionSets = new ArrayList<OptionSet>( optionService.getOptionSetsBetweenByName( key, paging.getStartPos(),
+ paging.getPageSize() ) );
+ }
+ else
+ {
+ this.paging = createPaging( optionService.getOptionSetCount() );
+
+ optionSets = new ArrayList<OptionSet>( optionService.getOptionSetsBetween( paging.getStartPos(), paging.getPageSize() ) );
+ }
+
+ Collections.sort( optionSets, new OptionSetNameComparator() );
+
return SUCCESS;
}
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/optionSet.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/optionSet.vm 2013-05-22 13:50:17 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/optionSet.vm 2013-05-31 04:56:13 +0000
@@ -15,9 +15,7 @@
<col>
<col width="120">
<tr>
- <td>
- $i18n.getString( "filter_by_name" ): <input type="text" onkeyup="filterValues( this.value , 1)" style="width:250px"/>
- </td>
+ <td>#filterDiv( "optionSet" )</td>
<td colspan="3" style="text-align:right">
<input type="button" value="$i18n.getString( "add_new" )" onclick="window.location.href='showAddOptionSetForm.action'" style="width:70px">
</td>
@@ -46,6 +44,8 @@
#end
</tbody>
</table>
+ <p></p>
+ #parse( "/dhis-web-commons/paging/paging.vm" )
</td>
<td style="width:20em; padding-left:2em; vertical-align:top">