Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.com.kronus.web;

import br.com.kronus.core.Timeframe;
import br.com.kronus.strategy.EstrategiaConfig;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import java.io.Serializable;
import java.time.LocalTime;

@ManagedBean(name = "kronusConfigEstrategiaBean")
@ViewScoped
public class KronusConfigEstrategiaBean implements Serializable {

    private EstrategiaConfig config;

    public KronusConfigEstrategiaBean() {
    }

    @PostConstruct
    public void init() {
        config = new EstrategiaConfig();
    }

    public void salvar() {
        FacesContext.getCurrentInstance().addMessage(null,
                new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Configuração salva", "As configurações da estratégia foram salvas."));
    }

    public void resetarParaPadrao() {
        config = new EstrategiaConfig();
        FacesContext.getCurrentInstance().addMessage(null,
                new FacesMessage(FacesMessage.SEVERITY_WARN,
                        "Configuração resetada", "Valores padrão restaurados."));
    }

    public java.util.Date getHorarioInicioAsDate() {
        LocalTime t = config.getHorarioInicio();
        if (t == null) return null;

        java.util.Calendar cal = java.util.Calendar.getInstance();
        cal.set(java.util.Calendar.HOUR_OF_DAY, t.getHour());
        cal.set(java.util.Calendar.MINUTE, t.getMinute());
        cal.set(java.util.Calendar.SECOND, 0);
        cal.set(java.util.Calendar.MILLISECOND, 0);
        return cal.getTime();
    }

    public void setHorarioInicioAsDate(java.util.Date date) {
        if (date == null) {
            config.setHorarioInicio(null);
            return;
        }
        java.util.Calendar cal = java.util.Calendar.getInstance();
        cal.setTime(date);
        config.setHorarioInicio(LocalTime.of(
                cal.get(java.util.Calendar.HOUR_OF_DAY),
                cal.get(java.util.Calendar.MINUTE)
        ));
    }

    public java.util.Date getHorarioFimAsDate() {
        LocalTime t = config.getHorarioFim();
        if (t == null) return null;

        java.util.Calendar cal = java.util.Calendar.getInstance();
        cal.set(java.util.Calendar.HOUR_OF_DAY, t.getHour());
        cal.set(java.util.Calendar.MINUTE, t.getMinute());
        cal.set(java.util.Calendar.SECOND, 0);
        cal.set(java.util.Calendar.MILLISECOND, 0);
        return cal.getTime();
    }

    public void setHorarioFimAsDate(java.util.Date date) {
        if (date == null) {
            config.setHorarioFim(null);
            return;
        }
        java.util.Calendar cal = java.util.Calendar.getInstance();
        cal.setTime(date);
        config.setHorarioFim(LocalTime.of(
                cal.get(java.util.Calendar.HOUR_OF_DAY),
                cal.get(java.util.Calendar.MINUTE)
        ));
    }

    public EstrategiaConfig getConfig() {
        return config;
    }

    public void setConfig(EstrategiaConfig config) {
        this.config = config;
    }

    public Timeframe[] getTimeframes() {
        return Timeframe.values();
    }
}