Author: solomax
Date: Thu Sep 13 04:49:20 2012
New Revision: 1384205

URL: http://svn.apache.org/viewvc?rev=1384205&view=rev
Log:
Wicket: entities per page are changed as expected

Modified:
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.html
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.html
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.html?rev=1384205&r1=1384204&r2=1384205&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.html
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.html
 Thu Sep 13 04:49:20 2012
@@ -21,7 +21,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml"; 
        
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd"; 
lang="en">
        <wicket:panel>
-               <select wicket:id="entityesPerPage"></select>
-               <span wicket:id="navigator">[dataview navigator]</span>
+               <form wicket:id="pagingForm">
+                       <select wicket:id="entitiesPerPage"></select>
+                       <span wicket:id="navigator">[dataview navigator]</span>
+               </form>
        </wicket:panel>
 </html>
\ No newline at end of file

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.java?rev=1384205&r1=1384204&r2=1384205&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.java
 Thu Sep 13 04:49:20 2012
@@ -22,36 +22,41 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.openmeetings.persistence.beans.OmEntity;
-import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 import 
org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
 import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.model.PropertyModel;
 
 public abstract class PagedEntityListPanel extends AdminPanel {
        private static final long serialVersionUID = -4280843184916302671L;
-       private int entityesPerPage = 50;
+       private int entitiesPerPage = 50;
        private List<Integer> numbers = Arrays.asList(10, 25, 50, 75, 100, 200);
        
        public PagedEntityListPanel(String id, final DataView<? extends 
OmEntity> dataView) {
                super(id);
                
-               dataView.setItemsPerPage(entityesPerPage);
-               final AjaxPagingNavigator navigator = new 
AjaxPagingNavigator("navigator", dataView);
-               add(navigator.setOutputMarkupId(true));
-               
-               add(new DropDownChoice<Integer>("entityesPerPage", new 
PropertyModel<Integer>(this, "entityesPerPage"), numbers)
-                       .add(new AjaxEventBehavior("change") {
-                               private static final long serialVersionUID = 
7721662282201431562L;
+               dataView.setItemsPerPage(entitiesPerPage);
+               final Form<Void> f = new Form<Void>("pagingForm");
+               f.setOutputMarkupId(true);
+               f.add(new AjaxPagingNavigator("navigator", 
dataView).setOutputMarkupId(true))
+                       .add(new DropDownChoice<Integer>("entitiesPerPage", new 
PropertyModel<Integer>(this, "entitiesPerPage"), numbers)
+                               .add(new 
AjaxFormComponentUpdatingBehavior("onchange") {
+                                       private static final long 
serialVersionUID = -7754441983330112248L;
 
-                               @Override
-                               protected void onEvent(AjaxRequestTarget 
target) {
-                                       
dataView.setItemsPerPage(entityesPerPage);
-                                       target.add(navigator);
-                                       
PagedEntityListPanel.this.onEvent(target);
-                               }
-                       }));
+                                       @Override
+                                       protected void 
onUpdate(AjaxRequestTarget target) {
+                                               long newPage = 
dataView.getCurrentPage() * dataView.getItemsPerPage() / entitiesPerPage;
+                                               
dataView.setItemsPerPage(entitiesPerPage);
+                                               
dataView.setCurrentPage(newPage);
+                                               target.add(f);
+                                               
PagedEntityListPanel.this.onEvent(target);
+                                       }
+                               }));
+               
+               add(f);
        }
 
        protected abstract void onEvent(AjaxRequestTarget target);


Reply via email to