/** * 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.beans.admin.usuarios; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import br.gov.camara.edemocracia.portlets.chat.ChatRoomUserBean; import br.gov.camara.edemocracia.portlets.chat.model.ChatRoom; import br.gov.camara.edemocracia.portlets.chat.service.ChatRoomServiceUtil; import com.liferay.faces.portal.context.LiferayFacesContext; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; /** * @author rpdmiranda * */ @ManagedBean(name = "participantes") @RequestScoped public class ParticipantesBean { private List<ChatRoomUserBean> lista; private long salaId; /** * Maior quantidade de usuários na sala simultaneamente */ private int maxUsuariosSimultaneos; /** * Maior quantidade de usuários espiando a sala simultaneamente */ private int maxUsuariosEspiandoSimultaneos; private int capacidade; private long totalParticipantes; private int totalParticipacoes; /** * Carrega a lista de usuários da sala especificada como parâmetro */ @PostConstruct public void init() { salaId = 0; String param = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"); if (param != null) { try { salaId = Long.parseLong(param); } catch (NumberFormatException e) { // Ignore } } if (salaId == 0l) { LiferayFacesContext.getInstance().addGlobalErrorMessage("room-cant-find"); lista = null; } else { try { lista = ChatRoomServiceUtil.findAllChatRoomParticipants(salaId); totalParticipantes = ChatRoomServiceUtil.getUserCount(salaId); } catch (PortalException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage("room-cant-find"); lista = null; totalParticipacoes = 0; totalParticipantes = 0; } catch (SystemException e) { throw new RuntimeException(e); } } if (lista!= null) { totalParticipacoes = lista.size(); } try { ChatRoom room = ChatRoomServiceUtil.getRoom(salaId); maxUsuariosEspiandoSimultaneos = room.getMaxSimultaneousUsersSpying(); maxUsuariosSimultaneos = room.getMaxSimultaneousUsers(); capacidade = room.getCapacity(); } catch (PortalException e) { LiferayFacesContext.getInstance().addGlobalErrorMessage("room-cant-find"); } catch (SystemException e) { throw new RuntimeException(e); } } /** * @return the lista */ public List<ChatRoomUserBean> getLista() { return lista; } /** * Esta consulta diferencia os usuários que entraram no chat considerando o username, e-mail e uf * * @return o número total de participações do chat * */ public int getTotalParticipacoes() { return totalParticipacoes; } /** * Esta consulta diferencia os usuários que entraram no chat considerando apenas o e-mail * * @return o número de participantes do chat */ public long getTotalParticipantes() { return totalParticipantes; } /** * Obtém o nome do recurso de exportação de usuários * * @return */ public String getRecursoParticipantes() { return "chat:usr_" + salaId; } public int getMaxUsuariosEspiandoSimultaneos() { return maxUsuariosEspiandoSimultaneos; } public int getMaxUsuariosSimultaneos() { return maxUsuariosSimultaneos; } public int getCapacidade() { return capacidade; } }