From 198df69ac06650ba99e67abc64e46d142c9bfd09 Mon Sep 17 00:00:00 2001 From: Markus Kreth Date: Mon, 7 Jan 2019 02:00:23 +0100 Subject: [PATCH] Data events for update handling after filtering. --- .../ui/events/DataUpdateHandler.java | 8 ++++++ .../ui/events/DataUpdatedEvent.java | 6 +++++ .../ui/events/DefaultDataUpdateHandler.java | 27 +++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdateHandler.java create mode 100644 src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DataUpdatedEvent.java create mode 100644 src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/events/DefaultDataUpdateHandler.java 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(); + } + } + } +}