Author: vdegtyarev
Date: Thu Jul 11 04:17:10 2013
New Revision: 1502110

URL: http://svn.apache.org/r1502110
Log:
OPENMEETINGS-695 is fixed

Modified:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.java

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.html?rev=1502110&r1=1502109&r2=1502110&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
 Thu Jul 11 04:17:10 2013
@@ -20,14 +20,48 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org";>
 <wicket:panel>
-       <table style="border-collapse: collapse;">
-               <tr wicket:id="list" style="background-color: rgb(248, 248, 
248); border-bottom: 5px solid white;">
+       <table>
+               <tr>
+                       <td style="vertical-align: top">
+                               <table style="border-collapse: collapse;">
+                                       <tr wicket:id="list" 
style="background-color: rgb(248, 248, 248); border-bottom: 5px solid white;">
+                                               <td>
+                                                       <div 
wicket:id="roomContainer">         
+                                                               <span 
wicket:id="roomName">[room name]</span><br/>
+                                                               
<wicket:ommessage key="398" />&nbsp;<span 
wicket:id="curUsers"></span>&nbsp;/&nbsp;<span
+                                                               
wicket:id="totalUsers"></span>&nbsp;&nbsp;<span wicket:id="refresh" 
+                                                               class="ui-icon 
ui-icon-arrowrefresh-1-n" style="display: inline-block"></span>
+                                                       </div>
+                                               </td>
+                                               <td><button 
wicket:id="enter"><wicket:ommessage key="131"/></button></td>
+                                       </tr>
+                               </table>
+                       </td>
                        <td>
-                               <span wicket:id="roomName">[room 
name]</span><br/>
-                               <wicket:ommessage key="398" />&nbsp;<span 
wicket:id="curUsers"></span>&nbsp;/&nbsp;<span
-                               wicket:id="totalUsers"></span>&nbsp;&nbsp;<span 
wicket:id="refresh" 
-                               class="ui-icon ui-icon-arrowrefresh-1-n" 
style="display: inline-block"></span></td>
-                       <td><button wicket:id="enter"><wicket:ommessage 
key="131"/></button></td>
+                               <!-- Users in this Room -->
+                               <fieldset>
+                                       <div class="formelement">
+                           <label><wicket:ommessage key="404" /></label>
+                                       </div>
+                                       <div class="formelement">
+                           <label><wicket:ommessage key="270" /></label>
+                           <span wicket:id="roomComment"></span>
+                                       </div>
+                                       <div class="formelement">
+                           <label><wicket:ommessage key="407" /></label>
+                                       </div>
+                                       <div class="tableWrapper" 
id="adminTable">
+                                               <table class="adminListTable">
+                                                       <tbody 
wicket:id="clientsContainer">            
+                                                       <tr wicket:id="clients">
+                                                                       <td 
style="width: 50px; height:50px" ><div style="width: 50px; height:50px"><img 
wicket:id="clientImage" width="50" height="50" /></div></td>
+                                                                       <td 
style="width: 350px; height:50px"><div style="width: 350px; height:50px"><span 
wicket:id="clientLogin"></span></div></td>
+                                                               </tr>
+                                                       </tbody>
+                                               </table>
+                                       </div>
+                               </fieldset>
+                       </td>
                </tr>
        </table>
 </wicket:panel>

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.java?rev=1502110&r1=1502109&r2=1502110&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
 Thu Jul 11 04:17:10 2013
@@ -18,23 +18,38 @@
  */
 package org.apache.openmeetings.web.user.rooms;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.util.List;
 
+import org.apache.openmeetings.data.conference.dao.RoomDao;
+import org.apache.openmeetings.data.user.dao.UsersDao;
+import org.apache.openmeetings.persistence.beans.room.Client;
 import org.apache.openmeetings.persistence.beans.room.Room;
 import org.apache.openmeetings.session.SessionManager;
+import org.apache.openmeetings.utils.OmFileHelper;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.image.Image;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.request.resource.ByteArrayResource;
+import org.apache.wicket.util.io.IOUtils;
 
 public class RoomsPanel extends UserPanel {
        private static final long serialVersionUID = -892281210307880052L;
+       final WebMarkupContainer clientsContainer;
+       final ListView<Client> clients;
+       Label roomComment;
+       List<Client> clientsInRoom = null;
+       long roomId = 0;
 
        public RoomsPanel(String id, List<Room> rooms) {
                super(id);
@@ -44,22 +59,79 @@ public class RoomsPanel extends UserPane
                        @Override
                        protected void populateItem(ListItem<Room> item) {
                                final Room r = item.getModelObject();
-                               item.add(new Label("roomName", r.getName()));
+                               WebMarkupContainer roomContainer;
+                               item.add((roomContainer = new 
WebMarkupContainer("roomContainer")).add(new AjaxEventBehavior("onclick"){
+                                       private static final long 
serialVersionUID = 1L;
+                                       
+                                       @Override
+                                       protected void 
onEvent(AjaxRequestTarget target) {
+                                               roomId = r.getRooms_id();
+                                               updateRoomDetails(target);
+                                       }
+                               }));
+                               roomContainer.add(new Label("roomName", 
r.getName()));
                                final IModel<Integer> curUsersModel = new 
Model<Integer>(Application.getBean(SessionManager.class).getClientListByRoom(r.getRooms_id()).size());
 
                                final Label curUsers = new Label("curUsers", 
curUsersModel);
-                               item.add(curUsers.setOutputMarkupId(true));
-                               item.add(new Label("totalUsers", 
r.getNumberOfPartizipants()));
+                               
roomContainer.add(curUsers.setOutputMarkupId(true));
+                               roomContainer.add(new Label("totalUsers", 
r.getNumberOfPartizipants()));
                                item.add(new 
WebMarkupContainer("enter").add(new RoomEnterBehavior(r.getRooms_id())));
-                               item.add(new AjaxLink<Void>("refresh") {
+                               roomContainer.add(new AjaxLink<Void>("refresh") 
{
                                        private static final long 
serialVersionUID = -3426813755917489787L;
 
                                        @Override
                                        public void onClick(AjaxRequestTarget 
target) {
+                                               roomId = r.getRooms_id();
                                                
curUsersModel.setObject(Application.getBean(SessionManager.class).getClientListByRoom(r.getRooms_id()).size());
                                                target.add(curUsers);
+                                               updateRoomDetails(target);
                                        }
                                });
                        }
                });
+               
+               // Users in this Room
+               roomComment = new Label("roomComment", Model.of(""));
+               add(roomComment.setOutputMarkupId(true));
+               clientsContainer = new WebMarkupContainer("clientsContainer");
+               clients = new ListView<Client>("clients", clientsInRoom){
+                       private static final long serialVersionUID = 
8542589945574690054L;
+
+                       @Override
+                       protected void populateItem(final ListItem<Client> 
item) {
+                               Client client = item.getModelObject();
+                               final Long userId = client.getUser_id();
+                               item.add(new Image("clientImage", new 
ByteArrayResource("image/jpeg") {
+                                       private static final long 
serialVersionUID = 6039580072791941591L;
+
+                                       @Override
+                                       protected ResourceResponse 
newResourceResponse(Attributes attributes) {
+                                               ResourceResponse rr = 
super.newResourceResponse(attributes);
+                                               rr.disableCaching();
+                                               return rr;
+                                       }
+                                       
+                                       @Override
+                                       protected byte[] getData(Attributes 
attributes) {
+                                               String uri = 
Application.getBean(UsersDao.class).get(userId).getPictureuri();
+                                               File img = 
OmFileHelper.getUserProfilePicture(userId, uri);
+                                               try {
+                                                       return 
IOUtils.toByteArray(new FileInputStream(img));
+                                               } catch (Exception e) {
+                                               }
+                                               return null;
+                                       }
+                               }));
+                               item.add(new Label("clientLogin", "" + 
client.getUsername()));
+                       }
+               };
+               
add(clientsContainer.add(clients.setOutputMarkupId(true)).setOutputMarkupId(true));
+       }
+
+       void updateRoomDetails(AjaxRequestTarget target) {
+               final List<Client> clientsInRoom = 
Application.getBean(SessionManager.class).getClientListByRoom(roomId);
+               clients.setDefaultModelObject(clientsInRoom);
+               Room room = Application.getBean(RoomDao.class).get(roomId); 
+               roomComment.setDefaultModel(Model.of(room.getComment()));
+               target.add(clientsContainer, roomComment);
        }
 }


Reply via email to