Class History

java.lang.Object
com.vaadin.flow.component.page.History
All Implemented Interfaces:
Serializable

public class History extends Object implements Serializable
Represents window.history in the browser. See e.g. documentation on MDN for detailed information on how the API works in the browser.
Since:
1.0
Author:
Vaadin Ltd
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Event fired when the history state has changed.
    static interface 
    Handles location change events.
  • Constructor Summary

    Constructors
    Constructor
    Description
    History(UI ui)
    Creates a history API endpoint for the given UI.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Navigates back.
    void
    Navigates forward.
    Gets the handler that is notified history state has changed.
    Gets the UI that this instance belongs to.
    void
    go(int steps)
    Navigates a number of steps forward or backward in the history.
    void
    pushState(elemental.json.JsonValue state, Location location)
    Invokes history.pushState in the browser with the given parameters.
    void
    pushState(elemental.json.JsonValue state, Location location, boolean callback)
    Invokes history.pushState in the browser with the given parameters.
    void
    pushState(elemental.json.JsonValue state, String location)
    Invokes history.pushState in the browser with the given parameters.
    void
    pushState(elemental.json.JsonValue state, String location, boolean callback)
    Invokes history.pushState in the browser with the given parameters.
    void
    replaceState(elemental.json.JsonValue state, Location location)
    Invokes history.replaceState in the browser with the given parameters.
    void
    replaceState(elemental.json.JsonValue state, Location location, boolean callback)
    Invokes history.replaceState in the browser with the given parameters.
    void
    replaceState(elemental.json.JsonValue state, String location)
    Invokes history.replaceState in the browser with the given parameters.
    void
    replaceState(elemental.json.JsonValue state, String location, boolean callback)
    Invokes history.replaceState in the browser with the given parameters.
    void
    Sets a handler that will be notified when the history state has changed.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • History

      public History(UI ui)
      Creates a history API endpoint for the given UI.
      Parameters:
      ui - the ui, not null
  • Method Details

    • getUI

      public UI getUI()
      Gets the UI that this instance belongs to.
      Returns:
      the ui, not null
    • pushState

      public void pushState(elemental.json.JsonValue state, String location)
      Invokes history.pushState in the browser with the given parameters. This is a shorthand method for pushState(JsonValue, Location), creating Location from the string provided.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
    • pushState

      public void pushState(elemental.json.JsonValue state, String location, boolean callback)
      Invokes history.pushState in the browser with the given parameters. This is a shorthand method for pushState(JsonValue, Location, boolean), creating Location from the string provided.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
      callback - true if the change should make a return call to the server
    • pushState

      public void pushState(elemental.json.JsonValue state, Location location)
      Invokes history.pushState in the browser with the given parameters. Does not make a callback to the server by default.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
    • pushState

      public void pushState(elemental.json.JsonValue state, Location location, boolean callback)
      Invokes history.pushState in the browser with the given parameters.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
      callback - true if the change should make a return call to the server
    • replaceState

      public void replaceState(elemental.json.JsonValue state, String location)
      Invokes history.replaceState in the browser with the given parameters. This is a shorthand method for replaceState(JsonValue, Location), creating Location from the string provided.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
    • replaceState

      public void replaceState(elemental.json.JsonValue state, String location, boolean callback)
      Invokes history.replaceState in the browser with the given parameters. This is a shorthand method for replaceState(JsonValue, Location, boolean), creating Location from the string provided.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
      callback - true if the change should make a return call to the server
    • replaceState

      public void replaceState(elemental.json.JsonValue state, Location location)
      Invokes history.replaceState in the browser with the given parameters. Does not make a callback to the server by default.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
    • replaceState

      public void replaceState(elemental.json.JsonValue state, Location location, boolean callback)
      Invokes history.replaceState in the browser with the given parameters.
      Parameters:
      state - the JSON state to push to the history stack, or null to only change the location
      location - the new location to set in the browser, or null to only change the JSON state
      callback - true if the change should make a return call to the server
    • setHistoryStateChangeHandler

      public void setHistoryStateChangeHandler(History.HistoryStateChangeHandler historyStateChangeHandler)
      Sets a handler that will be notified when the history state has changed.

      History state changes are triggered when a popstate event is fired in the browser or when the user has navigated using a router link. There can only be one handler at a time.

      Parameters:
      historyStateChangeHandler - the handler to set, or null to remove the current handler
      See Also:
    • getHistoryStateChangeHandler

      public History.HistoryStateChangeHandler getHistoryStateChangeHandler()
      Gets the handler that is notified history state has changed.
      Returns:
      the history state handler, or null if no handler is set
      See Also:
    • back

      public void back()
      Navigates back. This has the same effect as if the user would press the back button in the browser. This causes a History.HistoryStateChangeEvent to be fired asynchronously if the conditions described in the onpopstate documentation are met.
    • forward

      public void forward()
      Navigates forward. This has the same effect as if the user would press the forward button in the browser. This causes a History.HistoryStateChangeEvent to be fired asynchronously if the conditions described in the onpopstate documentation are met.
    • go

      public void go(int steps)
      Navigates a number of steps forward or backward in the history. This has the same effect as if the user would press the forward button in the browser. This causes a History.HistoryStateChangeEvent to be fired asynchronously if the conditions described in the onpopstate documentation are met.
      Parameters:
      steps - the number of steps to navigate, positive numbers navigate forward, negative numbers backward. 0 causes the current page to be reloaded