/*** Copyright (c) 2013 Hércules S. S. José Este arquivo é parte do programa EncontreAquiPeças. EncontreAquiPeças é um software livre; você pode redistribui-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. Este programa é distribuído na esperança 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 em português para maiores detalhes. Você deve ter recebido uma cópia da Licença Pública Geral Menor GNU sob o nome de "LICENSE.TXT" junto com este programa, se não, acesse o site HSlife no endereco www.hslife.com.br ou escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Para mais informações sobre o programa EncontreAquiPeças e seu autor acesse o endereço www.hslife.com.br, pelo e-mail contato@hslife.com.br ou escreva para Hércules S. S. José, Av. Ministro Lafaeyte de Andrade, 1683 - Bl. 3 Apt 404, Marco II - Nova Iguaçu, RJ, Brasil. */ package br.com.hslife.encontreaquipecas.controller; import java.io.Serializable; import java.util.List; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedProperty; import javax.faces.context.FacesContext; import br.com.hslife.encontreaquipecas.component.UsuarioComponent; import br.com.hslife.encontreaquipecas.entity.Usuario; public abstract class AbstractController<E> implements Serializable { /** * */ private static final long serialVersionUID = 700192832217328103L; protected E entity; protected Long idEntity; protected List<E> listEntity; protected String moduleTitle = ""; protected String actionTitle = ""; protected String operation = "list"; @ManagedProperty(name="usuarioComponent", value="#{usuarioComponent}") private UsuarioComponent usuarioComponent; public AbstractController(E entity) { this.entity = entity; } protected abstract void initializeEntity(); public String getModuleTitle() { if (moduleTitle != null && !moduleTitle.isEmpty()) return moduleTitle + actionTitle; else return entity.getClass().getSimpleName() + actionTitle; } public String startUp() { operation = "list"; return "/pages/" + entity.getClass().getSimpleName() + "/list" + entity.getClass().getSimpleName(); } public Usuario getUsuarioLogado() { if (FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuarioLogado") == null) { Usuario u = new Usuario(); try { if (usuarioComponent.getUsuarioLogado() != null) { u = usuarioComponent.getUsuarioLogado(); u.setSenha(null); FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("usuarioLogado", u); } } catch (Exception e) { errorMessage(e.getMessage()); e.printStackTrace(); } } return (Usuario)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuarioLogado"); } public void infoMessage(String mensage) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, mensage, null)); } public void warnMessage(String mensage) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, mensage, null)); } public void errorMessage(String mensage) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, mensage, null)); } public void fatalErrorMessage(String mensage) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, mensage, null)); } public E getEntity() { return entity; } public void setEntity(E entity) { this.entity = entity; } public List<E> getListEntity() { return listEntity; } public void setListEntity(List<E> listEntity) { this.listEntity = listEntity; } public Long getIdEntity() { return idEntity; } public void setIdEntity(Long idEntity) { this.idEntity = idEntity; } public void setUsuarioComponent(UsuarioComponent usuarioComponent) { this.usuarioComponent = usuarioComponent; } public String getOperation() { return operation; } public void setOperation(String operation) { this.operation = operation; } }