summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Dahlström <johannesd@vaadin.com>2012-08-30 16:24:18 +0300
committerJohannes Dahlström <johannesd@vaadin.com>2012-08-31 11:06:45 +0300
commit1921394b57526d04059d9768e4162405c63d853b (patch)
tree493201e367d69e9fba8dfa072591c5e7caf8cc6f
parent7b25b3886ea95bc6495506fbe9472e45fcbde684 (diff)
downloadvaadin-framework-1921394b57526d04059d9768e4162405c63d853b.tar.gz
vaadin-framework-1921394b57526d04059d9768e4162405c63d853b.zip
Rename FragmentManager to NavigationStateManager (#9367)
-rw-r--r--server/src/com/vaadin/navigator/NavigationStateManager.java (renamed from server/src/com/vaadin/navigator/FragmentManager.java)28
-rw-r--r--server/src/com/vaadin/navigator/Navigator.java18
-rw-r--r--server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java60
-rw-r--r--server/tests/src/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java6
4 files changed, 57 insertions, 55 deletions
diff --git a/server/src/com/vaadin/navigator/FragmentManager.java b/server/src/com/vaadin/navigator/NavigationStateManager.java
index a42456a163..cbbeb59c30 100644
--- a/server/src/com/vaadin/navigator/FragmentManager.java
+++ b/server/src/com/vaadin/navigator/NavigationStateManager.java
@@ -19,32 +19,34 @@ package com.vaadin.navigator;
import java.io.Serializable;
/**
- * Fragment manager that handles interaction between Navigator and URI fragments
- * or other similar view identification and bookmarking system.
- *
- * Alternative implementations can be created for HTML5 pushState, for portlet
- * URL navigation and other similar systems.
- *
+ * An interface for handling interaction between Navigator and the browser
+ * location URI or other similar view identification and bookmarking system. The
+ * state is limited to a single string because in the usual cases it forms a
+ * part of a URI.
+ * <p>
+ * Different implementations can be created for hashbang URIs, HTML5 pushState,
+ * portlet URL navigation and other similar systems.
+ * <p>
* This interface is mostly for internal use by {@link Navigator}.
*
* @author Vaadin Ltd
* @since 7.0
*/
-public interface FragmentManager extends Serializable {
+public interface NavigationStateManager extends Serializable {
/**
- * Return the current fragment (location string) including view name and any
- * optional parameters.
+ * Returns the current navigation state including view name and any optional
+ * parameters.
*
* @return current view and parameter string, not null
*/
- public String getFragment();
+ public String getState();
/**
- * Set the current fragment (location string) in the application URL or
- * similar location, including view name and any optional parameters.
+ * Set the current navigation state in the location URI or similar location,
+ * including view name and any optional parameters.
*
* @param fragment
* new view and parameter string, not null
*/
- public void setFragment(String fragment);
+ public void setState(String state);
} \ No newline at end of file
diff --git a/server/src/com/vaadin/navigator/Navigator.java b/server/src/com/vaadin/navigator/Navigator.java
index cef27c221d..40805e2c12 100644
--- a/server/src/com/vaadin/navigator/Navigator.java
+++ b/server/src/com/vaadin/navigator/Navigator.java
@@ -79,7 +79,7 @@ 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 FragmentManager,
+ public static class UriFragmentManager implements NavigationStateManager,
FragmentChangedListener {
private final Page page;
private final Navigator navigator;
@@ -102,18 +102,18 @@ public class Navigator implements Serializable {
}
@Override
- public String getFragment() {
+ public String getState() {
return page.getFragment();
}
@Override
- public void setFragment(String fragment) {
+ public void setState(String fragment) {
page.setFragment(fragment, false);
}
@Override
public void fragmentChanged(FragmentChangedEvent event) {
- UriFragmentManager.this.navigator.navigateTo(getFragment());
+ UriFragmentManager.this.navigator.navigateTo(getState());
}
}
@@ -318,7 +318,7 @@ public class Navigator implements Serializable {
}
}
- private final FragmentManager fragmentManager;
+ private final NavigationStateManager fragmentManager;
private final ViewDisplay display;
private View currentView = null;
private List<ViewChangeListener> listeners = new LinkedList<ViewChangeListener>();
@@ -393,7 +393,7 @@ public class Navigator implements Serializable {
* @param display
* where to display the views
*/
- public Navigator(FragmentManager fragmentManager, ViewDisplay display) {
+ public Navigator(NavigationStateManager fragmentManager, ViewDisplay display) {
this.display = display;
this.fragmentManager = fragmentManager;
}
@@ -472,8 +472,8 @@ public class Navigator implements Serializable {
if (!fragmentParameters.equals("")) {
currentFragment += "/" + fragmentParameters;
}
- if (!currentFragment.equals(getFragmentManager().getFragment())) {
- getFragmentManager().setFragment(currentFragment);
+ if (!currentFragment.equals(getFragmentManager().getState())) {
+ getFragmentManager().setState(currentFragment);
}
}
@@ -517,7 +517,7 @@ public class Navigator implements Serializable {
*
* @return fragment manager in use
*/
- protected FragmentManager getFragmentManager() {
+ protected NavigationStateManager getFragmentManager() {
return fragmentManager;
}
diff --git a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
index 595ddb95db..5bde04a3b4 100644
--- a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
+++ b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
@@ -23,7 +23,7 @@ import junit.framework.TestCase;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
-import com.vaadin.navigator.FragmentManager;
+import com.vaadin.navigator.NavigationStateManager;
import com.vaadin.navigator.Navigator;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
@@ -45,14 +45,14 @@ public class NavigatorTest extends TestCase {
}
}
- public static class NullFragmentManager implements FragmentManager {
+ public static class NullFragmentManager implements NavigationStateManager {
@Override
- public String getFragment() {
+ public String getState() {
return null;
}
@Override
- public void setFragment(String fragment) {
+ public void setState(String fragment) {
// do nothing
}
}
@@ -171,7 +171,7 @@ public class NavigatorTest extends TestCase {
public void testBasicNavigation() {
IMocksControl control = EasyMock.createControl();
- FragmentManager manager = control.createMock(FragmentManager.class);
+ NavigationStateManager manager = control.createMock(NavigationStateManager.class);
ViewDisplay display = control.createMock(ViewDisplay.class);
ViewProvider provider = control.createMock(ViewProvider.class);
View view1 = control.createMock(View.class);
@@ -180,25 +180,25 @@ public class NavigatorTest extends TestCase {
// prepare mocks: what to expect
EasyMock.expect(provider.getViewName("test1")).andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getFragment()).andReturn("");
+ EasyMock.expect(manager.getState()).andReturn("");
view1.navigateTo("");
display.showView(view1);
- manager.setFragment("test1");
+ manager.setState("test1");
EasyMock.expect(provider.getViewName("test2/")).andReturn("test2");
EasyMock.expect(provider.getView("test2")).andReturn(view2);
- EasyMock.expect(manager.getFragment()).andReturn("view1");
+ EasyMock.expect(manager.getState()).andReturn("view1");
view2.navigateTo("");
display.showView(view2);
- manager.setFragment("test2");
+ manager.setState("test2");
EasyMock.expect(provider.getViewName("test1/params"))
.andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getFragment()).andReturn("view2");
+ EasyMock.expect(manager.getState()).andReturn("view2");
view1.navigateTo("params");
display.showView(view1);
- manager.setFragment("test1/params");
+ manager.setState("test1/params");
control.replay();
@@ -213,7 +213,7 @@ public class NavigatorTest extends TestCase {
public void testMainView() {
IMocksControl control = EasyMock.createControl();
- FragmentManager manager = control.createMock(FragmentManager.class);
+ NavigationStateManager manager = control.createMock(NavigationStateManager.class);
ViewDisplay display = control.createMock(ViewDisplay.class);
ViewProvider provider = control.createMock(ViewProvider.class);
View view1 = control.createMock(View.class);
@@ -222,25 +222,25 @@ public class NavigatorTest extends TestCase {
// prepare mocks: what to expect
EasyMock.expect(provider.getViewName("test2")).andReturn("test2");
EasyMock.expect(provider.getView("test2")).andReturn(view2);
- EasyMock.expect(manager.getFragment()).andReturn("view1");
+ EasyMock.expect(manager.getState()).andReturn("view1");
view2.navigateTo("");
display.showView(view2);
- manager.setFragment("test2");
+ manager.setState("test2");
EasyMock.expect(provider.getViewName("")).andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getFragment()).andReturn("");
+ EasyMock.expect(manager.getState()).andReturn("");
view1.navigateTo("");
display.showView(view1);
- manager.setFragment("test1");
+ manager.setState("test1");
EasyMock.expect(provider.getViewName("test1/params"))
.andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getFragment()).andReturn("view2");
+ EasyMock.expect(manager.getState()).andReturn("view2");
view1.navigateTo("params");
display.showView(view1);
- manager.setFragment("test1/params");
+ manager.setState("test1/params");
control.replay();
@@ -255,7 +255,7 @@ public class NavigatorTest extends TestCase {
public void testListeners() {
IMocksControl control = EasyMock.createControl();
- FragmentManager manager = control.createMock(FragmentManager.class);
+ NavigationStateManager manager = control.createMock(NavigationStateManager.class);
ViewDisplay display = control.createMock(ViewDisplay.class);
ViewProvider provider = control.createMock(ViewProvider.class);
View view1 = control.createMock(View.class);
@@ -271,10 +271,10 @@ public class NavigatorTest extends TestCase {
ViewChangeEvent event1 = new ViewChangeEvent(navigator, null, view1,
"test1", "");
listener.addExpectedIsViewChangeAllowed(event1, true);
- EasyMock.expect(manager.getFragment()).andReturn("");
+ EasyMock.expect(manager.getState()).andReturn("");
view1.navigateTo("");
display.showView(view1);
- manager.setFragment("test1");
+ manager.setState("test1");
listener.addExpectedNavigatorViewChange(event1);
EasyMock.expect(provider.getViewName("test2")).andReturn("test2");
@@ -282,10 +282,10 @@ public class NavigatorTest extends TestCase {
ViewChangeEvent event2 = new ViewChangeEvent(navigator, view1, view2,
"test2", "");
listener.addExpectedIsViewChangeAllowed(event2, true);
- EasyMock.expect(manager.getFragment()).andReturn("view1");
+ EasyMock.expect(manager.getState()).andReturn("view1");
view2.navigateTo("");
display.showView(view2);
- manager.setFragment("test2");
+ manager.setState("test2");
listener.addExpectedNavigatorViewChange(event2);
control.replay();
@@ -304,7 +304,7 @@ public class NavigatorTest extends TestCase {
public void testBlockNavigation() {
IMocksControl control = EasyMock.createControl();
- FragmentManager manager = control.createMock(FragmentManager.class);
+ NavigationStateManager manager = control.createMock(NavigationStateManager.class);
ViewDisplay display = control.createMock(ViewDisplay.class);
ViewProvider provider = control.createMock(ViewProvider.class);
View view1 = control.createMock(View.class);
@@ -318,7 +318,7 @@ public class NavigatorTest extends TestCase {
// first listener blocks first view change
EasyMock.expect(provider.getViewName("test1")).andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getFragment()).andReturn("");
+ EasyMock.expect(manager.getState()).andReturn("");
ViewChangeEvent event1 = new ViewChangeEvent(navigator, null, view1,
"test1", "");
listener1.addExpectedIsViewChangeAllowed(event1, false);
@@ -326,7 +326,7 @@ public class NavigatorTest extends TestCase {
// second listener blocks second view change
EasyMock.expect(provider.getViewName("test1/test")).andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getFragment()).andReturn("");
+ EasyMock.expect(manager.getState()).andReturn("");
ViewChangeEvent event2 = new ViewChangeEvent(navigator, null, view1,
"test1", "test");
listener1.addExpectedIsViewChangeAllowed(event2, true);
@@ -335,28 +335,28 @@ public class NavigatorTest extends TestCase {
// both listeners allow view change
EasyMock.expect(provider.getViewName("test1/bar")).andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getFragment()).andReturn("");
+ EasyMock.expect(manager.getState()).andReturn("");
ViewChangeEvent event3 = new ViewChangeEvent(navigator, null, view1,
"test1", "bar");
listener1.addExpectedIsViewChangeAllowed(event3, true);
listener2.addExpectedIsViewChangeAllowed(event3, true);
view1.navigateTo("bar");
display.showView(view1);
- manager.setFragment("test1/bar");
+ manager.setState("test1/bar");
listener1.addExpectedNavigatorViewChange(event3);
listener2.addExpectedNavigatorViewChange(event3);
// both listeners allow view change from non-null view
EasyMock.expect(provider.getViewName("test2")).andReturn("test2");
EasyMock.expect(provider.getView("test2")).andReturn(view2);
- EasyMock.expect(manager.getFragment()).andReturn("view1");
+ EasyMock.expect(manager.getState()).andReturn("view1");
ViewChangeEvent event4 = new ViewChangeEvent(navigator, view1, view2,
"test2", "");
listener1.addExpectedIsViewChangeAllowed(event4, true);
listener2.addExpectedIsViewChangeAllowed(event4, true);
view2.navigateTo("");
display.showView(view2);
- manager.setFragment("test2");
+ manager.setState("test2");
listener1.addExpectedNavigatorViewChange(event4);
listener2.addExpectedNavigatorViewChange(event4);
diff --git a/server/tests/src/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java b/server/tests/src/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
index 18ed52cc2a..d58ff28b00 100644
--- a/server/tests/src/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
+++ b/server/tests/src/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
@@ -39,9 +39,9 @@ public class UriFragmentManagerTest extends TestCase {
EasyMock.replay(page);
// test manager using the mock
- assertEquals("Incorrect fragment value", "", manager.getFragment());
- manager.setFragment("test");
- assertEquals("Incorrect fragment value", "test", manager.getFragment());
+ assertEquals("Incorrect fragment value", "", manager.getState());
+ manager.setState("test");
+ assertEquals("Incorrect fragment value", "test", manager.getState());
}
public void testListener() {