/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.vaadin.v7.ui.components.calendar.event; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.vaadin.v7.ui.components.calendar.event.CalendarEvent.EventChangeNotifier; /** * Simple implementation of {@link com.vaadin.addon.calendar.event.CalendarEvent * CalendarEvent}. Has setters for all required fields and fires events when * this event is changed. * * @since 7.1.0 * @author Vaadin Ltd. */ @SuppressWarnings("serial") @Deprecated public class BasicEvent implements EditableCalendarEvent, EventChangeNotifier { private String caption; private String description; private Date end; private Date start; private String styleName; private transient List<EventChangeListener> listeners = new ArrayList<EventChangeListener>(); private boolean isAllDay; /** * Default constructor */ public BasicEvent() { } /** * Constructor for creating an event with the same start and end date * * @param caption * The caption for the event * @param description * The description for the event * @param date * The date the event occurred */ public BasicEvent(String caption, String description, Date date) { this.caption = caption; this.description = description; start = date; end = date; } /** * Constructor for creating an event with a start date and an end date. * Start date should be before the end date * * @param caption * The caption for the event * @param description * The description for the event * @param startDate * The start date of the event * @param endDate * The end date of the event */ public BasicEvent(String caption, String description, Date startDate, Date endDate) { this.caption = caption; this.description = description; start = startDate; end = endDate; } /* * (non-Javadoc) * * @see com.vaadin.addon.calendar.event.CalendarEvent#getCaption() */ @Override public String getCaption() { return caption; } /* * (non-Javadoc) * * @see com.vaadin.addon.calendar.event.CalendarEvent#getDescription() */ @Override public String getDescription() { return description; } /* * (non-Javadoc) * * @see com.vaadin.addon.calendar.event.CalendarEvent#getEnd() */ @Override public Date getEnd() { return end; } /* * (non-Javadoc) * * @see com.vaadin.addon.calendar.event.CalendarEvent#getStart() */ @Override public Date getStart() { return start; } /* * (non-Javadoc) * * @see com.vaadin.addon.calendar.event.CalendarEvent#getStyleName() */ @Override public String getStyleName() { return styleName; } /* * (non-Javadoc) * * @see com.vaadin.addon.calendar.event.CalendarEvent#isAllDay() */ @Override public boolean isAllDay() { return isAllDay; } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEventEditor#setCaption(java.lang * .String) */ @Override public void setCaption(String caption) { this.caption = caption; fireEventChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEventEditor#setDescription(java * .lang.String) */ @Override public void setDescription(String description) { this.description = description; fireEventChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEventEditor#setEnd(java.util. * Date) */ @Override public void setEnd(Date end) { this.end = end; fireEventChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEventEditor#setStart(java.util * .Date) */ @Override public void setStart(Date start) { this.start = start; fireEventChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEventEditor#setStyleName(java * .lang.String) */ @Override public void setStyleName(String styleName) { this.styleName = styleName; fireEventChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEventEditor#setAllDay(boolean) */ @Override public void setAllDay(boolean isAllDay) { this.isAllDay = isAllDay; fireEventChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventChangeNotifier * #addListener * (com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventChangeListener * ) */ @Override public void addEventChangeListener(EventChangeListener listener) { listeners.add(listener); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventChangeNotifier * #removeListener * (com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventChangeListener * ) */ @Override public void removeEventChangeListener(EventChangeListener listener) { listeners.remove(listener); } /** * Fires an event change event to the listeners. Should be triggered when * some property of the event changes. */ protected void fireEventChange() { EventChangeEvent event = new EventChangeEvent(this); for (EventChangeListener listener : listeners) { listener.eventChange(event); } } }