/*
@VaadinAddonLicenseForJavaFiles@
*/
package com.spaceapplications.vaadin.addon.eventtimeline.event;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* Event in the timeline. Customize your own event by implementing this
* interface.
* </p>
*
* <li>Start and end fields are mandatory.</li>
*/
public interface TimelineEvent extends Serializable {
/**
* Gets the unique event identifier.
*
* @return event identifier.
*/
public String getEventId();
/**
* Gets start date of event.
*
* @return Start date.
*/
public Date getStart();
/**
* Get end date of event.
*
* @return End date;
*/
public Date getEnd();
/**
* Gets caption of event.
*
* @return Caption text
*/
public String getCaption();
/**
* Gets description of event. Shown as a tooltip over the event.
*
* @return Description text.
*/
public String getDescription();
/**
* <p>
* Gets style name of event. In the client, style name will be set to the
* event's element class name and can be styled by CSS
* </p>
* Styling example:</br> <code>Java code: </br>
* event.setStyleName("color1");
* </br></br>
* CSS:</br>
* .v-eventtimeline-event-color1 {</br>
* background-color: #9effae;</br>}</code>
*
* @return Style name.
*/
public String getStyleName();
/**
* Event to signal that an event has changed.
*/
public class EventChange implements Serializable {
private static final long serialVersionUID = 1L;
private TimelineEvent source;
public EventChange(TimelineEvent source) {
this.source = source;
}
/**
* @return the {@link TimelineEvent} that has changed
*/
public TimelineEvent getTimelineEvent() {
return source;
}
}
/**
* Listener for EventSetChange events.
*/
public interface EventChangeListener extends Serializable {
/**
* Called when an Event has changed.
*/
public void eventChange(EventChange changeEvent);
}
/**
* Notifier interface for EventChange events.
*/
public interface EventChangeNotifier extends Serializable {
void addListener(EventChangeListener listener);
void removeListener(EventChangeListener listener);
}
}