Class EventUpdatedListener

java.lang.Object
org.exoplatform.container.component.BaseComponentPlugin
org.exoplatform.services.listener.Listener<org.exoplatform.agenda.model.AgendaEventModification,Object>
org.exoplatform.caldav.listener.AgendaEventPropagationListener
org.exoplatform.caldav.listener.EventUpdatedListener
All Implemented Interfaces:
org.exoplatform.container.component.ComponentPlugin, org.exoplatform.services.listener.ListenerBase<org.exoplatform.agenda.model.AgendaEventModification,Object>

public class EventUpdatedListener extends AgendaEventPropagationListener
Carries an edit made in eXo out to every calendar copy of that meeting that already exists.

Bound to exo.agenda.event.updated, which is the only thing agenda broadcasts when an existing meeting changes. It covers more than it looks like: an ordinary edit in the event drawer, a field-level edit (updateEventFields — how a meeting is cancelled, by setting its status), and a date poll being confirmed into a real meeting. All three end at the same place, because all three mean the same thing to a calendar: this meeting is not what your copy of it says.

A cancellation needs no listener of its own for the same reason. eXo keeps the event and marks it CANCELLED; the copy is rewritten carrying STATUS:CANCELLED, so the attendee sees the meeting struck through instead of watching it vanish.

Glue only, per the extensibility norm: it hands over the event and what agenda says moved, and every decision is taken in CaldavEventPropagationService.

  • Constructor Details

    • EventUpdatedListener

      public EventUpdatedListener()
  • Method Details

    • propagate

      protected void propagate(CaldavEventPropagationService propagationService, org.exoplatform.agenda.model.AgendaEventModification modification)
      Asks for every existing copy of the edited meeting to be rewritten.
      Specified by:
      propagate in class AgendaEventPropagationListener
      Parameters:
      propagationService - the resolved service
      modification - the modification agenda broadcast