diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdateHandler.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdateHandler.java new file mode 100644 index 0000000..83760db --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdateHandler.java @@ -0,0 +1,8 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.events; + +public interface DataUpdateHandler { + + void add(DataUpdatedEvent ev); + + boolean remove(DataUpdatedEvent ev); +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdatedEvent.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdatedEvent.java new file mode 100644 index 0000000..5c802a5 --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdatedEvent.java @@ -0,0 +1,6 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.events; + +public interface DataUpdatedEvent { + + void updateFinisched(); +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DefaultDataUpdateHandler.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DefaultDataUpdateHandler.java new file mode 100644 index 0000000..e7f0348 --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DefaultDataUpdateHandler.java @@ -0,0 +1,27 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.events; + +import java.util.ArrayList; +import java.util.List; + +public class DefaultDataUpdateHandler implements DataUpdateHandler { + + private final List listeners = new ArrayList<>(); + + @Override + public void add(DataUpdatedEvent ev) { + listeners.add(ev); + } + + @Override + public boolean remove(DataUpdatedEvent o) { + return listeners.remove(o); + } + + public void fireUpdateEvent() { + synchronized (listeners) { + for (DataUpdatedEvent ev : listeners) { + ev.updateFinisched(); + } + } + } +}