Class ClientWindowWrapper
- java.lang.Object
-
- jakarta.faces.lifecycle.ClientWindow
-
- jakarta.faces.lifecycle.ClientWindowWrapper
-
- All Implemented Interfaces:
FacesWrapper<ClientWindow>
public abstract class ClientWindowWrapper extends ClientWindow implements 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
Constructors Constructor Description ClientWindowWrapper()
Deprecated.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
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
disableClientWindowRenderMode(FacesContext context)
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.String
getId()
Return a String value that uniquely identifies thisClientWindow
within the scope of the current session.Map<String,String>
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.ClientWindow
getWrapped()
A class that implements this interface uses this method to return an instance of the class being wrapped.boolean
isClientWindowRenderModeEnabled(FacesContext context)
Methods that append the ClientWindow to generated URLs must call this method to see if they are permitted to do so.
-
-
-
Constructor Detail
-
ClientWindowWrapper
@Deprecated public ClientWindowWrapper()
Deprecated.Use the other constructor taking the implementation being wrapped.
-
ClientWindowWrapper
public ClientWindowWrapper(ClientWindow wrapped)
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 Detail
-
getWrapped
public ClientWindow 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
public String 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
public Map<String,String> getQueryURLParameters(FacesContext context)
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
public void disableClientWindowRenderMode(FacesContext context)
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
public void enableClientWindowRenderMode(FacesContext context)
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
public boolean isClientWindowRenderModeEnabled(FacesContext context)
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
public void decode(FacesContext context)
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.
-
-