Search in sources :

Example 1 with History

use of com.vaadin.flow.component.page.History in project flow by vaadin.

the class NavigationRpcHandler method handle.

@Override
public Optional<Runnable> handle(UI ui, JsonObject invocationJson) {
    History history = ui.getPage().getHistory();
    HistoryStateChangeHandler historyStateChangeHandler = history.getHistoryStateChangeHandler();
    if (historyStateChangeHandler != null) {
        JsonValue state = invocationJson.get(JsonConstants.RPC_NAVIGATION_STATE);
        String location = invocationJson.getString(JsonConstants.RPC_NAVIGATION_LOCATION);
        boolean triggeredByLink = invocationJson.hasKey(JsonConstants.RPC_NAVIGATION_ROUTERLINK);
        NavigationTrigger trigger = triggeredByLink ? NavigationTrigger.ROUTER_LINK : NavigationTrigger.HISTORY;
        HistoryStateChangeEvent event = new HistoryStateChangeEvent(history, state, new Location(location), trigger);
        historyStateChangeHandler.onHistoryStateChange(event);
    }
    return Optional.empty();
}
Also used : HistoryStateChangeEvent(com.vaadin.flow.component.page.History.HistoryStateChangeEvent) HistoryStateChangeHandler(com.vaadin.flow.component.page.History.HistoryStateChangeHandler) NavigationTrigger(com.vaadin.flow.router.NavigationTrigger) JsonValue(elemental.json.JsonValue) History(com.vaadin.flow.component.page.History) Location(com.vaadin.flow.router.Location)

Example 2 with History

use of com.vaadin.flow.component.page.History in project flow by vaadin.

the class UITest method locationAfterClientNavigation.

@Test
public void locationAfterClientNavigation() {
    UI ui = createAndInitTestUI("");
    History history = ui.getPage().getHistory();
    history.getHistoryStateChangeHandler().onHistoryStateChange(new HistoryStateChangeEvent(history, null, new Location("foo/bar"), NavigationTrigger.HISTORY));
    assertEquals("foo/bar", ui.getInternals().getActiveViewLocation().getPath());
}
Also used : HistoryStateChangeEvent(com.vaadin.flow.component.page.History.HistoryStateChangeEvent) History(com.vaadin.flow.component.page.History) Location(com.vaadin.flow.router.Location) Test(org.junit.Test)

Aggregations

History (com.vaadin.flow.component.page.History)2 HistoryStateChangeEvent (com.vaadin.flow.component.page.History.HistoryStateChangeEvent)2 Location (com.vaadin.flow.router.Location)2 HistoryStateChangeHandler (com.vaadin.flow.component.page.History.HistoryStateChangeHandler)1 NavigationTrigger (com.vaadin.flow.router.NavigationTrigger)1 JsonValue (elemental.json.JsonValue)1 Test (org.junit.Test)1