7
respostas

Schedule do primeface

Olá pessoal, Fiz minha agenda de trabalho com o Schedule do Prime Face, ela esta pronta, eu queria ajuda em algo.

Como faço para trocar a cor do evento gravado no schedule conforme seu status?

E é possivel no schedule deixar só um dia da semana para mostrar, por exemplo só a quinta feira?

7 respostas

Fala Felipe, tudo bem?

na sua lógica conforme o status, vc altera o CSS do evento:

DefaultScheduleEvent evento = new DefaultScheduleEvent("titulo", new Date(), new Date(), id);
evento.setStyleClass("event-close");

e o CSS:

.event-close .fc-event-skin {
    background: red;
}

espero ter ajudado =)

Tudo bem Samir, Eu coloco esse metodo "DefaultScheduleEvent" no meu metodo inicializador?

@PostConstruct
    public void inicializador() {

Aqui???

Coloca aonde a sua lógica de adicionar eventos estiver. Qual objeto vc está usando para adicionar um novo evento ao Schedule?

Samir, na opção de status eu queria fazer com que quando o status do trabalho estiver feito, o evento ficasse verde por exemplo, os que não esta feito com a cor azul. eu tentei desta forma

                if(ev.isStatus() == true){
                evt.setStyleClass("emp1");
            }else if(ev.isStatus() == false){
                evt.setStyleClass("emp2");
         .emp1 .fc-event-inner{
                background: #006600;

            }
            .emp2 .fc-event-inner{
                background: #003399;
            }

Mas não funcionou, de qualquer forma, segue o meu EventoBean:

/**
 *
 * @author feilpe
 */
@ManagedBean
@ViewScoped
public class EventoBean implements Serializable{

    private static final long serialVersionUID = 8458259708861027697L;

    private Evento evento;
    private ScheduleModel eventModel;
    private List<Evento> listaEvento;
    private EventoDAO eDao;

    @PostConstruct
    public void inicializar(){

        eDao = new EventoDAO();
        evento = new Evento();
        eventModel = new DefaultScheduleModel();

     //   try{

        listaEvento = eDao.getEventos();

      /*  }catch(SQLException ex){

            ex.printStackTrace();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro","Erro no sql."));
        }*/

        for (Evento ev : listaEvento) {
            DefaultScheduleEvent evt = new DefaultScheduleEvent();
            evt.setEndDate(ev.getFim());
            evt.setStartDate(ev.getInicio());
            evt.setTitle(ev.getTitulo());
            evt.setData(ev.getId());
            evt.setDescription(ev.getDescricao());
            evt.setAllDay(true);
            evt.setEditable(true);

           /* if(ev.isStatus() == true){
                evt.setStyleClass("emp1");
            }else if(ev.isStatus() == false){
                evt.setStyleClass("emp2");
            }*/



            eventModel.addEvent(evt);
        }
    }

    public void quandoSelecionado(SelectEvent selectEvent ){

        ScheduleEvent event = (ScheduleEvent) selectEvent.getObject();

        for (Evento ev : listaEvento) {
            if(ev.getId() == (Long) event.getData()){
                evento =  ev;
                break;
            }
        }

    }

    public void quandoNovo(SelectEvent selectEvent){

        ScheduleEvent event = new DefaultScheduleEvent("",(Date)selectEvent.getObject(),(Date)selectEvent.getObject());
        evento = new Evento();
        evento.setInicio(new java.sql.Date(event.getStartDate().getTime()));
        evento.setFim(new java.sql.Date(event.getEndDate().getTime()));
    }

    public void salvar(){
        if(this.evento.getId() == null){
            if(evento.getInicio().getTime() <= evento.getFim().getTime()){

              try{
                  eDao.salvar(evento);
                  inicializar();
              }catch(RuntimeException ex){
                  FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro ao salvar trabalho",
                                                                                      "Erro:" + ex.getMessage()));
              }
              evento = new Evento();
            }else{
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Data do começo do evento não pode ser maior que a do final",
                                                                                      ""));
            }
        }else{
            try{
                eDao.atualizar(evento);
                inicializar();
            }catch(RuntimeException ex){
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro ao salvar trabalho",
                                                                                      "Erro:" + ex.getMessage()));
            }
        }
    }

    public void quandoMovido(ScheduleEntryMoveEvent event){

        for (Evento ev : listaEvento) {
            if(ev.getId() == (Long)event.getScheduleEvent().getData()){
                evento = ev;
                try{
                    eDao.atualizar(evento);
                    inicializar();
                }catch(RuntimeException ex){
                    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro ao salvar trabalho",
                                                                                      "Erro:" + ex.getMessage()));
                }
                break;
            }
        }
    }

    public void quandoRedimensionado(ScheduleEntryResizeEvent event){

        for (Evento ev : listaEvento) {
            if(ev.getId() == (Long)event.getScheduleEvent().getData()){
                evento = ev;
                try{
                    eDao.atualizar(evento);
                    inicializar();
                }catch(RuntimeException ex){
                    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro ao salvar trabalho",
                                                                                      "Erro:" + ex.getMessage()));
                }
                break;
            }
        }
    }   
}

no seu .xhtml vc esta importando o CSS no

<h:head>?

Sim, o style esta dentro do head

Você precisa criar uma classe no seu arquivo .css e setá-la no seu DefaultScheduleEvent através do método setStyleClass()