From 414de3c4b2ea5267808980bd23a9e56aa865e96b Mon Sep 17 00:00:00 2001 From: Denis Date: Wed, 7 Dec 2016 17:16:45 +0200 Subject: Implement "afterViewChange()" as no-op by default. (#99) * Implement "afterViewChange()" as no-op by default. ViewChangeListener is functional interface now and has empty implementation for "afterViewChange()" Fixes vaadin/framework8-issues#502 --- .../java/com/vaadin/navigator/ViewChangeListener.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'server') diff --git a/server/src/main/java/com/vaadin/navigator/ViewChangeListener.java b/server/src/main/java/com/vaadin/navigator/ViewChangeListener.java index b98fb967fc..9238f1bae9 100644 --- a/server/src/main/java/com/vaadin/navigator/ViewChangeListener.java +++ b/server/src/main/java/com/vaadin/navigator/ViewChangeListener.java @@ -21,13 +21,18 @@ import java.util.EventObject; /** * Interface for listening to View changes before and after they occur. - * + *

* Implementations of this interface can also block navigation between views - * before it is performed. + * before it is performed (using {@link #beforeViewChange(ViewChangeEvent)}). + *

+ * The interface contains two methods {@link #beforeViewChange(ViewChangeEvent)} + * and {@link #afterViewChange(ViewChangeEvent)}. The latter one has default + * empty implementation. * * @author Vaadin Ltd * @since 7.0 */ +@FunctionalInterface public interface ViewChangeListener extends Serializable { /** @@ -124,10 +129,14 @@ public interface ViewChangeListener extends Serializable { * method blocked the view change, this method is not called. Be careful of * unbounded recursion if you decide to change the view again in the * listener. + *

+ * By default it does nothing. Override it in your listener if you need this + * functionality. * * @param event * view change event */ - public void afterViewChange(ViewChangeEvent event); + public default void afterViewChange(ViewChangeEvent event) { + } } -- cgit v1.2.3