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 2015/11/06 07:18:49 UTC

svn commit: r1712911 [9/16] - in /openmeetings/branches/3.1.x: openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/ openmeetings-core/src/main/java/org/apa...

Modified: openmeetings/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java Fri Nov  6 06:18:44 2015
@@ -153,9 +153,9 @@ public class UserManager implements IUse
 
 			if (sessionData != null) {
 
-				User u = userDao.get(sessionData.getUser_id());
+				User u = userDao.get(sessionData.getUserId());
 
-				sessiondataDao.updateUserWithoutSession(SID, u.getUser_id());
+				sessiondataDao.updateUserWithoutSession(SID, u.getId());
 
 				return u;
 			}
@@ -281,14 +281,14 @@ public class UserManager implements IUse
 	 * @param additionalname
 	 * @param fax
 	 * @param zip
-	 * @param states_id
+	 * @param stateId
 	 * @param town
 	 * @param language_id
 	 * @return
 	 */
 	public Long registerUser(String login, String Userpass, String lastname,
 			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, long states_id,
+			String additionalname, String fax, String zip, long stateId,
 			String town, long language_id, String phone, boolean sendSMS, boolean generateSipUserData, String jNameTimeZone) {
 		
 		String baseURL = cfgDao.getBaseUrl();
@@ -297,24 +297,24 @@ public class UserManager implements IUse
 				&& 1 == cfgDao.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
 		
 		return registerUser(login, Userpass, lastname, firstname, email, age,
-				street, additionalname, fax, zip, states_id, town, language_id,
+				street, additionalname, fax, zip, stateId, town, language_id,
 				phone, sendSMS, generateSipUserData, jNameTimeZone, sendConfirmation);
 	}
 
 	public Long registerUserNoEmail(String login, String Userpass,
 			String lastname, String firstname, String email, Date age,
 			String street, String additionalname, String fax, String zip,
-			long states_id, String town, long language_id, String phone, boolean sendSMS, 
+			long stateId, String town, long language_id, String phone, boolean sendSMS, 
 			boolean generateSipUserData, String jNameTimeZone) {
 		
 		return registerUser(login, Userpass, lastname, firstname, email, age,
-				street, additionalname, fax, zip, states_id, town, language_id,
+				street, additionalname, fax, zip, stateId, town, language_id,
 				phone, sendSMS, generateSipUserData, jNameTimeZone, false);
 	}
 
-	private Long registerUser(String login, String Userpass, String lastname,
+	public Long registerUser(String login, String Userpass, String lastname,
 			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, long states_id,
+			String additionalname, String fax, String zip, long stateId,
 			String town, long language_id, String phone, boolean sendSMS,
 			boolean generateSipUserData, String jNameTimeZone, Boolean sendConfirmation) {
 		try {
@@ -325,7 +325,7 @@ public class UserManager implements IUse
 
 				Long user_id = registerUserInit(UserDao.getDefaultRights(), login,
 						Userpass, lastname, firstname, email, age, street,
-						additionalname, fax, zip, states_id, town, language_id,
+						additionalname, fax, zip, stateId, town, language_id,
 						true, Arrays.asList(cfgDao.getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)), phone,
 						sendSMS, sendConfirmation, timezoneUtil.getTimeZone(jNameTimeZone), false, "", "", false, true, null);
 
@@ -355,7 +355,7 @@ public class UserManager implements IUse
 	 * @param additionalname
 	 * @param fax
 	 * @param zip
-	 * @param states_id
+	 * @param stateId
 	 * @param town
 	 * @param language_id
 	 * @param sendWelcomeMessage
@@ -376,7 +376,7 @@ public class UserManager implements IUse
 	 */
 	public Long registerUserInit(Set<Right> rights, String login, String password, String lastname,
 			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, long states_id,
+			String additionalname, String fax, String zip, long stateId,
 			String town, long language_id, boolean sendWelcomeMessage,
 			List<Long> organisations, String phone, boolean sendSMS, Boolean sendConfirmation,
 			TimeZone timezone, Boolean forceTimeZoneCheck,
@@ -404,7 +404,7 @@ public class UserManager implements IUse
 						return -19L;
 					}
 				}
-				Address adr =  userDao.getAddress(street, zip, town, states_id, additionalname, fax, phone, email);
+				Address adr =  userDao.getAddress(street, zip, town, stateId, additionalname, fax, phone, email);
 
 				// If this user needs first to click his E-Mail verification
 				// code then set the status to 0
@@ -423,7 +423,7 @@ public class UserManager implements IUse
 				if (u == null) {
 					return -111L;
 				}
-				log.debug("Added user-Id " + u.getUser_id());
+				log.debug("Added user-Id " + u.getId());
 
 				/*
 				 * Long adress_emails_id =
@@ -431,8 +431,8 @@ public class UserManager implements IUse
 				 * (adress_emails_id==null) { return new Long(-112); }
 				 */
 
-				if (adr.getAdresses_id() > 0 && u.getUser_id() > 0) {
-					return u.getUser_id();
+				if (adr.getId() > 0 && u.getId() > 0) {
+					return u.getId();
 				} else {
 					return -16L;
 				}
@@ -535,7 +535,7 @@ public class UserManager implements IUse
 	}
 
 	public State getCountry(Locale loc) {
-		List<State> states = stateDao.getStates();
+		List<State> states = stateDao.get();
 		if (loc != null) {
 			String code = loc.getISO3Country().toUpperCase();
 			for (State s : states) {
@@ -563,7 +563,7 @@ public class UserManager implements IUse
 			return null; //TODO FIXME need to be checked
 		}
 		User u = userDao.getByLogin(login, Type.oauth, serverId);
-		if (!userDao.checkEmail(email, Type.oauth, serverId, u == null ? null : u.getUser_id())) {
+		if (!userDao.checkEmail(email, Type.oauth, serverId, u == null ? null : u.getId())) {
 			log.error("Another user with the same email exists");
 			return null; //TODO FIXME need to be checked
 		}
@@ -585,7 +585,7 @@ public class UserManager implements IUse
 			u.setShowContactDataToContacts(true);
 			u.setLastname(lastname);
 			u.setFirstname(firstname);
-			u.getAdresses().setEmail(email);
+			u.getAddress().setEmail(email);
 			String picture = params.get("picture");
 			if (picture != null) {
 				u.setPictureuri(picture);
@@ -594,8 +594,8 @@ public class UserManager implements IUse
 			if (locale != null) {
 				Locale loc = Locale.forLanguageTag(locale);
 				if (loc != null) {
-					u.setLanguage_id(getLanguage(loc));
-					u.getAdresses().setStates(getCountry(loc));
+					u.setLanguageId(getLanguage(loc));
+					u.getAddress().setState(getCountry(loc));
 				}
 			}
 		}

Propchange: openmeetings/branches/3.1.x/openmeetings-web/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Nov  6 06:18:44 2015
@@ -1,4 +1,5 @@
 target
+test-data
 .project
 .classpath
 .settings

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java Fri Nov  6 06:18:44 2015
@@ -35,7 +35,7 @@ public abstract class AdminUserChoicePro
 
 	@Override
 	protected Object getId(User choice) {
-		return choice.getUser_id();
+		return choice.getId();
 	}
 
 	@Override

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java Fri Nov  6 06:18:44 2015
@@ -65,7 +65,7 @@ public class ConfigForm extends AdminBas
 
 			public void validate(IValidatable<String> validatable) {
 				Configuration c = getBean(ConfigurationDao.class).forceGet(validatable.getValue());
-				if (c != null && !c.isDeleted() && !c.getConfiguration_id().equals(ConfigForm.this.getModelObject().getConfiguration_id())) {
+				if (c != null && !c.isDeleted() && !c.getId().equals(ConfigForm.this.getModelObject().getId())) {
 					error(Application.getString(1544L));
 				}
 			}
@@ -84,8 +84,8 @@ public class ConfigForm extends AdminBas
 	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
 		ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
 		Configuration c = cfgDao.forceGet(getModelObject().getConf_key());
-		if (c != null && c.isDeleted() && !c.getConfiguration_id().equals(getModelObject().getConfiguration_id())) {
-			getModelObject().setConfiguration_id(c.getConfiguration_id());
+		if (c != null && c.isDeleted() && !c.getId().equals(getModelObject().getId())) {
+			getModelObject().setId(c.getId());
 		}
 		setModelObject(getBean(ConfigurationDao.class).update(getModelObject(), WebSession.getUserId()));
 		hideNewRecord();
@@ -102,8 +102,8 @@ public class ConfigForm extends AdminBas
 	@Override
 	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
 		Configuration conf = getModelObject();
-		if (conf.getConfiguration_id() != null) {
-			conf = getBean(ConfigurationDao.class).get(conf.getConfiguration_id());
+		if (conf.getId() != null) {
+			conf = getBean(ConfigurationDao.class).get(conf.getId());
 		} else {
 			conf = new Configuration();
 		}

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java Fri Nov  6 06:18:44 2015
@@ -61,7 +61,7 @@ public class ConfigsPanel extends AdminP
 			@Override
 			protected void populateItem(final Item<Configuration> item) {
 				final Configuration c = item.getModelObject();
-				item.add(new Label("configuration_id", c.getConfiguration_id()));
+				item.add(new Label("configuration_id", c.getId()));
 				item.add(new Label("conf_key", c.getConf_key()));
 				item.add(new Label("conf_value", c.getConf_value()));
 				item.add(new AjaxEventBehavior("click") {
@@ -75,7 +75,7 @@ public class ConfigsPanel extends AdminP
 					}
 				});
 				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
-						+ (c.getConfiguration_id().equals(form.getModelObject().getConfiguration_id()) ? " ui-state-default" : "")));
+						+ (c.getId().equals(form.getModelObject().getId()) ? " ui-state-default" : "")));
 			}
 		};
 		add(listContainer.add(dataView).setOutputMarkupId(true));

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java Fri Nov  6 06:18:44 2015
@@ -18,7 +18,6 @@
  */
 package org.apache.openmeetings.web.admin.connection;
 
-import static java.lang.Boolean.TRUE;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getSid;
 
@@ -35,7 +34,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.app.WebClient;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
@@ -73,21 +71,6 @@ public class ConnectionsPanel extends Ad
 				return getBean(ISessionManager.class).getClients().size();
 			}
 		};
-		
-		SearchableDataProvider<WebClient> sdpWeb = new SearchableDataProvider<WebClient>(null) {
-			private static final long serialVersionUID = 1L;
-			
-			@Override
-			public Iterator<? extends WebClient> iterator(long first, long count) {
-				List<WebClient> l = new ArrayList<WebClient>(Application.getClients());
-				return l.subList((int)Math.max(0, first), (int)Math.min(first + count, l.size())).iterator();
-			}
-			
-			@Override
-			public long size() {
-				return Application.getClientsSize();
-			}
-		};
 		final WebMarkupContainer container = new WebMarkupContainer("container");
 		final WebMarkupContainer details = new WebMarkupContainer("details");
 		SearchableDataView<Client> dataView = new SearchableDataView<Client>("clientList", sdp) {
@@ -111,7 +94,7 @@ public class ConnectionsPanel extends Ad
 								, c.getServer() == null ? 0 : c.getServer().getId());
 						target.add(container, details.setVisible(false));
 					}
-				}.setEnabled(!TRUE.equals(c.getIsScreenClient()) && !TRUE.equals(c.getIsAVClient())));
+				}.setEnabled(!c.isScreenClient() && !c.isAvClient()));
 				item.add(new AjaxEventBehavior("click") {
 					private static final long serialVersionUID = 1L;
 
@@ -144,15 +127,30 @@ public class ConnectionsPanel extends Ad
 				item.add(AttributeModifier.append("class", "clickable ui-widget-content"));
 			}
 		};
-		add(container.add(dataView).setOutputMarkupId(true));
+		add(container.add(dataView).setOutputMarkupId(true), details.setVisible(false).setOutputMarkupPlaceholderTag(true));
+		
+		SearchableDataProvider<org.apache.openmeetings.web.app.Client> sdpWeb = new SearchableDataProvider<org.apache.openmeetings.web.app.Client>(null) {
+			private static final long serialVersionUID = 1L;
+			
+			@Override
+			public Iterator<? extends org.apache.openmeetings.web.app.Client> iterator(long first, long count) {
+				List<org.apache.openmeetings.web.app.Client> l = new ArrayList<org.apache.openmeetings.web.app.Client>(Application.getClients());
+				return l.subList((int)Math.max(0, first), (int)Math.min(first + count, l.size())).iterator();
+			}
+			
+			@Override
+			public long size() {
+				return Application.getClientsSize();
+			}
+		};
 		
 		final WebMarkupContainer containerWeb = new WebMarkupContainer("containerWeb");
-		SearchableDataView<WebClient> dataViewWeb = new SearchableDataView<WebClient>("clientListWeb", sdpWeb) {
+		SearchableDataView<org.apache.openmeetings.web.app.Client> dataViewWeb = new SearchableDataView<org.apache.openmeetings.web.app.Client>("clientListWeb", sdpWeb) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			protected void populateItem(final Item<WebClient> item) {
-				WebClient c = item.getModelObject();
+			protected void populateItem(final Item<org.apache.openmeetings.web.app.Client> item) {
+				org.apache.openmeetings.web.app.Client c = item.getModelObject();
 				item.add(new Label("id", c.getUserId()));
 				item.add(new Label("login", getBean(UserService.class).getUserById(getSid(), c.getUserId()).getLogin()));
 				item.add(new Label("since", c.getConnectedSince()));
@@ -162,7 +160,7 @@ public class ConnectionsPanel extends Ad
 
 					@Override
 					protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
-						WebClient c = item.getModelObject();
+						org.apache.openmeetings.web.app.Client c = item.getModelObject();
 						getBean(IUserService.class).kickUserBySessionId(getSid(), c.getUserId()
 								, c.getSessionId());
 						target.add(containerWeb, details.setVisible(false));
@@ -173,9 +171,9 @@ public class ConnectionsPanel extends Ad
 
 					@Override
 					protected void onEvent(AjaxRequestTarget target) {
-						Field[] ff = WebClient.class.getDeclaredFields();
+						Field[] ff = org.apache.openmeetings.web.app.Client.class.getDeclaredFields();
 						RepeatingView lines = new RepeatingView("line");
-						WebClient c = item.getModelObject();
+						org.apache.openmeetings.web.app.Client c = item.getModelObject();
 						for (Field f : ff) {
 							int mod = f.getModifiers();
 							if (Modifier.isStatic(mod) || Modifier.isTransient(mod)) {
@@ -199,8 +197,8 @@ public class ConnectionsPanel extends Ad
 				item.add(AttributeModifier.append("class", "clickable ui-widget-content"));
 			}
 		};
-		add(containerWeb.add(dataViewWeb).setOutputMarkupId(true), details.setVisible(false).setOutputMarkupPlaceholderTag(true));
 		
+		add(containerWeb.add(dataViewWeb).setOutputMarkupId(true), details.setVisible(false).setOutputMarkupPlaceholderTag(true));
 		add(new PagedEntityListPanel("navigator", dataView) {
 			private static final long serialVersionUID = 1L;
 
@@ -212,7 +210,7 @@ public class ConnectionsPanel extends Ad
 	}
 
 	@Override
-	public void onMenuPanelLoad(IPartialPageRequestHandler target) {
-		super.onMenuPanelLoad(target);
+	public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+		super.onMenuPanelLoad(handler);
 	}
 }

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java Fri Nov  6 06:18:44 2015
@@ -75,12 +75,12 @@ public class GroupForm extends AdminBase
 				Organisation o = GroupForm.this.getModelObject();
 				User u = userToadd.getModelObject();
 				boolean found = false;
-				if (o.getOrganisation_id() != null) {
-					found = null != getBean(OrganisationUserDao.class).getByOrganizationAndUser(o.getOrganisation_id(), u.getUser_id());
+				if (o.getId() != null) {
+					found = null != getBean(OrganisationUserDao.class).getByOrganizationAndUser(o.getId(), u.getId());
 				}
 				if (!found && u != null) {
 					for (Organisation_Users ou : usersPanel.getUsers2add()) {
-						if (ou.getUser().getUser_id().equals(u.getUser_id())) {
+						if (ou.getUser().getId().equals(u.getId())) {
 							found = true;
 							break;
 						}
@@ -109,7 +109,7 @@ public class GroupForm extends AdminBase
 	}
 
 	private long getOrgId() {
-		return getModelObject().getOrganisation_id() != null ? getModelObject().getOrganisation_id() : 0;
+		return getModelObject().getId() != null ? getModelObject().getId() : 0;
 	}
 	
 	@Override
@@ -121,8 +121,8 @@ public class GroupForm extends AdminBase
 	@Override
 	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
 		Organisation org = getModelObject();
-		if (org.getOrganisation_id() != null) {
-			org = getBean(OrganisationDao.class).get(org.getOrganisation_id());
+		if (org.getId() != null) {
+			org = getBean(OrganisationDao.class).get(org.getId());
 		} else {
 			org = new Organisation();
 		}

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java Fri Nov  6 06:18:44 2015
@@ -62,13 +62,13 @@ public class GroupUsersPanel extends Pan
 
 					@Override
 					protected void onUpdate(AjaxRequestTarget target) {
-						if (orgUser.getOrganisation_users_id() != null) {
+						if (orgUser.getId() != null) {
 							getBean(OrganisationUserDao.class).update(orgUser, WebSession.getUserId());
 						}
 					}
 				}));
 				Label label = new Label("label", u == null ? "" : GroupForm.formatUser(u));
-				if (orgUser.getOrganisation_users_id() == null) {
+				if (orgUser.getId() == null) {
 					label.add(AttributeAppender.append("class", "newItem"));
 				}
 				item.add(label);
@@ -77,10 +77,10 @@ public class GroupUsersPanel extends Pan
 
 					@Override
 					protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
-						if (orgUser.getOrganisation_users_id() == null) {
+						if (orgUser.getId() == null) {
 							for (int i = 0; i < users2add.size(); ++i) {
 								//FIXME ineffective
-								if (users2add.get(i).getUser().getUser_id().equals(orgUser.getUser().getUser_id())) {
+								if (users2add.get(i).getUser().getId().equals(orgUser.getUser().getId())) {
 									users2add.remove(i);
 									break;
 								}

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java Fri Nov  6 06:18:44 2015
@@ -67,7 +67,7 @@ public class GroupsPanel extends AdminPa
 			@Override
 			protected void populateItem(Item<Organisation> item) {
 				final Organisation o = item.getModelObject();
-				item.add(new Label("organisation_id", "" + o.getOrganisation_id()));
+				item.add(new Label("organisation_id", "" + o.getId()));
 				item.add(new Label("name", "" + o.getName()));
 				item.add(new AjaxEventBehavior("click") {
 					private static final long serialVersionUID = 1L;
@@ -81,7 +81,7 @@ public class GroupsPanel extends AdminPa
 					}
 				});
 				item.add(AttributeModifier.append("class", "clickable ui-widget-content"
-						+ (o.getOrganisation_id().equals(form.getModelObject().getOrganisation_id()) ? " ui-state-active" : "")));
+						+ (o.getId().equals(form.getModelObject().getId()) ? " ui-state-active" : "")));
 			}
 		};
 

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java Fri Nov  6 06:18:44 2015
@@ -74,7 +74,7 @@ public class LdapForm extends AdminBaseF
 	@Override
 	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
 		Application.getBean(LdapConfigDao.class).update(getModelObject(), WebSession.getUserId());
-		LdapConfig ldapConfig = Application.getBean(LdapConfigDao.class).get(getModelObject().getLdapConfigId());
+		LdapConfig ldapConfig = Application.getBean(LdapConfigDao.class).get(getModelObject().getId());
 		this.setModelObject(ldapConfig);
 		hideNewRecord();
 		target.add(this);
@@ -92,9 +92,9 @@ public class LdapForm extends AdminBaseF
 	@Override
 	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
 		LdapConfig ldapConfig = this.getModelObject();
-		if (ldapConfig.getLdapConfigId() <= 0) {
+		if (ldapConfig.getId() <= 0) {
 			ldapConfig = Application.getBean(LdapConfigDao.class).get(
-					ldapConfig.getLdapConfigId());
+					ldapConfig.getId());
 		} else {
 			ldapConfig = new LdapConfig();
 		}

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java Fri Nov  6 06:18:44 2015
@@ -60,7 +60,7 @@ public class LdapsPanel extends AdminPan
 			@Override
 			protected void populateItem(final Item<LdapConfig> item) {
 				final LdapConfig lc = item.getModelObject();
-				item.add(new Label("ldapConfigId", "" + lc.getLdapConfigId()));
+				item.add(new Label("ldapConfigId", "" + lc.getId()));
 				item.add(new Label("name", "" + lc.getName()));
 				item.add(new Label("configFileName", "" + lc.getConfigFileName()));
 				item.add(new AjaxEventBehavior("click") {
@@ -74,7 +74,7 @@ public class LdapsPanel extends AdminPan
 					}
 				});
 				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
-						+ (lc.getLdapConfigId() == form.getModelObject().getLdapConfigId() ? " ui-state-active" : "")));
+						+ (lc.getId() == form.getModelObject().getId() ? " ui-state-active" : "")));
 			}
 		};
 		add(listContainer.add(dataView).setOutputMarkupId(true));

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java Fri Nov  6 06:18:44 2015
@@ -126,7 +126,7 @@ public class RoomForm extends AdminBaseF
 
 			@Override
 			protected Object getId(RoomOrganisation choice) {
-				return choice.getOrganisation().getOrganisation_id();
+				return choice.getOrganisation().getId();
 			}
 
 			@Override
@@ -214,7 +214,7 @@ public class RoomForm extends AdminBaseF
 
 			@Override
 			protected String getDisplayText(User choice) {
-				Address a = choice.getAdresses();
+				Address a = choice.getAddress();
 				return String.format("\"%s %s\" <%s>", choice.getFirstname(), choice.getLastname(), a == null ? "" : a.getEmail());
 			}
 		});
@@ -231,14 +231,14 @@ public class RoomForm extends AdminBaseF
 						r.setModerators(new ArrayList<RoomModerator>());
 					}
 					for (RoomModerator rm : r.getModerators()) {
-						if (rm.getUser().getUser_id().equals(u.getUser_id())) {
+						if (rm.getUser().getId().equals(u.getId())) {
 							found = true;
 							break;
 						}
 					}
 					if (!found) {
 						RoomModerator rm = new RoomModerator();
-						rm.setRoomId(r.getRooms_id());
+						rm.setRoomId(r.getId());
 						rm.setUser(u);
 						r.getModerators().add(0, rm);
 						moderator2add.setObject(null);
@@ -258,9 +258,9 @@ public class RoomForm extends AdminBaseF
 					name.add(AttributeAppender.append("class", "newItem"));
 				}
 				item.add(new CheckBox("isSuperModerator", new PropertyModel<Boolean>(moderator, "isSuperModerator")))
-					.add(new Label("userId", "" + moderator.getUser().getUser_id()))
+					.add(new Label("userId", "" + moderator.getUser().getId()))
 					.add(name)
-					.add(new Label("email", moderator.getUser().getAdresses().getEmail()))
+					.add(new Label("email", moderator.getUser().getAddress().getEmail()))
 					.add(new ConfirmableAjaxBorder("delete", getString("80"), getString("833")) {
 						private static final long serialVersionUID = 1L;
 
@@ -294,7 +294,7 @@ public class RoomForm extends AdminBaseF
 	}
 
 	void updateClients(AjaxRequestTarget target) {
-		long roomId = (getModelObject().getRooms_id() != null ? getModelObject().getRooms_id() : 0);  
+		long roomId = (getModelObject().getId() != null ? getModelObject().getId() : 0);  
 		final List<Client> clientsInRoom = Application.getBean(ISessionManager.class).getClientListByRoom(roomId);
 		clients.setDefaultModelObject(clientsInRoom);
 		target.add(clientsContainer);
@@ -303,11 +303,11 @@ public class RoomForm extends AdminBaseF
 	@Override
 	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
 		Room r = getModelObject();
-		boolean newRoom = r.getRooms_id() == null;
+		boolean newRoom = r.getId() == null;
 		r = getBean(RoomDao.class).update(r, getUserId());
 		if (newRoom) {
 			for (RoomModerator rm : r.getModerators()) {
-				rm.setRoomId(r.getRooms_id());
+				rm.setRoomId(r.getId());
 			}
 			// FIXME double update
 			getBean(RoomDao.class).update(getModelObject(), getUserId());
@@ -335,8 +335,8 @@ public class RoomForm extends AdminBaseF
 	@Override
 	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
 		Room r = getModelObject();
-		if (r.getRooms_id() != null) {
-			r = getBean(RoomDao.class).get(r.getRooms_id());
+		if (r.getId() != null) {
+			r = getBean(RoomDao.class).get(r.getId());
 		} else {
 			r = new Room();
 		}

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java Fri Nov  6 06:18:44 2015
@@ -55,8 +55,8 @@ public class RoomsPanel extends AdminPan
 			@Override
 			protected void populateItem(final Item<Room> item) {
 				Room room = item.getModelObject();
-				final long roomId = room.getRooms_id();
-				item.add(new Label("rooms_id", "" + room.getRooms_id()));
+				final long roomId = room.getId();
+				item.add(new Label("rooms_id", "" + room.getId()));
 				item.add(new Label("name", "" + room.getName()));
 				item.add(new Label("ispublic", "" + room.getIspublic()));
 				item.add(new AjaxEventBehavior("click") {
@@ -71,7 +71,7 @@ public class RoomsPanel extends AdminPan
 					}
 				});
 				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
-						+ (room.getRooms_id().equals(form.getModelObject().getRooms_id()) ? " ui-state-active" : "")));
+						+ (room.getId().equals(form.getModelObject().getId()) ? " ui-state-active" : "")));
 			}
 		};
 		

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java Fri Nov  6 06:18:44 2015
@@ -109,7 +109,7 @@ public class UserForm extends AdminBaseF
 	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
 		User u = getModelObject();
 		try {
-			boolean isNew = (u.getUser_id() == null);
+			boolean isNew = (u.getId() == null);
 			u = getBean(UserDao.class).update(u, generalForm.getPasswordField().getConvertedInput(), getUserId());
 			boolean sendEmailAtRegister = (1 == getBean(ConfigurationDao.class).getConfValue("sendEmailAtRegister", Integer.class, "0"));
 			if (isNew && sendEmailAtRegister) {
@@ -144,8 +144,8 @@ public class UserForm extends AdminBaseF
 	@Override
 	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
 		User user = getModelObject();
-		if (user.getUser_id() != null) {
-			user = getBean(UserDao.class).get(user.getUser_id());
+		if (user.getId() != null) {
+			user = getBean(UserDao.class).get(user.getId());
 		} else {
 			user = getBean(UserDao.class).getNewUserInstance(null);
 		}
@@ -227,8 +227,8 @@ public class UserForm extends AdminBaseF
 		List<Long> ids = new ArrayList<Long>();
 		if (u.getType() == Type.ldap) {
 			for (LdapConfig c : getBean(LdapConfigDao.class).getActive()) {
-				ids.add(c.getLdapConfigId());
-				values.put(c.getLdapConfigId(), c.getName());
+				ids.add(c.getId());
+				values.put(c.getId(), c.getName());
 			}
 		}
 		if (u.getType() == Type.oauth) {
@@ -266,7 +266,7 @@ public class UserForm extends AdminBaseF
 	@Override
 	protected void onValidate() {
 		User u = getModelObject();
-		if(!getBean(UserDao.class).checkLogin(login.getConvertedInput(), u.getType(), u.getDomainId(), u.getUser_id())) {
+		if(!getBean(UserDao.class).checkLogin(login.getConvertedInput(), u.getType(), u.getDomainId(), u.getId())) {
 			error(Application.getString(105));
 		}
 	}

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java Fri Nov  6 06:18:44 2015
@@ -70,8 +70,8 @@ public class UsersPanel extends AdminPan
 			@Override
 			protected void populateItem(Item<User> item) {
 				User u = item.getModelObject();
-				final long userId = u.getUser_id();
-				item.add(new Label("userId", "" + u.getUser_id()));
+				final long userId = u.getId();
+				item.add(new Label("userId", "" + u.getId()));
 				item.add(new Label("login", u.getLogin()));
 				item.add(new Label("firstName", u.getFirstname()));
 				item.add(new Label("lastName", u.getLastname()));
@@ -85,7 +85,7 @@ public class UsersPanel extends AdminPan
 					}
 				});
 				item.add(AttributeModifier.append("class", "clickable ui-widget-content"
-						+ (u.getUser_id().equals(form.getModelObject().getUser_id()) ? " ui-state-active" : "")));
+						+ (u.getId().equals(form.getModelObject().getId()) ? " ui-state-active" : "")));
 			}
 		};
 		add(listContainer.add(dataView).setOutputMarkupId(true));

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Fri Nov  6 06:18:44 2015
@@ -33,7 +33,9 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
+import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.servlet.ServletContext;
@@ -85,6 +87,7 @@ import org.apache.wicket.request.cycle.R
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.util.collections.ConcurrentHashSet;
 import org.apache.wicket.util.tester.WicketTester;
 import org.slf4j.Logger;
 import org.springframework.web.context.WebApplicationContext;
@@ -100,13 +103,15 @@ public class Application extends Authent
 	private static final Logger log = getLogger(Application.class, webAppRootKey);
 	private static boolean isInstalled;
 	private static MultiKeyMap ONLINE_USERS = new MultiKeyMap(); 
-	private static Map<String, WebClient> INVALID_SESSIONS = new ConcurrentHashMap<String, WebClient>();
+	private static Map<String, org.apache.openmeetings.web.app.Client> INVALID_SESSIONS = new ConcurrentHashMap<String, org.apache.openmeetings.web.app.Client>();
+	private static Map<Long, Set<Client>> ROOMS = new ConcurrentHashMap<Long, Set<Client>>();
+	//additional maps for faster searching should be created
 	private DashboardContext dashboardContext;
-	private static Set<Long> STRINGS_WITH_APP = new HashSet<Long>(); //FIXME need to be removed
+	private static Set<String> STRINGS_WITH_APP = new HashSet<>(); //FIXME need to be removed
 	private static String appName;
 	static {
-		STRINGS_WITH_APP.addAll(Arrays.asList(499L, 500L, 506L, 511L, 512L, 513L, 517L, 532L, 622L, 804L
-				, 909L, 952L, 978L, 981L, 984L, 989L, 990L, 999L, 1151L, 1155L, 1157L, 1158L, 1194L));
+		STRINGS_WITH_APP.addAll(Arrays.asList("499", "500", "506", "511", "512", "513", "517", "532", "622", "804"
+				, "909", "952", "978", "981", "984", "989", "990", "999", "1151", "1155", "1157", "1158", "1194"));
 	}
 	
 	@Override
@@ -202,7 +207,7 @@ public class Application extends Authent
 		return get().dashboardContext;
 	}
 	
-	public synchronized static void addOnlineUser(WebClient client) {
+	public synchronized static void addOnlineUser(org.apache.openmeetings.web.app.Client client) {
 		try {
 			ONLINE_USERS.put(client.getUserId(), client.getSessionId(), client);
 		} catch (Exception err) {
@@ -210,7 +215,7 @@ public class Application extends Authent
 		}
 	}
 	
-	public synchronized static void removeOnlineUser(WebClient c) {
+	public synchronized static void removeOnlineUser(org.apache.openmeetings.web.app.Client c) {
 		try {
 			if (c != null) {
 				ONLINE_USERS.remove(c.getUserId(), c.getSessionId());
@@ -234,21 +239,34 @@ public class Application extends Authent
 	}
 
 	@SuppressWarnings("unchecked")
-	public static List<WebClient> getClients() {
-		return new ArrayList<WebClient>(ONLINE_USERS.values());
+	public static List<org.apache.openmeetings.web.app.Client> getClients() {
+		return new ArrayList<org.apache.openmeetings.web.app.Client>(ONLINE_USERS.values());
 	}
 
+	public static List<org.apache.openmeetings.web.app.Client> getClients(Long userId) {
+		List<org.apache.openmeetings.web.app.Client> result =  new ArrayList<org.apache.openmeetings.web.app.Client>();
+		MapIterator it = ONLINE_USERS.mapIterator();
+		while (it.hasNext()) {
+			MultiKey multi = (MultiKey) it.next();
+			if (multi.size() > 1 && userId.equals(multi.getKey(0))) {
+				result.add(getClientByKeys(userId, (String)(multi.getKey(1))));
+				break;
+			}
+		}
+		return result;
+	}
+	
 	public static int getClientsSize() {
 		return ONLINE_USERS.size();
 	}
 	
-	public static WebClient getClientByKeys(Long userId, String sessionId) {
-		return (WebClient) ONLINE_USERS.get(userId, sessionId);
+	public static org.apache.openmeetings.web.app.Client getClientByKeys(Long userId, String sessionId) {
+		return (org.apache.openmeetings.web.app.Client) ONLINE_USERS.get(userId, sessionId);
 	}
 	
 	@Override
 	public void invalidateClient(Long userId, String sessionId) {
-		WebClient client = getClientByKeys(userId, sessionId);
+		org.apache.openmeetings.web.app.Client client = getClientByKeys(userId, sessionId);
 		if (client != null) {
 			if (!INVALID_SESSIONS.containsKey(client.getSessionId())) {
 				INVALID_SESSIONS.put(client.getSessionId(), client);
@@ -267,6 +285,74 @@ public class Application extends Authent
 		}
 	}
 	
+	public static Client addUserToRoom(long roomId, int pageId) {
+		if (!ROOMS.containsKey(roomId)) {
+			ROOMS.put(roomId, new ConcurrentHashSet<Client>());
+		}
+		Client c = new Client(WebSession.get().getId(), pageId, WebSession.getUserId());
+		c.setUid(UUID.randomUUID().toString());
+		ROOMS.get(roomId).add(c);
+		return c;
+	}
+	
+	public static void removeUserFromRoom(long roomId, int pageId) {
+		removeUserFromRoom(roomId, new Client(WebSession.get().getId(), pageId, WebSession.getUserId()));
+	}
+	
+	public static Client removeUserFromRoom(long roomId, Client _c) {
+		if (ROOMS.containsKey(roomId)) {
+			Set<Client> clients = ROOMS.get(roomId);
+			for (Client c : clients) {
+				if (c.equals(_c)) {
+					clients.remove(c);
+					return c;
+				}
+			}
+			if (clients.isEmpty()) {
+				ROOMS.remove(roomId);
+			}
+		}
+		return _c;
+	}
+	
+	public static long getRoom(Client c) {
+		for (Entry<Long, Set<Client>> me : ROOMS.entrySet()) {
+			Set<Client> clients = me.getValue();
+			if (clients.contains(c)) {
+				return me.getKey();
+			}
+		}
+		return -1;
+	}
+	
+	public static Set<Client> getRoomUsers(long roomId) {
+		return ROOMS.containsKey(roomId) ? ROOMS.get(roomId) : new HashSet<Client>();
+	}
+	
+	public static Set<Long> getUserRooms(long userId) {
+		Set<Long> result = new HashSet<Long>();
+		for (Entry<Long, Set<Client>> me : ROOMS.entrySet()) {
+			for (Client c : me.getValue()) {
+				if (c.getUserId() == userId) {
+					result.add(me.getKey());
+				}
+			}
+		}
+		return result;
+	}
+	
+	public static boolean isUserInRoom(long roomId, long userId) {
+		if (ROOMS.containsKey(roomId)) {
+			Set<Client> clients = ROOMS.get(roomId);
+			for (Client c : clients) {
+				if (c.getUserId() == userId) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+	
 	//TODO need more safe way FIXME
 	public <T> T _getBean(Class<T> clazz) {
 		WebApplicationContext wac = getWebApplicationContext(getServletContext());
@@ -389,11 +475,11 @@ public class Application extends Authent
 			if (i.getInvitee().getType() == Type.contact) {
 				link += "?invitationHash=" + i.getHash();
 		
-				if (i.getInvitee().getLanguage_id() > 0) {
-					link += "&language=" + i.getInvitee().getLanguage_id().toString();
+				if (i.getInvitee().getLanguageId() > 0) {
+					link += "&language=" + i.getInvitee().getLanguageId().toString();
 				}
 			} else {
-				link = getRoomUrlFragment(i.getRoom().getRooms_id()).getLink();
+				link = getRoomUrlFragment(i.getRoom().getId()).getLink();
 			}
 		}
 		return link;

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml Fri Nov  6 06:18:44 2015
@@ -280,8 +280,6 @@
   <entry key="258">Go to last page</entry>
   <entry key="259">Zoom --</entry>
   <entry key="260">Zoom ++</entry>
-  <entry key="261">Mr</entry>
-  <entry key="262">Ms</entry>
   <entry key="263">Configuration</entry>
   <entry key="264">ID</entry>
   <entry key="265">Key</entry>
@@ -860,8 +858,6 @@
   <entry key="838">This user is a super moderator. You cannot remove the moderation flag.</entry>
   <entry key="839">Do you really want to delete this file/folder?</entry>
   <entry key="840">Delete file/folder?</entry>
-  <entry key="841">Mrs</entry>
-  <entry key="842">Dr</entry>
   <entry key="843">Properties</entry>
   <entry key="844">Show mouse position to viewers</entry>
   <entry key="845">Share audio with SIP applet</entry>
@@ -1483,7 +1479,6 @@
   <entry key="1461">Export/Import System Backups</entry>
   <entry key="1462">You need to be a Moderator or have the 'draw on whiteboard' rights to upload, add, delete or load files and folders.</entry>
   <entry key="1463">Edit text</entry>
-  <entry key="1464">Prof</entry>
   <entry key="1465">Publish</entry>
   <entry key="1466">Start Publish</entry>
   <entry key="1467">Stop Publish</entry>
@@ -1876,4 +1871,9 @@
 	<entry key="install.wizard.congrats.mail">Mailing list</entry>
 	<entry key="install.wizard.congrats.commercial">There are some companies
 			that also offer commercial support for Apache OpenMeetings:</entry>
+  <entry key="user.salutation.mr">Mr</entry>
+  <entry key="user.salutation.ms">Ms</entry>
+  <entry key="user.salutation.mrs">Mrs</entry>
+  <entry key="user.salutation.dr">Dr</entry>
+  <entry key="user.salutation.prof">Prof</entry>
 </properties>

Copied: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java (from r1712910, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebClient.java)
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java?p2=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java&p1=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebClient.java&r1=1712910&r2=1712911&rev=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebClient.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java Fri Nov  6 06:18:44 2015
@@ -18,7 +18,6 @@
  */
 package org.apache.openmeetings.web.app;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Set;
@@ -31,7 +30,7 @@ import org.apache.wicket.protocol.ws.api
  * @author solomax
  *
  */
-public class WebClient  implements IDataProviderEntity, Serializable {
+public class Client implements IDataProviderEntity {
 	private static final long serialVersionUID = 1L;
 
 	public enum Right {
@@ -45,14 +44,15 @@ public class WebClient  implements IData
 	private Date connectedSince;
 	private int serverId = 0;
 
-	public WebClient() {
+	public Client() {
+		this.connectedSince = new Date();
 	}
 	
-	public WebClient(String sessionId, IKey key, long userId) {
+	public Client(String sessionId, IKey key, long userId) {
 		this(sessionId, key.hashCode(), userId);
 	}
 	
-	public WebClient(String sessionId, int pageId, long userId) {
+	public Client(String sessionId, int pageId, long userId) {
 		this.sessionId = sessionId;
 		this.pageId = pageId;
 		this.userId = userId;
@@ -90,17 +90,6 @@ public class WebClient  implements IData
 	public void setUid(String uid) {
 		this.uid = uid;
 	}
-	public Date getConnectedSince() {
-		return connectedSince;
-	}
-
-	public void setConnectedSince(Date connectedSince) {
-		this.connectedSince = connectedSince;
-	}
-	
-	public int getServerId() {
-		return this.serverId;
-	}
 
 	@Override
 	public int hashCode() {
@@ -120,7 +109,7 @@ public class WebClient  implements IData
 			return false;
 		if (getClass() != obj.getClass())
 			return false;
-		WebClient other = (WebClient) obj;
+		Client other = (Client) obj;
 		if (pageId != other.pageId)
 			return false;
 		if (sessionId == null) {
@@ -140,4 +129,21 @@ public class WebClient  implements IData
 	public boolean hasRight(Right right) {
 		return rights.contains(Right.moderator) ? true : rights.contains(right);
 	}
+
+	public Date getConnectedSince() {
+		return connectedSince;
+	}
+
+	public void setConnectedSince(Date connectedSince) {
+		this.connectedSince = connectedSince;
+	}
+
+	@Override
+	public Long getId() {
+		return null;
+	}
+
+	@Override
+	public void setId(Long id) {
+	}
 }

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Fri Nov  6 06:18:44 2015
@@ -199,8 +199,8 @@ public class WebSession extends Abstract
 		if (soapLogin != null && !soapLogin.getUsed()) { //add code for  || (soapLogin.getAllowSameURLMultipleTimes())
 			SessiondataDao sessionDao = getBean(SessiondataDao.class);
 			Sessiondata sd = sessionDao.getSessionByHash(soapLogin.getSessionHash());
-			if (sd != null && sd.getSessionXml() != null) {
-				RemoteSessionObject remoteUser = RemoteSessionObject.fromXml(sd.getSessionXml());
+			if (sd != null && sd.getXml() != null) {
+				RemoteSessionObject remoteUser = RemoteSessionObject.fromXml(sd.getXml());
 				if (remoteUser != null && !Strings.isEmpty(remoteUser.getExternalUserId())) {
 					UserDao userDao = getBean(UserDao.class);
 					User user = userDao.getExternalUser(remoteUser.getExternalUserId(), remoteUser.getExternalUserType());
@@ -209,10 +209,10 @@ public class WebSession extends Abstract
 						user.setFirstname(remoteUser.getFirstname());
 						user.setLastname(remoteUser.getLastname());
 						user.setLogin(remoteUser.getUsername()); //FIXME check if login UNIQUE
-						user.setExternalUserId(remoteUser.getExternalUserId());
-						user.setExternalUserType(remoteUser.getExternalUserType());
+						user.setExternalId(remoteUser.getExternalUserId());
+						user.setExternalType(remoteUser.getExternalUserType());
 						user.getRights().add(Right.Room);
-						user.getAdresses().setEmail(remoteUser.getEmail());
+						user.getAddress().setEmail(remoteUser.getEmail());
 						user.setPictureuri(remoteUser.getPictureUrl());
 					} else {
 						user.setFirstname(remoteUser.getFirstname());
@@ -226,7 +226,7 @@ public class WebSession extends Abstract
 					//soapLogin.setClientURL(clientURL); //FIXME
 					soapDao.update(soapLogin);
 
-					sessionDao.updateUser(SID, user.getUser_id());
+					sessionDao.updateUser(SID, user.getId());
 					setUser(user);
 					recordingId = soapLogin.getRoomRecordingId();
 					return true;
@@ -237,10 +237,10 @@ public class WebSession extends Abstract
 	}
 	
 	private void setUser(User u) {
-		userId = u.getUser_id();
+		userId = u.getId();
 		rights = Collections.unmodifiableSet(u.getRights());
-		languageId = u.getLanguage_id();
-		externalType = u.getExternalUserType();
+		languageId = u.getLanguageId();
+		externalType = u.getExternalType();
 		tz = getBean(TimezoneUtil.class).getTimeZone(u);
 		ISO8601FORMAT.setTimeZone(tz);
 		setLocale(languageId == 3 ? Locale.GERMANY : LabelDao.languages.get(languageId)); //FIXME hack
@@ -282,7 +282,7 @@ public class WebSession extends Abstract
 	
 	public boolean signIn(User u) {
 		Sessiondata sessData = getBean(SessiondataDao.class).startsession();
-		SID = sessData.getSession_id();
+		SID = sessData.getSessionId();
 		if (u == null) {
 			return false;
 		}
@@ -307,7 +307,7 @@ public class WebSession extends Abstract
 		WebSession session = get();
 		if (session.languageId < 0) {
 			if (session.isSignedIn()) {
-				session.languageId = getBean(UserDao.class).get(session.userId).getLanguage_id();
+				session.languageId = getBean(UserDao.class).get(session.userId).getLanguageId();
 			} else {
 				session.languageId = getBean(ConfigurationDao.class).getConfValue(CONFIG_DEFAULT_LANG_KEY, Long.class, "1");
 			}
@@ -323,11 +323,11 @@ public class WebSession extends Abstract
 			if (sessionData == null) {
 				sessionData = sessionDao.startsession();
 			}
-			if (!sessionDao.updateUser(sessionData.getSession_id(), userId, false, languageId)) {
+			if (!sessionDao.updateUser(sessionData.getSessionId(), userId, false, languageId)) {
 				//something bad, force user to re-login
 				invalidate();
 			} else {
-				SID = sessionData.getSession_id();
+				SID = sessionData.getSessionId();
 			}
 		}
 		return SID;

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html Fri Nov  6 06:18:44 2015
@@ -39,10 +39,10 @@
 		<label><wicket:message key="111" /></label><select wicket:id="language_id" />
 	</div>
 	<div class="formelement">
-		<label><wicket:message key="137" /></label><input type="text" wicket:id="adresses.email" />
+		<label><wicket:message key="137" /></label><input type="text" wicket:id="address.email" />
 	</div>
 	<div class="formelement">
-		<label><wicket:message key="607" /></label><input type="text" wicket:id="adresses.phone" />
+		<label><wicket:message key="607" /></label><input type="text" wicket:id="address.phone" />
 	</div>
 	<div class="formelement">
 		<label><wicket:message key="1503" /></label><input class="formcheckbox" type="checkbox" wicket:id="sendSMS" />
@@ -52,20 +52,20 @@
 	</div>
 	<div class="formelement">
 		<label><wicket:message key="139" /></label><input type="text"
-			wicket:id="adresses.street" style="width: 244px;" /> <input
-			type="text" wicket:id="adresses.additionalname" style="width: 30px;" />
+			wicket:id="address.street" style="width: 244px;" /> <input
+			type="text" wicket:id="address.additionalname" style="width: 30px;" />
 	</div>
 	<div class="formelement">
 		<label><wicket:message key="140" /></label><input type="text"
-			wicket:id="adresses.zip" style="width: 60px;" /> <input type="text"
-			wicket:id="adresses.town" style="width: 214px;" />
+			wicket:id="address.zip" style="width: 60px;" /> <input type="text"
+			wicket:id="address.town" style="width: 214px;" />
 	</div>
 	<div class="formelement">
-		<label><wicket:message key="141" /></label><select wicket:id="adresses.states" />
+		<label><wicket:message key="141" /></label><select wicket:id="address.state" />
 	</div>
 	<div class="formelement">
 		<label><wicket:message key="142" /></label>
-		<textarea wicket:id="adresses.comment" />
+		<textarea wicket:id="address.comment" />
 	</div>
 	<div class="formelement">
 		<label><wicket:message key="161" /></label><input type="hidden" class="input" wicket:id="organisation_users" style="max-height: 80px" />

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java Fri Nov  6 06:18:44 2015
@@ -21,28 +21,25 @@ package org.apache.openmeetings.web.comm
 import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
-import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.OrganisationDao;
-import org.apache.openmeetings.db.dao.user.SalutationDao;
 import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.Organisation;
 import org.apache.openmeetings.db.entity.user.Organisation_Users;
-import org.apache.openmeetings.db.entity.user.Salutation;
 import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.util.CalendarHelper;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
 import org.apache.wicket.markup.head.IHeaderResponse;
@@ -71,7 +68,6 @@ import com.googlecode.wicket.kendo.ui.re
 
 public class GeneralUserForm extends Form<User> {
 	private static final long serialVersionUID = 1L;
-	private Salutation salutation;
 	private LocalDate age;
 	private PasswordTextField passwordField;
 	private RequiredTextField<String> email;
@@ -85,31 +81,21 @@ public class GeneralUserForm extends For
 		passwordField.setRequired(false).add(minimumLength(getMinPasswdLength(cfgDao)));
 
 		updateModelObject(getModelObject());
-		SalutationDao salutDao = getBean(SalutationDao.class);
 		add(new DropDownChoice<Salutation>("salutation"
-				, new PropertyModel<Salutation>(this, "salutation")
-				, salutDao.getUserSalutations(getLanguage())
+				, Arrays.asList(Salutation.values())
 				, new ChoiceRenderer<Salutation>() {
 					private static final long serialVersionUID = 1L;
 
 					@Override
 					public Object getDisplayValue(Salutation object) {
-						return getString("" + object.getFieldvalues_id());
+						return getString("user.salutation." + object.name());
 					}
 
 					@Override
 					public String getIdValue(Salutation object, int index) {
-						return "" + object.getSalutations_id();
+						return object.name();
 					}
-				})
-			.add(new AjaxFormComponentUpdatingBehavior("change") {
-				private static final long serialVersionUID = 1L;
-
-				@Override
-				protected void onUpdate(AjaxRequestTarget target) {
-					GeneralUserForm.this.getModelObject().setSalutations_id(salutation.getSalutations_id());
-				}
-			}));
+				}));
 		add(new TextField<String>("firstname"));
 		add(new TextField<String>("lastname"));
 		
@@ -117,10 +103,10 @@ public class GeneralUserForm extends For
 
 		add(new LanguageDropDown("language_id"));
 
-		add(email = new RequiredTextField<String>("adresses.email"));
+		add(email = new RequiredTextField<String>("address.email"));
 		email.setLabel(Model.of(Application.getString(137)));
 		email.add(RfcCompliantEmailAddressValidator.getInstance());
-		add(new TextField<String>("adresses.phone"));
+		add(new TextField<String>("address.phone"));
 		add(new CheckBox("sendSMS"));
 		add(new AjaxDatePicker("age", new PropertyModel<LocalDate>(this, "age"), WebSession.get().getLocale()) {
 			private static final long serialVersionUID = 1L;
@@ -131,12 +117,12 @@ public class GeneralUserForm extends For
 				u.setAge(CalendarHelper.getDate(age, u.getTimeZoneId()));
 			}
 		});
-		add(new TextField<String>("adresses.street"));
-		add(new TextField<String>("adresses.additionalname"));
-		add(new TextField<String>("adresses.zip"));
-		add(new TextField<String>("adresses.town"));
-		add(new DropDownChoice<State>("adresses.states", getBean(StateDao.class).getStates(), new ChoiceRenderer<State>("name", "state_id")));
-		add(new TextArea<String>("adresses.comment"));
+		add(new TextField<String>("address.street"));
+		add(new TextField<String>("address.additionalname"));
+		add(new TextField<String>("address.zip"));
+		add(new TextField<String>("address.town"));
+		add(new DropDownChoice<State>("address.state", getBean(StateDao.class).get(), new ChoiceRenderer<State>("name", "state_id")));
+		add(new TextArea<String>("address.comment"));
 
 		final List<Organisation_Users> orgUsers;
 		if (isAdminForm) {
@@ -158,7 +144,7 @@ public class GeneralUserForm extends For
 
 			@Override
 			protected Object getId(Organisation_Users choice) {
-				return choice.getOrganisation().getOrganisation_id();
+				return choice.getOrganisation().getId();
 			}
 
 			@Override
@@ -186,14 +172,13 @@ public class GeneralUserForm extends For
 	}
 
 	public void updateModelObject(User u) {
-		salutation = getBean(SalutationDao.class).get(u.getSalutations_id(), getLanguage());
 		age = CalendarHelper.getDate(u.getAge(), u.getTimeZoneId());
 	}
 	
 	@Override
 	protected void onValidate() {
 		User u = getModelObject();
-		if(!getBean(UserDao.class).checkEmail(email.getConvertedInput(), u.getType(), u.getDomainId(), u.getUser_id())) {
+		if(!getBean(UserDao.class).checkEmail(email.getConvertedInput(), u.getType(), u.getDomainId(), u.getId())) {
 			error(Application.getString(1000));
 		}
 		super.onValidate();
@@ -202,12 +187,11 @@ public class GeneralUserForm extends For
 	public PasswordTextField getPasswordField() {
 		return passwordField;
 	}
-
 	
 	public String getEmail() {
 		return email.getValue();
 	}
-	
+
 	@Override
 	protected IMarkupSourcingStrategy newMarkupSourcingStrategy() {
 		return new PanelMarkupSourcingStrategy(false);

Modified: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java?rev=1712911&r1=1712910&r2=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java Fri Nov  6 06:18:44 2015
@@ -24,9 +24,9 @@ import static org.apache.openmeetings.we
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.openmeetings.db.dao.room.IRoomManager;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.Type;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.model.IModel;
@@ -45,8 +45,8 @@ public abstract class UserPanel extends
 	
 	public static List<Room> getMyRooms() {
 		List<Room> result = new ArrayList<Room>();
-		result.add(getBean(IRoomManager.class).getRoomByOwnerAndTypeId(getUserId(), 1L, Application.getString(1306L)));
-		result.add(getBean(IRoomManager.class).getRoomByOwnerAndTypeId(getUserId(), 3L, Application.getString(1307L)));
+		result.add(getBean(RoomDao.class).getUserRoom(getUserId(), Type.conference, Application.getString(1306L)));
+		result.add(getBean(RoomDao.class).getUserRoom(getUserId(), Type.conference, Application.getString(1307L)));
 		result.addAll(getBean(RoomDao.class).getAppointedRoomsByUser(getUserId()));
 		return result;
 	}

Copied: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html (from r1712910, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.html)
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html?p2=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html&p1=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.html&r1=1712910&r2=1712911&rev=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.html (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.html Fri Nov  6 06:18:44 2015
@@ -20,7 +20,7 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:panel>
-	<div wicket:id="container" class="recording dialog errors">
+	<div wicket:id="container" class="dialog errors">
 		<h3 wicket:id="message"></h3>
 		<table style="width: 100%">
 			<tr>

Copied: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java (from r1712825, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java)
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java?p2=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java&p1=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java&r1=1712825&r2=1712911&rev=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java Fri Nov  6 06:18:44 2015
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.user.record;
+package org.apache.openmeetings.web.common.tree;
 
 import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
@@ -25,9 +25,9 @@ import static org.apache.openmeetings.we
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
-import org.apache.openmeetings.db.entity.record.FlvRecording;
-import org.apache.openmeetings.db.entity.record.FlvRecordingLog;
+import org.apache.openmeetings.db.dao.record.RecordingLogDao;
+import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.record.RecordingLog;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -41,16 +41,16 @@ import org.apache.wicket.model.Model;
 import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
 import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
 
-public class RecordingErrorsDialog extends AbstractDialog<FlvRecording> {
+public class ConvertingErrorsDialog extends AbstractDialog<Recording> {
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer container = new WebMarkupContainer("container");
 	private final Label message = new Label("message", Model.of((String)null));
-	private final ListView<FlvRecordingLog> logView = new ListView<FlvRecordingLog>("row") {
+	private final ListView<RecordingLog> logView = new ListView<RecordingLog>("row") {
 		private static final long serialVersionUID = 1L;
 
 		@Override
-		protected void populateItem(ListItem<FlvRecordingLog> item) {
-			FlvRecordingLog l = item.getModelObject();
+		protected void populateItem(ListItem<RecordingLog> item) {
+			RecordingLog l = item.getModelObject();
 			item.add(new Label("exitCode", l.getExitValue()));
 			item.add(new Label("message", l.getFullMessage()));
 			if (!"0".equals(l.getExitValue())) {
@@ -74,15 +74,15 @@ public class RecordingErrorsDialog exten
 		return true;
 	}
 
-	public RecordingErrorsDialog(String id, IModel<FlvRecording> model) {
+	public ConvertingErrorsDialog(String id, IModel<Recording> model) {
 		super(id, Application.getString(887), model);
 		add(container.add(message.setVisible(false), logView.setVisible(false)).setOutputMarkupId(true));
 	}
 	
 	@Override
-	protected void onOpen(IPartialPageRequestHandler target) {
-		FlvRecording f = getModelObject();
-		List<FlvRecordingLog> logs = getBean(FlvRecordingLogDao.class).getByRecordingId(f.getFlvRecordingId());
+	protected void onOpen(IPartialPageRequestHandler handler) {
+		Recording f = getModelObject();
+		List<RecordingLog> logs = getBean(RecordingLogDao.class).getByRecordingId(f.getId());
 		if (f.getFileHash() == null) {
 			message.setVisible(true);
 			message.setDefaultModelObject(Application.getString(888));
@@ -96,12 +96,12 @@ public class RecordingErrorsDialog exten
 			logView.setVisible(false);
 			logView.setList(logs).setVisible(true);
 		}
-		target.add(container);
-		super.onOpen(target);
+		handler.add(container);
+		super.onOpen(handler);
 	}
 	
 	@Override
-	public void onClose(IPartialPageRequestHandler target, DialogButton button) {
+	public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
 	}
 	
 	@Override

Copied: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java (from r1712825, openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java)
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java?p2=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java&p1=openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java&r1=1712825&r2=1712911&rev=1712911&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java Fri Nov  6 06:18:44 2015
@@ -16,36 +16,43 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.user.record;
+package org.apache.openmeetings.web.common.tree;
 
 import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
 import static org.apache.openmeetings.web.app.Application.getBean;
 
-import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
-import org.apache.openmeetings.db.entity.record.FlvRecording;
-import org.apache.openmeetings.db.entity.record.FlvRecording.Status;
+import org.apache.openmeetings.db.dao.record.RecordingLogDao;
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.record.Recording.Status;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.IModel;
 
-public class RecordingItemPanel extends RecordingPanel {
+public class FileItemPanel extends FolderPanel {
 	private static final long serialVersionUID = 1L;
+	private final WebMarkupContainer errors = new WebMarkupContainer("errors");
 
-	public RecordingItemPanel(String id, final IModel<FlvRecording> model, final RecordingsPanel treePanel) {
-		super(id, model, treePanel);
-		FlvRecording r = model.getObject();
-		long errorCount = getBean(FlvRecordingLogDao.class).countErrors(r.getFlvRecordingId());
-		boolean visible = errorCount != 0 || (Status.RECORDING != r.getStatus() && Status.CONVERTING != r.getStatus() && !isRecordingExists(r.getFileHash() + MP4_EXTENSION));
-		drag.add(new WebMarkupContainer("errors").add(new AjaxEventBehavior("click") {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			protected void onEvent(AjaxRequestTarget target) {
-				treePanel.errorsDialog.setDefaultModel(model);
-				treePanel.errorsDialog.open(target);
-			}
-		}).setVisible(visible));
+	public FileItemPanel(String id, final IModel<? extends FileItem> model, final FileTreePanel fileTreePanel) {
+		super(id, model, fileTreePanel);
+		if (model.getObject() instanceof Recording) {
+			Recording r = (Recording)model.getObject();
+			long errorCount = getBean(RecordingLogDao.class).countErrors(r.getId());
+			boolean visible = errorCount != 0 || (Status.RECORDING != r.getStatus() && Status.CONVERTING != r.getStatus() && !isRecordingExists(r.getFileHash() + MP4_EXTENSION));
+			errors.add(new AjaxEventBehavior("click") {
+				private static final long serialVersionUID = 1L;
+	
+				@Override
+				protected void onEvent(AjaxRequestTarget target) {
+					fileTreePanel.errorsDialog.setDefaultModel(model);
+					fileTreePanel.errorsDialog.open(target);
+				}
+			}).setVisible(visible);
+		} else {
+			errors.setVisible(false);
+		}
+		drag.add(errors);
 	}
 }

Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1712911&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java Fri Nov  6 06:18:44 2015
@@ -0,0 +1,175 @@
+/*
+ * 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.common.tree;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
+import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.record.Recording.Status;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
+import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
+import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
+import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+public class FileItemTree<T extends FileItem> extends DefaultNestedTree<T> {
+	private static final long serialVersionUID = 1L;
+	private final FileTreePanel treePanel;
+	private final IModel<T> selectedItem = Model.of((T)null);
+
+	public FileItemTree(String id, FileTreePanel treePanel, ITreeProvider<T> tp) {
+		super(id, tp);
+		this.treePanel = treePanel;
+		setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
+	}
+	
+	@Override
+	protected Component newContentComponent(String id, IModel<T> node) {
+		return new Folder<T>(id, this, node) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected Component newLabelComponent(String id, final IModel<T> lm) {
+				FileItem r = lm.getObject();
+				return Type.Folder == r.getType() || r.getId() < 1 ? new FolderPanel(id, lm, treePanel) : new FileItemPanel(id, lm, treePanel);
+			}
+			
+			@Override
+			protected boolean isSelected() {
+				return getModelObject().getId().equals(treePanel.selectedFile.getObject().getId());
+			}
+			
+			@Override
+			protected boolean isClickable() {
+				return true;
+			}
+			
+			@Override
+			protected void onClick(AjaxRequestTarget target) {
+				T r = getModelObject();
+				treePanel.selected.resetSelected(target);
+				selectedItem.setObject(r);
+				treePanel.selectedFile.setObject(r);
+				treePanel.selected = FileItemTree.this;
+				if (Type.Folder == r.getType()) {
+					if (getState(r) == State.COLLAPSED) {
+						super.onClick(target);
+					}
+					updateBranch(r, target);
+				} else {
+					treePanel.update(target, r);
+					updateNode(r, target);
+				}
+			}
+			
+			private String getItemStyle(T f, String def) {
+				String style;
+				if (f.getId() == 0) {
+					style = "my file om-icon";
+				} else if (f.getId() < 0) {
+					style = "public file om-icon";
+				} else {
+					switch(f.getType()) {
+						case Folder:
+							style = def;
+							break;
+						case Image:
+							style = "image file om-icon";
+							break;
+						case PollChart:
+							style = "chart file om-icon";
+							break;
+						case WmlFile:
+							style = "wml file om-icon";
+							break;
+						case Recording:
+						{
+							Recording r = (Recording)f;
+							if (isRecordingExists(r.getFileHash() + MP4_EXTENSION)) {
+								style = "recording om-icon";
+							} else if (Status.RECORDING == r.getStatus() || Status.CONVERTING == r.getStatus()) {
+								style = "processing-recording om-icon";
+							} else {
+								style = "broken-recording om-icon";
+							}
+						}
+							break;
+						case Presentation:
+							style = "doc file om-icon";
+							break;
+						case Video:
+						default:
+							style = "recording om-icon";
+							break;
+					}
+				}
+				return style;
+			}
+			
+			@Override
+			protected String getOtherStyleClass(T r) {
+				return getItemStyle(r, super.getOtherStyleClass(r));
+			}
+			
+			@Override
+			protected String getOpenStyleClass() {
+				return getItemStyle(getModelObject(), super.getOpenStyleClass());
+			}
+			
+			@Override
+			protected String getClosedStyleClass() {
+				return getItemStyle(getModelObject(), super.getClosedStyleClass());
+			}
+			
+			@Override
+			protected String getSelectedStyleClass() {
+				return "ui-state-active";
+			}
+			
+			@Override
+			protected IModel<String> newLabelModel(IModel<T> model) {
+				return Model.of(model.getObject().getFileName());
+			}
+		};
+	}
+
+	private void resetSelected(AjaxRequestTarget target) {
+		T _prev = selectedItem.getObject();
+		if (_prev != null) {
+			if (Type.Folder == _prev.getType()) {
+				updateBranch(_prev, target);
+			} else {
+				updateNode(_prev, target);
+			}
+			selectedItem.setObject(null);
+		}
+	}
+	
+	@Override
+	protected void onDetach() {
+		selectedItem.detach();
+		super.onDetach();
+	}
+}

Added: openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html?rev=1712911&view=auto
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html (added)
+++ openmeetings/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html Fri Nov  6 06:18:44 2015
@@ -0,0 +1,58 @@
+<?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:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<script type="text/javascript">
+		function treeRevert(dropped) {
+			$('#tree-anchor').get(0).scrollIntoView();
+			this.parent().parent().get(0).scrollIntoView();
+			return !dropped;
+		}
+	</script>
+	<div class="file tree">
+		<div class="icons clear trash-toolbar" wicket:id="trash-toolbar">
+			<span wicket:id="create" class="folder-create om-icon align-left clickable" wicket:message="title:703"></span>
+			<span wicket:id="refresh" class="refresh om-icon align-left clickable" wicket:message="title:704"></span>
+			<span wicket:id="trash" class="trash om-icon align-right clickable"></span>
+			<span style="padding-left: 20px;" wicket:message="title:705"><wicket:message key="1224"/></span>
+			<div class="clear"></div>
+		</div>
+		<div wicket:id="tree-container" class="trees">
+			<div id="tree-anchor" style="height: 2px; width: 2px;"></div>
+			<div wicket:id="tree"></div>
+		</div>
+		<div class="sizes" wicket:id="sizes">
+			<table>
+				<tr>
+					<td><wicket:message key="923"/></td>
+					<td><span wicket:id="homeSize"></span></td>
+				</tr>
+				<tr>
+					<td><wicket:message key="924"/></td>
+					<td><span wicket:id="publicSize"></span></td>
+				</tr>
+			</table>
+		</div>
+		<div wicket:id="addFolder"></div>
+		<div wicket:id="errors"></div>
+	</div>
+</wicket:panel>
+</html>
\ No newline at end of file