use of org.olat.instantMessaging.InstantMessage in project openolat by klemens.
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 klemens.
the class ChatLogHelper method archive.
public void archive(OLATResourceable ores, File exportDirectory) {
ObjectOutputStream out = null;
try {
File file = new File(exportDirectory, "chat.xml");
Writer writer = new FileWriter(file);
out = logXStream.createObjectOutputStream(writer);
int counter = 0;
List<InstantMessage> messages;
do {
messages = imDao.getMessages(ores, null, counter, BATCH_SIZE);
for (InstantMessage message : messages) {
out.writeObject(message);
}
counter += messages.size();
} while (messages.size() == BATCH_SIZE);
} catch (IOException e) {
log.error("", e);
} finally {
IOUtils.closeQuietly(out);
}
}
use of org.olat.instantMessaging.InstantMessage in project OpenOLAT by OpenOLAT.
the class ChatLogHelper method archive.
public void archive(OLATResourceable ores, File exportDirectory) {
ObjectOutputStream out = null;
try {
File file = new File(exportDirectory, "chat.xml");
Writer writer = new FileWriter(file);
out = logXStream.createObjectOutputStream(writer);
int counter = 0;
List<InstantMessage> messages;
do {
messages = imDao.getMessages(ores, null, counter, BATCH_SIZE);
for (InstantMessage message : messages) {
out.writeObject(message);
}
counter += messages.size();
} while (messages.size() == BATCH_SIZE);
} catch (IOException e) {
log.error("", e);
} finally {
IOUtils.closeQuietly(out);
}
}
use of org.olat.instantMessaging.InstantMessage in project OpenOLAT by OpenOLAT.
the class ChatLogHelper method logMediaResource.
public MediaResource logMediaResource(OLATResourceable ores, Locale locale) {
Translator translator = Util.createPackageTranslator(ChatController.class, locale);
String tableExportTitle = translator.translate("logChat.export.title");
String label = tableExportTitle + Formatter.formatDatetimeFilesystemSave(new Date(System.currentTimeMillis())) + ".xlsx";
return new OpenXMLWorkbookResource(label) {
@Override
protected void generate(OutputStream out) {
try (OpenXMLWorkbook workbook = new OpenXMLWorkbook(out, 1)) {
// headers
OpenXMLWorksheet exportSheet = workbook.nextWorksheet();
Row headerRow = exportSheet.newRow();
headerRow.addCell(0, "User", workbook.getStyles().getHeaderStyle());
headerRow.addCell(1, "Date", workbook.getStyles().getHeaderStyle());
headerRow.addCell(2, "Content", workbook.getStyles().getHeaderStyle());
// content
List<InstantMessage> messages = imDao.getMessages(ores, null, 0, -1);
for (InstantMessage message : messages) {
Row dataRow = exportSheet.newRow();
dataRow.addCell(0, message.getFromNickName(), null);
dataRow.addCell(1, message.getCreationDate(), workbook.getStyles().getDateStyle());
dataRow.addCell(2, message.getBody(), null);
}
} catch (IOException e) {
log.error("", e);
}
}
};
}
use of org.olat.instantMessaging.InstantMessage in project OpenOLAT by OpenOLAT.
the class InstantMessagingServiceImpl method sendMessage.
@Override
public InstantMessage sendMessage(Identity from, String fromNickName, boolean anonym, String body, OLATResourceable chatResource) {
InstantMessage message = imDao.createMessage(from, fromNickName, anonym, body, chatResource);
// commit before sending event
dbInstance.commit();
InstantMessagingEvent event = new InstantMessagingEvent("message", chatResource);
event.setFromId(from.getKey());
event.setName(fromNickName);
event.setAnonym(anonym);
event.setMessageId(message.getKey());
coordinator.getCoordinator().getEventBus().fireEventToListenersOf(event, chatResource);
return message;
}
Aggregations