You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/09/13 06:49:21 UTC

svn commit: r1384205 - in /incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin: PagedEntityListPanel.html PagedEntityListPanel.java

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);