Browse Source

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.
tags/8.0.0.beta2
Leif Åstrand 7 years ago
parent
commit
c5c6a350b5

+ 5
- 11
server/src/main/java/com/vaadin/navigator/Navigator.java View File

@@ -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.
*

+ 2
- 6
server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java View File

@@ -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");

+ 1
- 4
server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java View File

@@ -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

Loading…
Cancel
Save