Class ClientWindowWrapper
- All Implemented Interfaces:
FacesWrapper<ClientWindow>
Wrapper for ClientWindow
Usage: extend this class and push the implementation being wrapped to the constructor and use getWrapped()
to
access the instance being wrapped.
- Since:
- 2.2
-
Field Summary
Fields inherited from class jakarta.faces.lifecycle.ClientWindow
CLIENT_WINDOW_MODE_PARAM_NAME, NUMBER_OF_CLIENT_WINDOWS_PARAM_NAME
-
Constructor Summary
ConstructorDescriptionDeprecated.Use the other constructor taking the implementation being wrapped.ClientWindowWrapper
(ClientWindow wrapped) If this client window has been decorated, the implementation doing the decorating should push the implementation being wrapped to this constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
decode
(FacesContext context) The implementation is responsible for examining the incoming request and extracting the value that must be returned from theClientWindow.getId()
method.void
Components that permit per-use disabling of the appending of the ClientWindow in generated URLs must call this method first before rendering those URLs.void
enableClientWindowRenderMode
(FacesContext context) Components that permit per-use disabling of the appending of the ClientWindow in generated URLs must call this method first after rendering those URLs.getId()
Return a String value that uniquely identifies thisClientWindow
within the scope of the current session.getQueryURLParameters
(FacesContext context) This method will be called whenever a URL is generated by the runtime where client window related parameters need to be inserted into the URL.A class that implements this interface uses this method to return an instance of the class being wrapped.boolean
Methods that append the ClientWindow to generated URLs must call this method to see if they are permitted to do so.
-
Constructor Details
-
ClientWindowWrapper
Deprecated.Use the other constructor taking the implementation being wrapped. -
ClientWindowWrapper
If this client window has been decorated, the implementation doing the decorating should push the implementation being wrapped to this constructor. The
getWrapped()
will then return the implementation being wrapped.- Parameters:
wrapped
- The implementation being wrapped.- Since:
- 2.3
-
-
Method Details
-
getWrapped
Description copied from interface:FacesWrapper
A class that implements this interface uses this method to return an instance of the class being wrapped.
- Specified by:
getWrapped
in interfaceFacesWrapper<ClientWindow>
- Returns:
- the wrapped instance.
-
getId
Description copied from class:ClientWindow
Return a String value that uniquely identifies this
ClientWindow
within the scope of the current session. SeeClientWindow.decode(jakarta.faces.context.FacesContext)
for the specification of how to derive this value.- Specified by:
getId
in classClientWindow
- Returns:
- the id of the
ClientWindow
-
getQueryURLParameters
Description copied from class:ClientWindow
This method will be called whenever a URL is generated by the runtime where client window related parameters need to be inserted into the URL. This guarantees custom
ClientWindow
implementations that they will have the opportunity to insert any additional client window specific information in any case where a URL is generated, such as the rendering of hyperlinks. The returned map must be immutable. The default implementation of this method returns the empty map.- Specified by:
getQueryURLParameters
in classClientWindow
- Parameters:
context
- theFacesContext
for this request.- Returns:
null
or a map of parameters to insert into the URL query string.
-
disableClientWindowRenderMode
Description copied from class:ClientWindow
Components that permit per-use disabling of the appending of the ClientWindow in generated URLs must call this method first before rendering those URLs. The caller must call
ClientWindow.enableClientWindowRenderMode(jakarta.faces.context.FacesContext)
from afinally
block after rendering the URL. IfClientWindow.CLIENT_WINDOW_MODE_PARAM_NAME
is "url" without the quotes, all generated URLs that cause a GET request must append the ClientWindow by default. This is specified as a static method because callsites need to access it without having access to an actualClientWindow
instance.- Overrides:
disableClientWindowRenderMode
in classClientWindow
- Parameters:
context
- theFacesContext
for this request.
-
enableClientWindowRenderMode
Description copied from class:ClientWindow
Components that permit per-use disabling of the appending of the ClientWindow in generated URLs must call this method first after rendering those URLs. If
ClientWindow.CLIENT_WINDOW_MODE_PARAM_NAME
is "url" without the quotes, all generated URLs that cause a GET request must append the ClientWindow by default. This is specified as a static method because callsites need to access it without having access to an actualClientWindow
instance.- Overrides:
enableClientWindowRenderMode
in classClientWindow
- Parameters:
context
- theFacesContext
for this request.
-
isClientWindowRenderModeEnabled
Description copied from class:ClientWindow
Methods that append the ClientWindow to generated URLs must call this method to see if they are permitted to do so. If
ClientWindow.CLIENT_WINDOW_MODE_PARAM_NAME
is "url" without the quotes, all generated URLs that cause a GET request must append the ClientWindow by default. This is specified as a static method because callsites need to access it without having access to an actualClientWindow
instance.- Overrides:
isClientWindowRenderModeEnabled
in classClientWindow
- Parameters:
context
- theFacesContext
for this request.- Returns:
- the result as specified above
-
decode
Description copied from class:ClientWindow
The implementation is responsible for examining the incoming request and extracting the value that must be returned from the
ClientWindow.getId()
method. IfClientWindow.CLIENT_WINDOW_MODE_PARAM_NAME
is "none" this method must not be invoked. IfClientWindow.CLIENT_WINDOW_MODE_PARAM_NAME
is "url" the implementation must first look for a request parameter under the name given by the value ofResponseStateManager.CLIENT_WINDOW_PARAM
. If no value is found, look for a request parameter under the name given by the value ofResponseStateManager.CLIENT_WINDOW_URL_PARAM
. If no value is found, fabricate an id that uniquely identifies thisClientWindow
within the scope of the current session. This value must be made available to return from theClientWindow.getId()
method. The value must be suitable for inclusion as a hidden field or query parameter. If a value is found, decrypt it using the key from the session and make it available for return fromClientWindow.getId()
.- Specified by:
decode
in classClientWindow
- Parameters:
context
- theFacesContext
for this request.
-