package com.github.pfichtner.jrunalyser.ui.cal.swing.model;
import java.util.Date;
import javax.swing.event.EventListenerList;
public abstract class AbstractCalenderModel implements CalenderModel {
private final EventListenerList listenerList = new EventListenerList();
// -----------------------------------------------------------------
public void addModelListener(CalendarModelListener l) {
this.listenerList.add(CalendarModelListener.class, l);
}
public void removeModelListener(CalendarModelListener l) {
this.listenerList.remove(CalendarModelListener.class, l);
}
// -----------------------------------------------------------------
public void fireElementsInserted(Date startDate, Date endDate) {
fireTableChanged(new CalendarModelEvent(
CalendarModelEvent.Type.INSERTED, startDate, endDate));
}
public void fireTableChanged(CalendarModelEvent e) {
// Guaranteed to return a non-null array
Object[] listeners = this.listenerList.getListenerList();
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length - 2; i >= 0; i -= 2) {
if (listeners[i] == CalendarModelListener.class) {
((CalendarModelListener) listeners[i + 1]).modelChanged(e);
}
}
}
}