Package br.com.syspartenon.partenon.view

Source Code of br.com.syspartenon.partenon.view.EnqueteMB

package br.com.syspartenon.partenon.view;

import br.com.syspartenon.partenon.business.EnqueteAlternativaBC;
import br.com.syspartenon.partenon.business.EnqueteBC;
import br.com.syspartenon.partenon.business.EventoBC;
import br.gov.frameworkdemoiselle.message.MessageContext;
import br.gov.frameworkdemoiselle.message.SeverityType;
import br.gov.frameworkdemoiselle.stereotype.ViewController;
import br.gov.frameworkdemoiselle.transaction.Transactional;
import br.gov.frameworkdemoiselle.util.Parameter;
import br.com.syspartenon.partenon.domain.Enquete;
import br.com.syspartenon.partenon.domain.EnqueteAlternativa;
import br.com.syspartenon.partenon.domain.Evento;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import org.primefaces.model.chart.PieChartModel;

@ViewController
public class EnqueteMB {

    @Inject
    private EventoBC eventoBC;
   
    @Inject
    private EnqueteBC enqueteBC;
   
    @Inject
    private EnqueteAlternativaBC enqueteAlternativaBC;
   
    private Evento evento;
    private Enquete enquete;
    private EnqueteAlternativa novaAlternativa;
   
    @Inject
    private Parameter<Integer> id;
   
    @Inject
    private MessageContext messageContext;

    public List<Enquete> getList() {
        if (evento == null) {
            evento = getEvento();
        }
        return enqueteBC.findAll(getEvento());
    }
   
    public List<EnqueteAlternativa> getAlternativas() {
        return enqueteAlternativaBC.findAll(getEnquete());
    }

    public Evento getEvento() {
        if (this.evento == null) {
            this.evento = new Evento();
            if (this.id.getValue() != null) {
                this.evento = eventoBC.load(this.id.getValue());
            }
        }
        return evento;
    }

    public void setEvento(Evento evento) {
        this.evento = evento;
    }

    public Enquete getEnquete() {
        if(enquete == null)
            novaEnquete();
        return enquete;
    }

    public void setEnquete(Enquete enquete) {
        this.enquete = enquete;
    }

    public EnqueteAlternativa getNovaAlternativa() {
        if(novaAlternativa == null) {
            novaAlternativa = new EnqueteAlternativa();
            novaAlternativa.setEnquete(enquete);
        }
        return novaAlternativa;
    }

    public void setNovaAlternativa(EnqueteAlternativa novaAlternativa) {
        this.novaAlternativa = novaAlternativa;
    }

    @Transactional
    public void salvar() {
        try {
            enqueteBC.salvar(enquete);
            enquete = null;
            messageContext.add("Enquete salva com sucesso.", SeverityType.INFO);
        } catch (Exception e) {
            messageContext.add("Erro ao salvar Enquete: " + e.getMessage(), SeverityType.ERROR);
        }
    }

    @Transactional
    public void excluir() {
        try {
            enqueteBC.delete(enquete.getEnqId());
            messageContext.add("Enquete removido.", SeverityType.INFO);
        } catch (Exception e) {
            messageContext.add("Erro ao remover Enquete: " + e.getMessage(), SeverityType.ERROR);
        }
    }
   
    @Transactional
    public void salvarAlternativa() {
        try {
            if(novaAlternativa.getEalId() == null)
                enqueteAlternativaBC.insert(novaAlternativa);
            else
                enqueteAlternativaBC.update(novaAlternativa);
            novaAlternativa = null;
            messageContext.add("Alternativa Adicionada.", SeverityType.INFO);
        } catch (Exception e) {
            messageContext.add("Erro ao adicionar alternativa: " + e.getMessage(), SeverityType.ERROR);
        }
    }
   
    @Transactional
    public void excluirAlternativa() {
        try {
            enqueteAlternativaBC.delete(novaAlternativa);
            novaAlternativa = null;
            messageContext.add("Alternativa Removida.", SeverityType.INFO);
        } catch (Exception e) {
            messageContext.add("Erro ao remover alternativa: " + e.getMessage(), SeverityType.ERROR);
        }
    }
   
    public void addAlternativas(){
        novaAlternativa = new EnqueteAlternativa();
        novaAlternativa.setEnquete(getEnquete());
    }
   
    public void novaEnquete(){
        enquete = new Enquete();
        enquete.setEvento(getEvento());
       
        Date inicioNovaEnquete = enqueteBC.proximaDataInicioEnquete(getEvento());
        enquete.setEnqInicio(inicioNovaEnquete);
       
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(inicioNovaEnquete);
        calendar.add(Calendar.DAY_OF_MONTH, 1);
        enquete.setEnqExpiracao(calendar.getTime());
    }
   
    public PieChartModel getRespostasChartModel(){
        if(enquete == null || enquete.getAlternativas().isEmpty())
            return null;
        PieChartModel model = new PieChartModel();
        for (EnqueteAlternativa alternativa : enquete.getAlternativas())
            model.set(alternativa.getEalDescricao(), alternativa.getEalRespostas());
        return model;
    }
   
}
TOP

Related Classes of br.com.syspartenon.partenon.view.EnqueteMB

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.