This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 6d54639  [OPENMEETINGS-1867] Room clients are held in 
LoadableDetachableModel
6d54639 is described below

commit 6d54639e4087329fee2560af15113bdb26d226ed
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Fri Mar 22 16:32:21 2019 +0700

    [OPENMEETINGS-1867] Room clients are held in LoadableDetachableModel
---
 .../openmeetings/web/room/sidebar/RoomSidebar.java | 23 ++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 0de1c58..99ac56f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -22,7 +22,7 @@ import static 
org.apache.openmeetings.web.app.Application.kickUser;
 import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
 import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
 
-import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.openmeetings.core.remote.StreamProcessor;
 import org.apache.openmeetings.core.util.WebSocketHelper;
@@ -54,6 +54,7 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.StringValue;
@@ -88,7 +89,16 @@ public class RoomSidebar extends Panel {
        private Client kickedClient;
        private VideoSettings settings = new VideoSettings("settings");
        private ActivitiesPanel activities;
-       private final ListView<Client> users = new ListView<Client>("user", new 
ArrayList<Client>()) {
+       private final ListView<Client> users = new ListView<Client>("user", new 
LoadableDetachableModel<List<Client>>() {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               protected List<Client> load() {
+                       List<Client> list = 
cm.listByRoom(room.getRoom().getId());
+                       userCount.setDefaultModelObject(list.size());
+                       return list;
+               }
+       }) {
                private static final long serialVersionUID = 1L;
 
                @Override
@@ -228,7 +238,7 @@ public class RoomSidebar extends Panel {
                final Form<?> form = new Form<>("form");
                ConfirmableBorderDialog confirmTrash = new 
ConfirmableBorderDialog("confirm-trash", getString("80"), getString("713"), 
form);
                roomFiles = new RoomFilePanel("tree", room, addFolder, 
confirmTrash);
-               add(selfRights, 
userList.add(updateUsers()).setOutputMarkupId(true)
+               add(selfRights, userList.add(users).setOutputMarkupId(true)
                                , fileTab.setVisible(!room.isInterview()), 
roomFiles.setVisible(!room.isInterview()));
 
                add(addFolder, settings, userCount.setOutputMarkupId(true));
@@ -255,11 +265,6 @@ public class RoomSidebar extends Panel {
                response.render(new 
PriorityHeaderItem(getNamedFunction(FUNC_SETTINGS, avSettings, 
explicit(PARAM_SETTINGS))));
        }
 
-       private ListView<Client> updateUsers() {
-               users.setList(cm.listByRoom(room.getRoom().getId()));
-               return users;
-       }
-
        private void updateShowFiles(IPartialPageRequestHandler handler) {
                if (room.isInterview()) {
                        return;
@@ -273,8 +278,6 @@ public class RoomSidebar extends Panel {
                        return;
                }
                updateShowFiles(handler);
-               updateUsers();
-               userCount.setDefaultModelObject(users.getList().size());
                handler.add(selfRights.update(handler), userList, userCount);
        }
 

Reply via email to