/**
* Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados.
*
* e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro
* dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do
* Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão.
*
* Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA;
* sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR.
* Veja a Licença Pública Geral Menor GNU para maiores detalhes.
*/
package br.gov.camara.edemocracia.portlets.chat.portlet.exporter;
import java.util.TimeZone;
import br.gov.camara.edemocracia.portlets.chat.model.ChatRoom;
import br.gov.camara.edemocracia.portlets.chat.model.ChatRoomMessage;
import br.gov.camara.edemocracia.portlets.chat.model.impl.UserType;
import br.gov.camara.edemocracia.portlets.chat.service.ChatRoomService;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
class HTMLChatRoomExporter implements ChatRoomExporter {
private ChatRoomService service;
public HTMLChatRoomExporter(ChatRoomService service) {
this.service = service;
}
@Override
public String exportChatRoom(long chatRoomId, TimeZone tz) throws PortalException, SystemException {
StringBuilder sb = new StringBuilder();
ChatRoomMessage[] msgs = service.getMessagesForExport(chatRoomId);
ChatRoom room = service.getRoom(chatRoomId);
sb.append("<html>\n<head>\n<title>");
sb.append("Exportação - ");
sb.append(room.getRoomName());
sb.append("</title>\n</head>\n<body>\n<h1>");
sb.append(room.getRoomName());
sb.append("</h1>\n<p>");
sb.append(room.getDescription());
sb.append("</p>\n<ul>\n");
for (ChatRoomMessage msg : msgs) {
if (!msg.getExportedRemoved()) {
sb.append("<li");
if (msg.getSenderType() == UserType.SpecialGuest.getValue()) {
sb.append(" class=\"cdchat_special_guest\" ");
} else if (msg.getSenderType() == UserType.Moderator.getValue()) {
sb.append(" class=\"cdchat_moderator\" ");
}
sb.append(">");
sb.append(msg.getFormattedText(tz));
sb.append("</li>\n");
}
}
sb.append("</ul>\n</body>\n</html>");
return sb.toString();
}
@Override
public String getFilename(long chatRoomId) throws PortalException, SystemException {
ChatRoom room = service.getRoom(chatRoomId);
return "export-" + room.getNameAsFilename() + ".html";
}
}