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

com.vaadin.ui.components.calendar.event.BasicEventProvider Maven / Gradle / Ivy

There is a newer version: 8.27.1
Show newest version
/*
 * Copyright 2000-2014 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.ui.components.calendar.event;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.vaadin.ui.components.calendar.event.CalendarEvent.EventChangeEvent;
import com.vaadin.ui.components.calendar.event.CalendarEventProvider.EventSetChangeNotifier;

/**
 * 

* Simple implementation of * {@link com.vaadin.addon.calendar.event.CalendarEventProvider * CalendarEventProvider}. Use {@link #addEvent(CalendarEvent)} and * {@link #removeEvent(CalendarEvent)} to add / remove events. *

* *

* {@link com.vaadin.addon.calendar.event.CalendarEventProvider.EventSetChangeNotifier * EventSetChangeNotifier} and * {@link com.vaadin.addon.calendar.event.CalendarEvent.EventChangeListener * EventChangeListener} are also implemented, so the Calendar is notified when * an event is added, changed or removed. *

* * @since 7.1.0 * @author Vaadin Ltd. */ @SuppressWarnings("serial") public class BasicEventProvider implements CalendarEditableEventProvider, EventSetChangeNotifier, CalendarEvent.EventChangeListener { protected List eventList = new ArrayList(); private List listeners = new ArrayList(); /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEventProvider#getEvents(java. * util.Date, java.util.Date) */ @Override public List getEvents(Date startDate, Date endDate) { ArrayList activeEvents = new ArrayList(); for (CalendarEvent ev : eventList) { long from = startDate.getTime(); long to = endDate.getTime(); if (ev.getStart() != null && ev.getEnd() != null) { long f = ev.getStart().getTime(); long t = ev.getEnd().getTime(); // Select only events that overlaps with startDate and // endDate. if ((f <= to && f >= from) || (t >= from && t <= to) || (f <= from && t >= to)) { activeEvents.add(ev); } } } return activeEvents; } /** * Does this event provider container this event * * @param event * The event to check for * @return If this provider has the event then true is returned, else false */ public boolean containsEvent(BasicEvent event) { return eventList.contains(event); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventSetChangeNotifier * #addListener * (com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventSetChangeListener * ) */ @Override public void addEventSetChangeListener(EventSetChangeListener listener) { listeners.add(listener); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventSetChangeNotifier * #removeListener * (com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventSetChangeListener * ) */ @Override public void removeEventSetChangeListener(EventSetChangeListener listener) { listeners.remove(listener); } /** * Fires a eventsetchange event. The event is fired when either an event is * added or removed to the event provider */ protected void fireEventSetChange() { EventSetChangeEvent event = new EventSetChangeEvent(this); for (EventSetChangeListener listener : listeners) { listener.eventSetChange(event); } } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventChangeListener * #eventChange * (com.vaadin.addon.calendar.ui.CalendarComponentEvents.EventSetChange) */ @Override public void eventChange(EventChangeEvent changeEvent) { // naive implementation fireEventSetChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEditableEventProvider#addEvent * (com.vaadin.addon.calendar.event.CalendarEvent) */ @Override public void addEvent(CalendarEvent event) { eventList.add(event); if (event instanceof BasicEvent) { ((BasicEvent) event).addEventChangeListener(this); } fireEventSetChange(); } /* * (non-Javadoc) * * @see * com.vaadin.addon.calendar.event.CalendarEditableEventProvider#removeEvent * (com.vaadin.addon.calendar.event.CalendarEvent) */ @Override public void removeEvent(CalendarEvent event) { eventList.remove(event); if (event instanceof BasicEvent) { ((BasicEvent) event).removeEventChangeListener(this); } fireEventSetChange(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy