← Back to team overview

dhis2-devs team mailing list archive

[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">