diff options
author | Leif Åstrand <legioth@gmail.com> | 2017-01-09 10:21:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-09 10:21:13 +0200 |
commit | c5c6a350b53652616176c4f6074ce7478bd85175 (patch) | |
tree | 0e005447975053bdd24d44c1d7b96fa168453eda | |
parent | 74342821007c1fa1f99df9c7b3703404c3fc7c08 (diff) | |
download | vaadin-framework-c5c6a350b53652616176c4f6074ce7478bd85175.tar.gz vaadin-framework-c5c6a350b53652616176c4f6074ce7478bd85175.zip |
Remove uriFragmentChanged from the public API of UriFragmentManager (#8164)
It's an implementation detail that UriFragmentManager uses a
UriFragmentChangedListener, so this shouldn't be exposed in its public
API.
3 files changed, 8 insertions, 21 deletions
diff --git a/server/src/main/java/com/vaadin/navigator/Navigator.java b/server/src/main/java/com/vaadin/navigator/Navigator.java index d403b48690..6a55b36ab8 100644 --- a/server/src/main/java/com/vaadin/navigator/Navigator.java +++ b/server/src/main/java/com/vaadin/navigator/Navigator.java @@ -39,8 +39,6 @@ import java.util.List; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.Page; -import com.vaadin.server.Page.UriFragmentChangedEvent; -import com.vaadin.server.Page.UriFragmentChangedListener; import com.vaadin.shared.Registration; import com.vaadin.shared.util.SharedUtil; import com.vaadin.ui.Component; @@ -101,10 +99,10 @@ public class Navigator implements Serializable { * This class is mostly for internal use by Navigator, and is only public * and static to enable testing. */ - public static class UriFragmentManager - implements NavigationStateManager, UriFragmentChangedListener { + public static class UriFragmentManager implements NavigationStateManager { private final Page page; private Navigator navigator; + private Registration uriFragmentRegistration; /** * Creates a new URIFragmentManager and attach it to listen to URI @@ -120,9 +118,10 @@ public class Navigator implements Serializable { @Override public void setNavigator(Navigator navigator) { if (this.navigator == null && navigator != null) { - page.addUriFragmentChangedListener(this); + uriFragmentRegistration = page.addUriFragmentChangedListener( + event -> navigator.navigateTo(getState())); } else if (this.navigator != null && navigator == null) { - page.removeUriFragmentChangedListener(this); + uriFragmentRegistration.remove(); } this.navigator = navigator; } @@ -142,11 +141,6 @@ public class Navigator implements Serializable { setFragment("!" + state); } - @Override - public void uriFragmentChanged(UriFragmentChangedEvent event) { - navigator.navigateTo(getState()); - } - /** * Returns the current URI fragment tracked by this UriFragentManager. * diff --git a/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java b/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java index 20271defe5..9ac9492d95 100644 --- a/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java +++ b/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java @@ -32,14 +32,12 @@ import org.junit.Test; import com.vaadin.navigator.NavigationStateManager; import com.vaadin.navigator.Navigator; -import com.vaadin.navigator.Navigator.UriFragmentManager; import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.navigator.ViewDisplay; import com.vaadin.navigator.ViewProvider; import com.vaadin.server.Page; -import com.vaadin.server.Page.UriFragmentChangedEvent; import com.vaadin.server.VaadinRequest; import com.vaadin.shared.Registration; import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView; @@ -298,11 +296,9 @@ public class NavigatorTest { page.removeUriFragmentCalled()); Assert.assertNull("Navigator is not null in UI after destroy", ui.getNavigator()); - UriFragmentManager manager = (UriFragmentManager) navigator - .getStateManager(); - manager.uriFragmentChanged( - EasyMock.createMock(UriFragmentChangedEvent.class)); + page.setUriFragment("foobar", true); + Assert.fail( "Expected null pointer exception after call uriFragmentChanged " + "for destroyed navigator"); diff --git a/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java b/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java index 6c7a3cf0d8..230f2f2a65 100644 --- a/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java +++ b/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java @@ -24,7 +24,6 @@ import org.junit.Test; import com.vaadin.navigator.Navigator; import com.vaadin.navigator.Navigator.UriFragmentManager; import com.vaadin.server.Page; -import com.vaadin.server.Page.UriFragmentChangedEvent; import com.vaadin.shared.Registration; public class UriFragmentManagerTest { @@ -62,9 +61,7 @@ public class UriFragmentManagerTest { navigator.navigateTo("test"); control.replay(); - UriFragmentChangedEvent event = new UriFragmentChangedEvent(page, - "oldtest"); - manager.uriFragmentChanged(event); + page.setUriFragment("oldtest", true); } @Test |