use of org.apache.wicket.core.request.handler.IPartialPageRequestHandler in project openmeetings by apache.
the class RoomPanel method onEvent.
@Override
public void onEvent(IEvent<?> event) {
Client _c = getClient();
if (_c != null && event.getPayload() instanceof WebSocketPushPayload) {
WebSocketPushPayload wsEvent = (WebSocketPushPayload) event.getPayload();
if (wsEvent.getMessage() instanceof RoomMessage) {
RoomMessage m = (RoomMessage) wsEvent.getMessage();
IPartialPageRequestHandler handler = wsEvent.getHandler();
switch(m.getType()) {
case pollCreated:
menu.updatePoll(handler, m.getUserId());
break;
case pollUpdated:
menu.updatePoll(handler, null);
break;
case recordingStoped:
{
String uid = ((TextRoomMessage) m).getText();
Client c = cm.getBySid(uid);
if (c == null) {
log.error("Not existing/BAD user has stopped recording {} != {} !!!!", uid);
return;
}
recordingUser = null;
cm.update(c.remove(Client.Activity.record));
menu.update(handler);
updateInterviewRecordingButtons(handler);
}
break;
case recordingStarted:
{
JSONObject obj = new JSONObject(((TextRoomMessage) m).getText());
String sid = obj.getString("sid");
Client c = cm.getBySid(sid);
if (c == null) {
log.error("Not existing user has started recording {} !!!!", sid);
return;
}
recordingUser = sid;
cm.update(c.set(Client.Activity.record));
menu.update(handler);
updateInterviewRecordingButtons(handler);
}
break;
case sharingStoped:
{
JSONObject obj = new JSONObject(((TextRoomMessage) m).getText());
String uid = obj.getString("uid");
Client c = cm.getBySid(obj.getString("sid"));
if (c == null) {
log.error("Not existing user has started sharing {} !!!!", obj);
return;
}
handler.appendJavaScript(String.format("VideoManager.close('%s', true);", uid));
sharingUser = null;
cm.update(c.removeStream(uid).remove(Client.Activity.share));
menu.update(handler);
}
break;
case sharingStarted:
{
String uid = ((TextRoomMessage) m).getText();
Client c = cm.get(uid);
if (c == null) {
log.error("Not existing user has started sharing {} !!!!", uid);
return;
}
sharingUser = uid;
cm.update(c.set(Client.Activity.share));
menu.update(handler);
}
break;
case rightUpdated:
{
String uid = ((TextRoomMessage) m).getText();
Client c = cm.get(uid);
if (c == null) {
log.error("Not existing user in rightUpdated {} !!!!", uid);
return;
}
boolean self = _c.getUid().equals(c.getUid());
handler.appendJavaScript(String.format("VideoManager.update(%s);", c.streamJson(_c.getSid(), self, scm).toString(new NullStringer())));
sidebar.update(handler);
menu.update(handler);
wb.update(handler);
updateInterviewRecordingButtons(handler);
}
break;
case newStream:
{
JSONObject obj = new JSONObject(((TextRoomMessage) m).getText());
String uid = obj.getString("uid");
Client c = cm.get(uid);
if (c == null) {
// screen client, ext video stream
c = cm.getBySid(obj.getString("sid"));
}
if (c == null) {
log.error("Not existing user in newStream {} !!!!", uid);
return;
}
boolean self = _c.getSid().equals(c.getSid());
if (!self || Client.Type.room != scm.get(uid).getType()) {
// stream from others or self external video
JSONObject jo = videoJson(c, _c.getSid(), uid);
handler.appendJavaScript(String.format("VideoManager.play(%s);", jo));
}
if (self) {
cm.update(c.addStream(uid));
}
updateInterviewRecordingButtons(handler);
}
break;
case closeStream:
{
JSONObject obj = new JSONObject(((TextRoomMessage) m).getText());
String uid = obj.getString("uid");
Client c = cm.getBySid(obj.getString("sid"));
if (c != null) {
// c == null means client exits the room
if (_c.getUid().equals(c.getUid())) {
cm.update(c.removeStream(uid));
}
}
handler.appendJavaScript(String.format("VideoManager.close('%s');", uid));
updateInterviewRecordingButtons(handler);
}
break;
case roomEnter:
sidebar.update(handler);
menu.update(handler);
sidebar.addActivity(new Activity(m, Activity.Type.roomEnter), handler);
break;
case roomExit:
sidebar.update(handler);
sidebar.addActivity(new Activity(m, Activity.Type.roomExit), handler);
break;
case roomClosed:
handler.add(room.setVisible(false));
roomClosed.open(handler);
break;
case requestRightModerator:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightModerator), handler);
break;
case requestRightPresenter:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightPresenter), handler);
break;
case requestRightWb:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightWb), handler);
break;
case requestRightShare:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightShare), handler);
break;
case requestRightRemote:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightRemote), handler);
break;
case requestRightA:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightA), handler);
break;
case requestRightAv:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightAv), handler);
break;
case requestRightMute:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightMute), handler);
break;
case requestRightExclusive:
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.reqRightExclusive), handler);
break;
case activityRemove:
sidebar.removeActivity(((TextRoomMessage) m).getText(), handler);
break;
case haveQuestion:
if (_c.hasRight(Room.Right.moderator) || getUserId().equals(m.getUserId())) {
sidebar.addActivity(new Activity((TextRoomMessage) m, Activity.Type.haveQuestion), handler);
}
break;
case kick:
{
String uid = ((TextRoomMessage) m).getText();
if (_c.getUid().equals(uid)) {
handler.add(room.setVisible(false));
getMainPanel().getChat().toggle(handler, false);
clientKicked.open(handler);
cm.exitRoom(_c);
}
}
break;
case mute:
{
JSONObject obj = new JSONObject(((TextRoomMessage) m).getText());
Client c = cm.getBySid(obj.getString("sid"));
if (c == null) {
log.error("Not existing user in mute {} !!!!", obj);
return;
}
if (!_c.getUid().equals(c.getUid())) {
handler.appendJavaScript(String.format("if (typeof(VideoManager) !== 'undefined') {VideoManager.mute('%s', %s);}", obj.getString("uid"), obj.getBoolean("mute")));
}
}
break;
case exclusive:
{
String uid = ((TextRoomMessage) m).getText();
Client c = cm.get(uid);
if (c == null) {
// no luck
return;
}
handler.appendJavaScript(String.format("if (typeof(VideoManager) !== 'undefined') {VideoManager.exclusive('%s');}", uid));
}
break;
case quickPollUpdated:
{
menu.update(handler);
handler.appendJavaScript(getQuickPollJs());
}
break;
}
}
}
super.onEvent(event);
}
use of org.apache.wicket.core.request.handler.IPartialPageRequestHandler in project openmeetings by apache.
the class MainPanel method onInitialize.
@Override
protected void onInitialize() {
menu = new MenuPanel("menu", getMainMenu());
add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
add(contents.add(getClient() == null || panel == null ? EMPTY : panel).setOutputMarkupId(true).setMarkupId("contents"));
topControls.add(menu.setVisible(false), topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
topLinks.add(new AjaxLink<Void>("messages") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
updateContents(PROFILE_MESSAGES, target);
}
});
topLinks.add(new AjaxLink<Void>("profile") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
updateContents(PROFILE_EDIT, target);
}
});
final AboutDialog about = new AboutDialog("aboutDialog");
topLinks.add(new AjaxLink<Void>("about") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
about.open(target);
}
});
if (getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
add(new DebugBar("dev").setOutputMarkupId(true));
} else {
add(new EmptyPanel("dev").setVisible(false));
}
add(new OmAjaxClientInfoBehavior());
add(about, chat = new ChatPanel("chatPanel"));
add(newMessage = new MessageDialog("newMessageDialog", new CompoundPropertyModel<>(new PrivateMessage())) {
private static final long serialVersionUID = 1L;
@Override
public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
BasePanel bp = getCurrentPanel();
if (send.equals(button) && bp != null) {
bp.onNewMessageClose(handler);
}
}
});
add(userInfo = new UserInfoDialog("userInfoDialog", newMessage));
add(new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@Override
protected void respond(AjaxRequestTarget target) {
userInfo.open(target, getParam(getComponent(), PARAM_USER_ID).toLong());
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
response.render(new PriorityHeaderItem(getNamedFunction("showUserInfo", this, explicit(PARAM_USER_ID))));
}
});
add(new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@Override
protected void respond(AjaxRequestTarget target) {
ContactsHelper.addUserToContactList(getParam(getComponent(), PARAM_USER_ID).toLong());
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
response.render(new PriorityHeaderItem(getNamedFunction("addContact", this, explicit(PARAM_USER_ID))));
}
});
add(new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@Override
protected void respond(AjaxRequestTarget target) {
newMessage.reset(true).open(target, getParam(getComponent(), PARAM_USER_ID).toOptionalLong());
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
response.render(new PriorityHeaderItem(getNamedFunction("privateMessage", this, explicit(PARAM_USER_ID))));
}
});
add(inviteUser = new InviteUserToRoomDialog("invite-to-room"));
add(new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@Override
protected void respond(AjaxRequestTarget target) {
inviteUser.open(target, getParam(getComponent(), PARAM_USER_ID).toLong());
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
response.render(new PriorityHeaderItem(getNamedFunction("inviteUser", this, explicit(PARAM_USER_ID))));
}
});
topLinks.add(new ConfirmableAjaxBorder("logout", getString("310"), getString("634")) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
getSession().invalidate();
setResponsePage(Application.get().getSignInPageClass());
}
});
super.onInitialize();
}
Aggregations