All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jdplus.toolkit.desktop.plugin.ui.calendar.PrespecifiedHolidayBean Maven / Gradle / Ivy

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jdplus.toolkit.desktop.plugin.ui.calendar;

import jdplus.main.desktop.design.SwingProperty;
import jdplus.toolkit.base.api.timeseries.calendars.DayEvent;
import jdplus.toolkit.base.api.timeseries.calendars.Holiday;
import jdplus.toolkit.base.api.timeseries.calendars.PrespecifiedHoliday;
import java.time.LocalDate;

/**
 *
 * @author Philippe Charles
 */
public class PrespecifiedHolidayBean extends AbstractEventBean {

    // PROPERTIES DEFINITIONS
    @SwingProperty
    public static final String DAY_EVENT_PROPERTY = "dayEvent";

    @SwingProperty
    public static final String OFFSET_PROPERTY = "offset";

    @SwingProperty
    public static final String JULIAN_PROPERTY = "julian";
    // PROPERTIES 
    private DayEvent dayEvent;
    private int offset;
    private boolean julian;

    public PrespecifiedHolidayBean() {
        this(DayEvent.Christmas, 0, false, null, null, 1);
    }

    public PrespecifiedHolidayBean(PrespecifiedHoliday day) {
        this(day.getEvent(), day.getOffset(), day.isJulian(), day.getValidityPeriod().getStart(), day.getValidityPeriod().getEnd(), day.getWeight());
    }

    public PrespecifiedHolidayBean(DayEvent dayEvent, int offset, boolean julian, LocalDate start, LocalDate end, double weight) {
        super(start, end, weight);

        this.dayEvent = dayEvent;
        this.offset = offset;
        this.julian = julian;
    }

    public DayEvent getDayEvent() {
        return dayEvent;
    }

    public void setDayEvent(DayEvent dayEvent) {
        DayEvent old = this.dayEvent;
        this.dayEvent = dayEvent;
        broadcaster.firePropertyChange(DAY_EVENT_PROPERTY, old, this.dayEvent);
    }

    public int getOffset() {
        return offset;
    }

    public void setOffset(int offset) {
        int old = this.offset;
        this.offset = offset;
        broadcaster.firePropertyChange(OFFSET_PROPERTY, old, this.offset);
    }

    public boolean isJulian() {
        return julian;
    }

    public void setJulian(boolean julian) {
        int old = this.offset;
        this.julian = julian;
        broadcaster.firePropertyChange(JULIAN_PROPERTY, old, this.julian);
    }

    @Override
    public Holiday toHoliday() {
        return PrespecifiedHoliday.builder()
                .event(dayEvent)
                .offset(offset)
                .julian(julian)
                .validityPeriod(validityPeriod())
                .build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy