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/11 20:26:03 UTC

svn commit: r1383512 - in /incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings: data/basic/ persistence/beans/ persistence/beans/domain/ persistence/beans/lang/ persistence/beans/user/ web/components/ web/components/admin/ web/compone...

Author: solomax
Date: Tue Sep 11 18:26:03 2012
New Revision: 1383512

URL: http://svn.apache.org/viewvc?rev=1383512&view=rev
Log:
Entity list is partially pageable and partially generalized.
Language editor stub is added

Added:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/OmEntity.java
    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
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.html
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Fieldmanagment.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.html
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.java

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Fieldmanagment.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Fieldmanagment.java?rev=1383512&r1=1383511&r2=1383512&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Fieldmanagment.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Fieldmanagment.java Tue Sep 11 18:26:03 2012
@@ -381,6 +381,15 @@ public class Fieldmanagment {
 		return q.getResultList();
 	}
 
+	public List<Fieldlanguagesvalues> getMixedFieldValuesList(Long language_id, int first, int count) {
+		// all Fieldlanguagesvalues in current Language
+		TypedQuery<Fieldlanguagesvalues> q = em.createNamedQuery("allFieldLanguageValues", Fieldlanguagesvalues.class);
+		q.setParameter("language_id", language_id);
+		q.setFirstResult(first);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+
 	public List<Fieldlanguagesvalues> getUntranslatedFieldValuesList(Long language_id) {
 		// all FieldValuesIds in current Language
 		TypedQuery<Long> q0 = em.createNamedQuery("allFieldValuesIds", Long.class);

Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/OmEntity.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/OmEntity.java?rev=1383512&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/OmEntity.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/OmEntity.java Tue Sep 11 18:26:03 2012
@@ -0,0 +1,5 @@
+package org.apache.openmeetings.persistence.beans;
+
+public interface OmEntity {
+
+}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java?rev=1383512&r1=1383511&r2=1383512&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java Tue Sep 11 18:26:03 2012
@@ -76,6 +76,9 @@ public class Organisation_Users implemen
 	@Element(data=true, required=false)
 	private Boolean isModerator;
 	
+	public Organisation_Users() {
+	}
+	
 	public Organisation_Users(Organisation organisation) {
 		this.organisation = organisation;
 	}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java?rev=1383512&r1=1383511&r2=1383512&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/Fieldlanguagesvalues.java Tue Sep 11 18:26:03 2012
@@ -36,6 +36,8 @@ import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
+import org.apache.openmeetings.persistence.beans.OmEntity;
+
 @Entity
 @NamedQueries({
 	@NamedQuery(name = "allFieldLanguageValues", query = "SELECT flv FROM Fieldlanguagesvalues flv "
@@ -52,7 +54,7 @@ import javax.persistence.Table;
 		+ "		AND flv.language_id = 1 AND flv.fieldvalues_id NOT IN (:id_list)")
 })
 @Table(name = "fieldlanguagesvalues")
-public class Fieldlanguagesvalues implements Serializable {
+public class Fieldlanguagesvalues implements Serializable, OmEntity {
 	private static final long serialVersionUID = 1965055047163639210L;
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java?rev=1383512&r1=1383511&r2=1383512&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java Tue Sep 11 18:26:03 2012
@@ -39,6 +39,7 @@ import javax.persistence.OneToOne;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 
+import org.apache.openmeetings.persistence.beans.OmEntity;
 import org.apache.openmeetings.persistence.beans.adresses.Adresses;
 import org.apache.openmeetings.persistence.beans.adresses.States;
 import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
@@ -51,162 +52,159 @@ import org.simpleframework.xml.Root;
 
 @Entity
 @NamedQueries({
-	@NamedQuery(name="getAllUsers", query="SELECT u FROM Users u")
-	, @NamedQuery(name="getNondeletedUsers", query="SELECT u FROM Users u WHERE u.deleted = false")
-	, @NamedQuery(name="getUsersByOrganisationId",
-    	query="SELECT u FROM Users u WHERE u.deleted = false AND u.organisation_users.organisation.organisation_id = :organisation_id")
-})
+		@NamedQuery(name = "getAllUsers", query = "SELECT u FROM Users u"),
+		@NamedQuery(name = "getNondeletedUsers", query = "SELECT u FROM Users u WHERE u.deleted = false"),
+		@NamedQuery(name = "getUsersByOrganisationId", query = "SELECT u FROM Users u WHERE u.deleted = false AND u.organisation_users.organisation.organisation_id = :organisation_id") })
 @Table(name = "users")
-@Root(name="user")
-public class Users implements Serializable {
+@Root(name = "user")
+public class Users implements Serializable, OmEntity {
 	private static final long serialVersionUID = -2265479712596674065L;
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
 	@Column(name = "id")
-	@Element(data=true)
+	@Element(data = true)
 	private Long user_id;
-	
+
 	@Column(name = "age")
-	@Element(data=true)
+	@Element(data = true)
 	private Date age;
-	
+
 	@Column(name = "availible")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Integer availible;
-	
+
 	@Column(name = "firstname")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String firstname;
-	
+
 	@Column(name = "lastlogin")
 	private Date lastlogin;
-	
+
 	@Column(name = "lastname")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String lastname;
-	
+
 	@Column(name = "lasttrans")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Long lasttrans;
-	
+
 	@Column(name = "level_id")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Long level_id;
-	
+
 	@Column(name = "login")
-	@Element(data=true)
+	@Element(data = true)
 	private String login;
-	
+
 	@Column(name = "password")
-	@Element(name="pass", data=true)
+	@Element(name = "pass", data = true)
 	private String password;
-	
+
 	@Column(name = "regdate")
-	@Element(data=true)
+	@Element(data = true)
 	private Date regdate;
-	
+
 	@Column(name = "status")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Integer status;
-	
+
 	@Column(name = "salutations_id")
-	@Element(name="title_id", data=true, required=false)
+	@Element(name = "title_id", data = true, required = false)
 	private Long salutations_id;
-	
+
 	@Column(name = "starttime")
 	private Date starttime;
-	
+
 	@Column(name = "updatetime")
 	private Date updatetime;
-	
+
 	@Column(name = "pictureuri")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String pictureuri;
-	
+
 	@Column(name = "deleted")
-	@Element(data=true)
+	@Element(data = true)
 	private boolean deleted;
-	
+
 	@Column(name = "language_id")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Long language_id;
-	
+
 	@Column(name = "resethash")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String resethash;
-	
+
 	@Column(name = "activatehash")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String activatehash;
 
-	
 	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
 	@JoinColumn(name = "adresses_id", insertable = true, updatable = true)
-	@Element(name="address", required=false)
+	@Element(name = "address", required = false)
 	private Adresses adresses;
-	
+
 	@Transient
 	private Userlevel userlevel;
-	
+
 	@Transient
 	private Userdata rechnungsaddressen;
-	
+
 	@Transient
 	private Userdata lieferadressen;
 
 	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
 	@JoinColumn(name = "user_id", insertable = true, updatable = true)
-	@ElementList(name="organisations")
+	@ElementList(name = "organisations")
 	private List<Organisation_Users> organisation_users = new ArrayList<Organisation_Users>();
 
 	@ManyToOne(fetch = FetchType.EAGER)
 	@JoinColumn(name = "userSipDataId", insertable = true, updatable = true)
-	@Element(name="sipData", required=false)
+	@Element(name = "sipData", required = false)
 	private UserSipData userSipData;
 
 	// Vars to simulate external Users
 	@Column(name = "externalUserId")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String externalUserId;
-	
+
 	@Column(name = "externalUserType")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String externalUserType;
 
 	@ManyToOne(fetch = FetchType.EAGER)
 	@JoinColumn(name = "omtimezoneId", insertable = true, updatable = true)
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private OmTimeZone omTimeZone; // In UTC +/- hours
 
 	@Transient
 	private Sessiondata sessionData;
-	
+
 	@Column(name = "forceTimeZoneCheck")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Boolean forceTimeZoneCheck;
 
 	@Column(name = "sendSMS")
 	private boolean sendSMS;
 
 	@Column(name = "user_offers")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String userOffers;
-	
+
 	@Column(name = "user_searchs")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private String userSearchs;
-	
+
 	@Column(name = "show_contact_data")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Boolean showContactData;
-	
+
 	@Column(name = "show_contact_data_to_contacts")
-	@Element(data=true, required=false)
+	@Element(data = true, required = false)
 	private Boolean showContactDataToContacts;
-	
+
 	@OneToOne(fetch = FetchType.EAGER)
 	@JoinColumn(name = "server_id")
-	@Element(required=false)
+	@Element(required = false)
 	private Server server;
 
 	public Long getUser_id() {
@@ -355,7 +353,7 @@ public class Users implements Serializab
 	public void setSalutations_id(Long salutations_id) {
 		this.salutations_id = salutations_id;
 	}
-	
+
 	public Userlevel getUserlevel() {
 		return userlevel;
 	}
@@ -403,7 +401,7 @@ public class Users implements Serializab
 	public void setLanguage_id(Long language_id) {
 		this.language_id = language_id;
 	}
-	
+
 	public List<Organisation_Users> getOrganisation_users() {
 		return organisation_users;
 	}
@@ -526,8 +524,8 @@ public class Users implements Serializab
 	public void setServer(Server server) {
 		this.server = server;
 	}
-	
+
 	public String getPhoneForSMS() {
 		return getSendSMS() ? getAdresses().getPhone() : "";
-}
+	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java?rev=1383512&r1=1383511&r2=1383512&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java Tue Sep 11 18:26:03 2012
@@ -25,6 +25,7 @@ import org.apache.openmeetings.web.app.A
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.components.admin.rooms.RoomsPanel;
 import org.apache.openmeetings.web.components.admin.user.UsersPanel;
+import org.apache.openmeetings.web.components.lang.LangPanel;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
@@ -117,6 +118,8 @@ public class MenuPanel extends BasePanel
 									case adminModuleConfiguration:
 										break;
 									case adminModuleLanguages:
+										target.add(contents.replace(new LangPanel("child")));
+										hash = "#admin/lang";
 										break;
 									case adminModuleLDAP:
 										break;

Added: 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=1383512&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.html Tue Sep 11 18:26:03 2012
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<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>
+	</wicket:panel>
+</html>
\ No newline at end of file

Added: 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=1383512&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/PagedEntityListPanel.java Tue Sep 11 18:26:03 2012
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.components.admin;
+
+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.markup.html.navigation.paging.AjaxPagingNavigator;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+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 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;
+
+				@Override
+				protected void onEvent(AjaxRequestTarget target) {
+					dataView.setItemsPerPage(entityesPerPage);
+					target.add(navigator);
+					PagedEntityListPanel.this.onEvent(target);
+				}
+			}));
+	}
+
+	protected abstract void onEvent(AjaxRequestTarget target);
+}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.html?rev=1383512&r1=1383511&r2=1383512&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.html Tue Sep 11 18:26:03 2012
@@ -23,9 +23,9 @@
 	<wicket:panel>
 		<table>
 			<tr>
-				<td>
+				<td valign="top">
 					<span wicket:id="navigator">[dataview navigator]</span>
-					<table>
+					<table wicket:id="userListContainer">
 						<tr>
 							<th><wicket:ommessage key="146" /></th>
 							<th><wicket:ommessage key="147" /></th>

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.java?rev=1383512&r1=1383511&r2=1383512&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UsersPanel.java Tue Sep 11 18:26:03 2012
@@ -24,9 +24,10 @@ import org.apache.openmeetings.data.user
 import org.apache.openmeetings.persistence.beans.user.Users;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.components.admin.AdminPanel;
+import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
@@ -88,9 +89,16 @@ public class UsersPanel extends AdminPan
 		selected = new Label("selected", new PropertyModel<String>(this, "selectedText"));
 		selected.setOutputMarkupId(true);
 		add(selected);
-		dataView.setItemsPerPage(8); //FIXME need to be parametrized
-		add(dataView);
-		add(new AjaxPagingNavigator("navigator", dataView));
+		final WebMarkupContainer userListContainer = new WebMarkupContainer("userListContainer");
+		add(userListContainer.add(dataView).setOutputMarkupId(true));
+		add(new PagedEntityListPanel("navigator", dataView) {
+			private static final long serialVersionUID = 5097048616003411362L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				target.add(userListContainer);
+			}
+		});
 		
 		Users user = new Users();
 		form = new UserForm("form", user);

Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.html?rev=1383512&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.html Tue Sep 11 18:26:03 2012
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<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>
+		<table>
+			<tr>
+				<td valign="top">
+					<span wicket:id="navigator">[dataview navigator]</span>
+					<table wicket:id="langListContainer">
+						<tr>
+							<th><wicket:ommessage key="350" /></th>
+							<th><wicket:ommessage key="351" /></th>
+							<th><wicket:ommessage key="352" /></th>
+						</tr>			
+			    		<tr wicket:id="langList">
+							<td><span wicket:id="lblId"></span></td>
+							<td><span wicket:id="name"></span></td>
+							<td><span wicket:id="value"></span></td>
+						</tr>
+					</table>
+				</td>
+				<td>
+				</td>
+			</tr>
+		</table>
+	</wicket:panel>
+</html>

Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.java?rev=1383512&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/lang/LangPanel.java Tue Sep 11 18:26:03 2012
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.components.lang;
+
+import java.util.Iterator;
+
+import org.apache.openmeetings.data.basic.Fieldmanagment;
+import org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.components.admin.AdminPanel;
+import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.markup.repeater.data.DataView;
+import org.apache.wicket.markup.repeater.data.IDataProvider;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+
+public class LangPanel extends AdminPanel {
+	private static final long serialVersionUID = 5904180813198016592L;
+	long language = 1;
+	
+	public LangPanel(String id) {
+		super(id);
+
+		DataView<Fieldlanguagesvalues> dataView = new DataView<Fieldlanguagesvalues>("langList", new IDataProvider<Fieldlanguagesvalues>(){
+			private static final long serialVersionUID = -6822789354860988626L;
+
+			public void detach() {
+				//empty
+			}
+
+			public Iterator<? extends Fieldlanguagesvalues> iterator(long first, long count) {
+				return Application.getBean(Fieldmanagment.class).getMixedFieldValuesList(language, (int)first, (int)count).iterator();
+			}
+
+			public long size() {
+				return Application.getBean(Fieldmanagment.class).getNextFieldvaluesId() - 1; //FIXME need to be generalized
+			}
+
+			public IModel<Fieldlanguagesvalues> model(Fieldlanguagesvalues object) {
+				return new CompoundPropertyModel<Fieldlanguagesvalues>(object);
+			}
+			
+		}) {
+			private static final long serialVersionUID = 8715559628755439596L;
+
+			@Override
+			protected void populateItem(Item<Fieldlanguagesvalues> item) {
+				final Fieldlanguagesvalues flv = item.getModelObject();
+				item.add(new Label("lblId", "" + flv.getFieldlanguagesvalues_id()));
+				item.add(new Label("name", flv.getFieldvalues().getName()));
+				item.add(new Label("value", flv.getValue()));
+				/*
+				item.add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = -8069413566800571061L;
+
+					protected void onEvent(AjaxRequestTarget target) {
+						//form.setModelObject(u);
+						//target.add(form);
+					}
+				});
+				*/
+			}
+		};
+		
+		final WebMarkupContainer langListContainer = new WebMarkupContainer("langListContainer");
+		add(langListContainer.add(dataView).setOutputMarkupId(true));
+		add(new PagedEntityListPanel("navigator", dataView) {
+			private static final long serialVersionUID = 5097048616003411362L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				target.add(langListContainer);
+			}
+		});
+		
+	}
+}