| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 
 |  
 
package com.partenor.web;
 
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
 
import javax.annotation.PostConstruct;
 
 
 
import org.richfaces.model.CalendarDataModel;
import org.richfaces.model.CalendarDataModelItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
 
import com.partenor.model.Jours_non_ouvres;
import com.partenor.service.Jours_non_ouvresService;
 
@Component("calendarModel")
@Scope("session")
public class CalendarModel implements CalendarDataModel {
    private static final String WEEKEND_DAY_CLASS = "wdc";
    private static final String OFF_DAY_CLASS = "bdc";
    private static final String BOUNDARY_DAY_CLASS = "rf-ca-boundary-dates";
 
    @Autowired
    private transient Jours_non_ouvresService jours_non_ouvresService;
 
    private List<Date> jours_non_ouvres;
    private Date currentDate;
    private Calendar current;
    private Calendar today;
 
 
    @PostConstruct
    public void init(){
    	jours_non_ouvres=jours_non_ouvresService.findAllDate();
 
 
    }
 
 
    private boolean checkOffDay(Calendar calendar) {
 
 
 
    	return jours_non_ouvres.contains(calendar.getTime());
 
    	 }
 
 
 
 
 
    private boolean checkWeekend(Calendar calendar) {
        return (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY);
    }
 
    public CalendarDataModelItem[] getData(Date[] dateArray) {
    	CalendarDataModelItem[] modelItems = new CalendarModelItem[dateArray.length];
    	  current = GregorianCalendar.getInstance();
          today = GregorianCalendar.getInstance();
         today.setTime(new Date());
        for (int i = 0; i < dateArray.length; i++) {
            current.setTime(dateArray[i]);
            CalendarModelItem modelItem = new CalendarModelItem();
            if (checkOffDay(current)) {
                modelItem.setEnabled(false);
                modelItem.setStyleClass(OFF_DAY_CLASS);
 
            } else if (current.before(today)) {
                modelItem.setEnabled(false);
                modelItem.setStyleClass(BOUNDARY_DAY_CLASS);
            } else if (checkWeekend(current)) {
                modelItem.setEnabled(false);
                modelItem.setStyleClass(WEEKEND_DAY_CLASS);
            } else {
                modelItem.setEnabled(true);
                modelItem.setStyleClass("");
            }
            modelItems[i] = modelItem;
        }
 
        return modelItems;
    }
 
    public Object getToolTip(Date date) {
        // TODO Auto-generated method stub
        return null;
    }
 
 
 
 
	/**
         * @param currentDate the currentDate to set
         */
	public void setCurrentDate(Date currentDate) {
		this.currentDate = currentDate;
	}
 
 
	/**
         * @return the currentDate
         */
	public Date getCurrentDate() {
		return currentDate;
	}
 
 
 
} | 
Partager