Author: solomax
Date: Sat Sep 13 06:57:32 2014
New Revision: 1624701

URL: http://svn.apache.org/r1624701
Log:
[OPENMEETINGS-1085] menu is updated on user enter

Removed:
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/PollCreated.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/UserListMessage.java
Modified:
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java?rev=1624701&r1=1624700&r2=1624701&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
 Sat Sep 13 06:57:32 2014
@@ -38,7 +38,7 @@ import org.apache.wicket.util.string.Str
  */
 public class MenuPanel extends BasePanel {
        private static final long serialVersionUID = 1L;
-       private WebMarkupContainer menuContainer = new 
WebMarkupContainer("menuContainer");
+       private final WebMarkupContainer menuContainer = new 
WebMarkupContainer("menuContainer");
 
        public MenuPanel(String id, List<MenuItem> menus) {
                super(id);
@@ -50,7 +50,7 @@ public class MenuPanel extends BasePanel
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected void populateItem(ListItem<MenuItem> item) {
+                       protected void populateItem(final ListItem<MenuItem> 
item) {
                                final MenuItem gl = item.getModelObject();
                                AjaxLink<Void> link = new 
AjaxLink<Void>("link") {
                                        private static final long 
serialVersionUID = 1L;
@@ -74,10 +74,10 @@ public class MenuPanel extends BasePanel
                                                private static final long 
serialVersionUID = 1L;
        
                                                @Override
-                                               protected void 
populateItem(ListItem<MenuItem> item) {
-                                                       final MenuItem m = 
item.getModelObject();
-                                                       
item.setVisible(m.isActive());
-                                                       item.add(new 
AjaxLink<Void>("link") {
+                                               protected void 
populateItem(final ListItem<MenuItem> item1) {
+                                                       final MenuItem m = 
item1.getModelObject();
+                                                       
item1.setVisible(m.isActive());
+                                                       item1.add(new 
AjaxLink<Void>("link") {
                                                                private static 
final long serialVersionUID = 1L;
                                                                {
                                                                        add(new 
Label("name", m.getName()));
@@ -89,9 +89,9 @@ public class MenuPanel extends BasePanel
                                                                }
                                                        });
                                                }
-                                       }.setReuseItems(true)).setVisible(null 
!= gl.getChildren()));
+                                       }).setVisible(null != 
gl.getChildren()));
                        }
-               }.setReuseItems(true));
+               });
                add(new MenuFunctionsBehavior(menuContainer.getMarkupId(), id));
        }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1624701&r1=1624700&r2=1624701&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 Sat Sep 13 06:57:32 2014
@@ -45,7 +45,7 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.common.menu.MenuItem;
 import org.apache.openmeetings.web.common.menu.MenuPanel;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.room.message.UserListMessage;
+import org.apache.openmeetings.web.room.message.RoomMessage;
 import org.apache.openmeetings.web.user.AboutDialog;
 import org.apache.openmeetings.web.user.ChatPanel;
 import org.apache.openmeetings.web.util.OmUrlFragment;
@@ -148,7 +148,7 @@ public class MainPage extends BaseInited
                                long roomId = Application.getRoom(_c);
                                if (roomId > 0) {
                                        Application.removeUserFromRoom(roomId, 
_c);
-                                       RoomPanel.broadcast(roomId, new 
UserListMessage(_c.getUserId(), roomId, UserListMessage.Type.exit));
+                                       RoomPanel.broadcast(roomId, new 
RoomMessage(roomId, _c.getUserId(), RoomMessage.Type.roomExit));
                                }
                        }
                });

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java?rev=1624701&r1=1624700&r2=1624701&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java
 Sat Sep 13 06:57:32 2014
@@ -19,8 +19,8 @@
 package org.apache.openmeetings.web.room;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.util.Arrays;
 import java.util.List;
@@ -32,7 +32,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.room.message.PollCreated;
+import org.apache.openmeetings.web.room.message.RoomMessage;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
@@ -96,10 +96,10 @@ public class CreatePollDialog extends Ab
 
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
-               RoomPoll p = 
getBean(PollDao.class).update(form.getModelObject());
+               getBean(PollDao.class).update(form.getModelObject());
                WebSocketSettings webSocketSettings = 
WebSocketSettings.Holder.get(getApplication());
                WebSocketPushBroadcaster broadcaster = new 
WebSocketPushBroadcaster(webSocketSettings.getConnectionRegistry());
-               broadcaster.broadcastAll(getApplication(), new 
PollCreated(p.getId(), roomId));
+               broadcaster.broadcastAll(getApplication(), new 
RoomMessage(roomId, getUserId(), RoomMessage.Type.pollCreated));
        }
 
        private class PollForm extends Form<RoomPoll> {

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1624701&r1=1624700&r2=1624701&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Sat Sep 13 06:57:32 2014
@@ -62,9 +62,7 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.common.tree.MyRecordingTreeProvider;
 import org.apache.openmeetings.web.common.tree.PublicRecordingTreeProvider;
 import org.apache.openmeetings.web.pages.MainPage;
-import org.apache.openmeetings.web.room.message.PollCreated;
 import org.apache.openmeetings.web.room.message.RoomMessage;
-import org.apache.openmeetings.web.room.message.UserListMessage;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -87,6 +85,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.protocol.ws.WebSocketSettings;
 import org.apache.wicket.protocol.ws.api.IWebSocketConnection;
+import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
 import org.apache.wicket.protocol.ws.api.event.WebSocketPushPayload;
 import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
 import org.apache.wicket.protocol.ws.api.registry.PageIdKey;
@@ -124,22 +123,66 @@ public class RoomPanel extends BasePanel
                                        , 4L == 
r.getRoomtype().getRoomtypes_id()
                                        , getStringLabels(448, 449, 450, 451, 
758, 447, 52, 53, 1429, 1430, 775, 452, 767, 764, 765, 918, 54, 761, 
762).toString()
                                        ));
-                       broadcast(roomId, new UserListMessage(c.getUserId(), 
roomId, UserListMessage.Type.enter));
+                       broadcast(roomId, new RoomMessage(roomId, 
c.getUserId(), RoomMessage.Type.roomEnter));
                }
        };
        private final InvitationDialog invite;
        private final CreatePollDialog createPoll;
        private final MenuPanel menuPanel;
-       private final RoomMenuItem shareItem;
-       private final RoomMenuItem applyModer;
-       private final RoomMenuItem applyWB;
-       private final RoomMenuItem applyAV;
-       private final RoomMenuItem pollCreate;
-       private final RoomMenuItem pollVote;
-       private final RoomMenuItem pollResult;
-       private final RoomMenuItem sipDialer;
+       private final RoomMenuItem exitMenuItem = new 
RoomMenuItem(WebSession.getString(308), WebSession.getString(309), "room menu 
exit") {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               public void onClick(MainPage page, AjaxRequestTarget target) {
+                       if (WebSession.getRights().contains(Right.Dashboard)) {
+                               page.updateContents(ROOMS_PUBLIC, target);
+                       } else {
+                               String url = 
getBean(ConfigurationDao.class).getConfValue(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY,
 String.class, "");
+                               if (Strings.isEmpty(url)) {
+                                       url = 
getBean(ConfigurationDao.class).getConfValue(CONFIG_APPLICATION_BASE_URL, 
String.class, "");
+                               }
+                               throw new RedirectToUrlException(url);
+                       }
+               }
+       };
+       private final RoomMenuItem filesMenu = new 
RoomMenuItem(WebSession.getString(245), null, false);
+       private final RoomMenuItem actionsMenu = new 
RoomMenuItem(WebSession.getString(635), null, false);
+       private final RoomMenuItem inviteMenuItem = new 
RoomMenuItem(WebSession.getString(213), WebSession.getString(1489), false) {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               public void onClick(MainPage page, AjaxRequestTarget target) {
+                       invite.updateModel(target);
+                       invite.open(target);
+               }
+       };
+       private final RoomMenuItem shareMenuItem = new 
RoomMenuItem(WebSession.getString(239), WebSession.getString(1480), false) {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               public void onClick(MainPage page, AjaxRequestTarget target) {
+                       startSharing.respond(target);
+               }
+       };
+       private final RoomMenuItem applyModerMenuItem = new 
RoomMenuItem(WebSession.getString(784), WebSession.getString(1481), false);
+       private final RoomMenuItem applyWbMenuItem = new 
RoomMenuItem(WebSession.getString(785), WebSession.getString(1492), false);
+       private final RoomMenuItem applyAvMenuItem = new 
RoomMenuItem(WebSession.getString(786), WebSession.getString(1482), false);
+       private final RoomMenuItem pollCreateMenuItem = new 
RoomMenuItem(WebSession.getString(24), WebSession.getString(1483), false) {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               public void onClick(MainPage page, AjaxRequestTarget target) {
+                       createPoll.open(target);
+               }
+       };
+       private final RoomMenuItem pollVoteMenuItem = new 
RoomMenuItem(WebSession.getString(42), WebSession.getString(1485), false);
+       private final RoomMenuItem pollResultMenuItem = new 
RoomMenuItem(WebSession.getString(37), WebSession.getString(1484), false);
+       private final RoomMenuItem sipDialerMenuItem = new 
RoomMenuItem(WebSession.getString(1447), WebSession.getString(1488), false);
        private final WebMarkupContainer userList = new 
WebMarkupContainer("userList");
        private final ListView<RoomClient> users;
+       private final boolean showFiles;
+       private final Button shareBtn = new Button("share");
+       private final Button askBtn = new Button("ask");
        
        public RoomPanel(String id, long _roomId) {
                this(id, getBean(RoomDao.class).get(_roomId));
@@ -148,35 +191,12 @@ public class RoomPanel extends BasePanel
        public RoomPanel(String id, Room r) {
                super(id);
                this.roomId = r.getId();
-               shareItem = new RoomMenuItem(WebSession.getString(239), 
WebSession.getString(1480)) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(MainPage page, AjaxRequestTarget 
target) {
-                               startSharing.respond(target);
-                       }
-               };
-               applyModer = new RoomMenuItem(WebSession.getString(784), 
WebSession.getString(1481), false);
-               applyWB = new RoomMenuItem(WebSession.getString(785), 
WebSession.getString(1492), false);
-               applyAV = new RoomMenuItem(WebSession.getString(786), 
WebSession.getString(1482), false);
-               boolean pollExists = getBean(PollDao.class).hasPoll(roomId);
-               pollCreate = new RoomMenuItem(WebSession.getString(24), 
WebSession.getString(1483), !pollExists) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(MainPage page, AjaxRequestTarget 
target) {
-                               createPoll.open(target);
-                       }
-               };
-               pollVote = new RoomMenuItem(WebSession.getString(42), 
WebSession.getString(1485), false);
-               pollResult = new RoomMenuItem(WebSession.getString(37), 
WebSession.getString(1484), false);
-               sipDialer = new RoomMenuItem(WebSession.getString(1447), 
WebSession.getString(1488), false);
                add((menuPanel = new MenuPanel("roomMenu", 
getMenu())).setVisible(!r.getHideTopBar()));
                WebMarkupContainer wb = new WebMarkupContainer("whiteboard");
                add(wb.setOutputMarkupId(true));
                add(new WhiteboardBehavior("1", wb.getMarkupId(), null, null, 
null));
                add(aab, AttributeAppender.append("style", "height: 100%;"));
-               boolean showFiles = !r.getHideFilesExplorer();
+               showFiles = !r.getHideFilesExplorer();
                add(new WebMarkupContainer("flink").setVisible(showFiles));
                add(new WebMarkupContainer("ftab").add(new 
FileTreePanel("tree") {
                        private static final long serialVersionUID = 1L;
@@ -250,16 +270,16 @@ public class RoomPanel extends BasePanel
                });
                add(new Label("roomName", r.getName()));
                add(new Label("recording", "Recording 
started").setVisible(false)); //FIXME add/remove
-               add(new Button("ask")); //FIXME add/remove
+               
add(askBtn.setOutputMarkupPlaceholderTag(true).setVisible(false).add(new 
AttributeAppender("title", WebSession.getString(906))));
                add(startSharing = new StartSharingEventBehavior(roomId));
-               add(new Button("share").add(new AjaxEventBehavior("click") {
+               add(shareBtn.add(new AjaxEventBehavior("click") {
                        private static final long serialVersionUID = 1L;
                        
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
                                startSharing.respond(target);
                        }
-               }).add(new AttributeAppender("title", 
WebSession.getString(1480)))); //FIXME add/remove
+               
}).setOutputMarkupPlaceholderTag(true).setVisible(false).add(new 
AttributeAppender("title", WebSession.getString(1480))));
                add(invite = new InvitationDialog("invite", roomId));
                add(createPoll = new CreatePollDialog("createPoll", roomId));
        }
@@ -268,12 +288,23 @@ public class RoomPanel extends BasePanel
        public void onEvent(IEvent<?> event) {
                if (event.getPayload() instanceof WebSocketPushPayload) {
                        WebSocketPushPayload wsEvent = (WebSocketPushPayload) 
event.getPayload();
-                       if (wsEvent.getMessage() instanceof PollCreated) {
+                       if (wsEvent.getMessage() instanceof RoomMessage) {
+                               RoomMessage m = 
(RoomMessage)wsEvent.getMessage();
+                               switch (m.getType()) {
+                                       case pollCreated:
+                                       case rightUpdated:
+                                               
updateUserMenuIcons(wsEvent.getHandler());
+                                               break;
+                                       case roomEnter:
+                                               
updateUserMenuIcons(wsEvent.getHandler());
+                                       case roomExit:
+                                               users.setList(getUsers());
+                                               
wsEvent.getHandler().add(userList);
+                                               break;
+                                       default:
+                                               break;
+                               }
                                //TODO check this menuPanel.modelChanged();
-                               wsEvent.getHandler().add(menuPanel);
-                       } else if (wsEvent.getMessage() instanceof 
UserListMessage) {
-                               users.setList(getUsers());
-                               wsEvent.getHandler().add(userList);
                        }
                }
                super.onEvent(event);
@@ -347,56 +378,53 @@ public class RoomPanel extends BasePanel
                }
        }
        
+       private void updateUserMenuIcons(WebSocketRequestHandler handler) {
+               boolean pollExists = getBean(PollDao.class).hasPoll(roomId);
+               User u = getBean(UserDao.class).get(getUserId());
+               boolean notExternalUser = u.getType() != User.Type.external && 
u.getType() != User.Type.contact;
+               exitMenuItem.setActive(notExternalUser);//TODO check this
+               filesMenu.setActive(showFiles);
+               Room r = getBean(RoomDao.class).get(roomId);
+               actionsMenu.setActive(!r.getHideActionsMenu());
+               boolean moder = c.hasRight(Client.Right.moderator);
+               inviteMenuItem.setActive(notExternalUser && moder);
+               //TODO add check "sharing started"
+               boolean shareVisible = 4 != r.getRoomtype().getRoomtypes_id() 
&& moder; //FIXME hardcoded
+               shareMenuItem.setActive(shareVisible);
+               shareBtn.setVisible(shareMenuItem.isActive());
+               applyModerMenuItem.setActive(!moder);
+               applyWbMenuItem.setActive(!moder);
+               applyAvMenuItem.setActive(!moder);
+               pollCreateMenuItem.setActive(moder);
+               pollVoteMenuItem.setActive(pollExists && notExternalUser);
+               pollResultMenuItem.setActive(pollExists && notExternalUser);
+               //TODO sip menus
+               handler.add(menuPanel, askBtn.setVisible(!moder), 
shareBtn.setVisible(shareVisible));
+       }
+       
        private List<MenuItem> getMenu() {
                List<MenuItem> menu = new ArrayList<MenuItem>();
-               RoomMenuItem exit = new RoomMenuItem(WebSession.getString(308), 
WebSession.getString(309), "room menu exit") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(MainPage page, AjaxRequestTarget 
target) {
-                               if 
(WebSession.getRights().contains(Right.Dashboard)) {
-                                       page.updateContents(ROOMS_PUBLIC, 
target);
-                               } else {
-                                       String url = 
getBean(ConfigurationDao.class).getConfValue(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY,
 String.class, "");
-                                       if (Strings.isEmpty(url)) {
-                                               url = 
getBean(ConfigurationDao.class).getConfValue(CONFIG_APPLICATION_BASE_URL, 
String.class, "");
-                                       }
-                                       throw new RedirectToUrlException(url);
-                               }
-                       }
-               };
-               User u = getBean(UserDao.class).get(getUserId());
-               boolean externalUser = u.getType() == User.Type.external || 
u.getType() == User.Type.contact; //TODO check this
-               exit.setActive(!externalUser);
-               menu.add(exit);//TODO check this
-               MenuItem files = new RoomMenuItem(WebSession.getString(245));
+               exitMenuItem.setActive(false);
+               menu.add(exitMenuItem);
+               
                List<RoomMenuItem> fileItems = new ArrayList<RoomMenuItem>();
                fileItems.add(new RoomMenuItem(WebSession.getString(15), 
WebSession.getString(1479)));
-               files.setChildren(fileItems);
-               menu.add(files);
+               filesMenu.setChildren(fileItems);
+               menu.add(filesMenu);
                
-               MenuItem actions = new RoomMenuItem(WebSession.getString(635));
                List<RoomMenuItem> actionItems = new ArrayList<RoomMenuItem>();
-               actionItems.add(new RoomMenuItem(WebSession.getString(213), 
WebSession.getString(1489), !externalUser) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(MainPage page, AjaxRequestTarget 
target) {
-                               invite.updateModel(target);
-                               invite.open(target);
-                       }
-               });
-               actionItems.add(shareItem); //FIXME enable/disable
-               actionItems.add(applyModer); //FIXME enable/disable
-               actionItems.add(applyWB); //FIXME enable/disable
-               actionItems.add(applyAV); //FIXME enable/disable
-               actionItems.add(pollCreate);
-               actionItems.add(pollResult); //FIXME enable/disable
-               actionItems.add(pollVote); //FIXME enable/disable
-               actionItems.add(sipDialer);
+               actionItems.add(inviteMenuItem);
+               actionItems.add(shareMenuItem); //FIXME enable/disable
+               actionItems.add(applyModerMenuItem); //FIXME enable/disable
+               actionItems.add(applyWbMenuItem); //FIXME enable/disable
+               actionItems.add(applyAvMenuItem); //FIXME enable/disable
+               actionItems.add(pollCreateMenuItem);
+               actionItems.add(pollResultMenuItem); //FIXME enable/disable
+               actionItems.add(pollVoteMenuItem); //FIXME enable/disable
+               actionItems.add(sipDialerMenuItem);
                actionItems.add(new RoomMenuItem(WebSession.getString(1126), 
WebSession.getString(1490)));
-               actions.setChildren(actionItems);
-               menu.add(actions);
+               actionsMenu.setChildren(actionItems);
+               menu.add(actionsMenu);
                return menu;
        }
        

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java?rev=1624701&r1=1624700&r2=1624701&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java
 Sat Sep 13 06:57:32 2014
@@ -25,13 +25,43 @@ import org.apache.wicket.protocol.ws.api
 
 public class RoomMessage implements IWebSocketPushMessage, Serializable {
        private static final long serialVersionUID = 1L;
+       public enum Type {
+               roomEnter
+               , roomExit
+               , pollCreated
+               , rightUpdated
+       }
        private final Date timestamp;
+       private final Long sentUserId;
+       private final Long roomId;
+       private final Long userId;
+       private final Type type;
 
-       public RoomMessage() {
+       public RoomMessage(Long roomId, Long userId, Type type) {
                this.timestamp = new Date();
+               this.sentUserId = getUserId();
+               this.roomId = roomId;
+               this.userId = userId;
+               this.type = type;
        }
        
        public Date getTimestamp() {
                return timestamp;
        }
+
+       public Long getSentUserId() {
+               return sentUserId;
+       }
+
+       public Long getRoomId() {
+               return roomId;
+       }
+
+       public Long getUserId() {
+               return userId;
+       }
+
+       public Type getType() {
+               return type;
+       }
 }


Reply via email to