use of org.olat.instantMessaging.InstantMessage in project OpenOLAT by OpenOLAT.
the class ChatController method doSendMessage.
private InstantMessage doSendMessage(String text) {
boolean anonym;
String fromName;
if (rosterCtrl != null) {
anonym = rosterCtrl.isUseNickName();
fromName = rosterCtrl.getNickName();
} else {
anonym = false;
fromName = userManager.getUserDisplayName(getIdentity());
}
InstantMessage message;
if (privateReceiverKey == null) {
message = imService.sendMessage(getIdentity(), fromName, anonym, text, getOlatResourceable());
} else {
message = imService.sendPrivateMessage(getIdentity(), privateReceiverKey, text, getOlatResourceable());
}
return message;
}
use of org.olat.instantMessaging.InstantMessage in project OpenOLAT by OpenOLAT.
the class ChatController method processInstantMessageEvent.
private void processInstantMessageEvent(InstantMessagingEvent event) {
if ("message".equals(event.getCommand())) {
Long from = event.getFromId();
if (!getIdentity().getKey().equals(from)) {
Long messageId = event.getMessageId();
InstantMessage message = imService.getMessageById(getIdentity(), messageId, true);
appendToMessageHistory(message, false);
}
} else if ("participant".equals(event.getCommand())) {
if (event.getFromId() != null) {
updateRosterList(event.getFromId(), event.getName(), event.isAnonym(), event.isVip());
}
}
}
use of org.olat.instantMessaging.InstantMessage in project OpenOLAT by OpenOLAT.
the class ChatController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (source == chatPanelCtr) {
fireEvent(ureq, new CloseInstantMessagingEvent(getOlatResourceable()));
allChats.remove(Integer.toString(hashCode()));
jsc.setRefreshIntervall(5000);
} else if (source == sendMessageForm) {
if (StringHelper.containsNonWhitespace(sendMessageForm.getMessage())) {
InstantMessage message = doSendMessage(sendMessageForm.getMessage());
appendToMessageHistory(message, true);
sendMessageForm.resetTextField();
} else {
// ignore empty manObjectessage entry and refocus on entry field
chatMsgFieldContent.contextPut("chatMessages", messageHistory);
chatMsgFieldContent.contextPut("focus", Boolean.TRUE);
}
} else if (source == rosterCtrl) {
doSendPresence(rosterCtrl.getNickName(), rosterCtrl.isUseNickName());
}
}
use of org.olat.instantMessaging.InstantMessage in project OpenOLAT by OpenOLAT.
the class InstantMessagingServiceImpl method sendPrivateMessage.
@Override
public InstantMessage sendPrivateMessage(Identity from, Long toIdentityKey, String body, OLATResourceable chatResource) {
String name = userManager.getUserDisplayName(from);
InstantMessage message = imDao.createMessage(from, name, false, body, chatResource);
imDao.createNotification(from.getKey(), toIdentityKey, chatResource);
// commit before sending event
dbInstance.commit();
InstantMessagingEvent event = new InstantMessagingEvent("message", chatResource);
event.setFromId(from.getKey());
event.setName(name);
event.setAnonym(false);
event.setMessageId(message.getKey());
// general event
coordinator.getCoordinator().getEventBus().fireEventToListenersOf(event, chatResource);
// buddy event
OLATResourceable buddy = OresHelper.createOLATResourceableInstance("Buddy", toIdentityKey);
coordinator.getCoordinator().getEventBus().fireEventToListenersOf(event, buddy);
return message;
}
use of org.olat.instantMessaging.InstantMessage in project openolat by klemens.
the class ChatController method doSendMessage.
private InstantMessage doSendMessage(String text) {
boolean anonym;
String fromName;
if (rosterCtrl != null) {
anonym = rosterCtrl.isUseNickName();
fromName = rosterCtrl.getNickName();
} else {
anonym = false;
fromName = userManager.getUserDisplayName(getIdentity());
}
InstantMessage message;
if (privateReceiverKey == null) {
message = imService.sendMessage(getIdentity(), fromName, anonym, text, getOlatResourceable());
} else {
message = imService.sendPrivateMessage(getIdentity(), privateReceiverKey, text, getOlatResourceable());
}
return message;
}
Aggregations