[jsr-314-open] JavaScript disabled support [Was: Outcome of JSFDays discussions]

Andy Schwartz andy.schwartz at ORACLE.COM
Mon Apr 13 10:49:40 EDT 2009


Martin Marinschek wrote On 4/13/2009 12:40 AM ET:
>> Right.  If we provide standard APIs for tracking the disabled scripting
>> state (eg. FacesContext is/setClientScriptingDisabled()), then we could
>> simply leave it up to the app developer to figure out when to call
>> setClientScriptingDisabled(true), at least for the moment.  Of course,
>> it would be good to provide a standard mechanism for automatically
>> detecting the disabled scripting scenario, though I imagine this would
>> need to wait until 2.1.
>>     
>
> yes, probably - but the API methods might make sense to be added right
> now, if we also have the fallback-methods on the behaviours in place.
> We could then say that an implementation _may_ support a
> JavaScript-free fallback and JavaScript detection, and for the next
> version, we could change this to _must_.
>   

Okay, so just to recap...  If we are considering tackling this in 2.0 
(and, of course, I am not sure that this is even a possibility at this 
point), we would be adding the following new APIs:

- FacesContext.isClientScriptingDisabled().  Returns false by default.
- FacesContext.setClientScriptingDisabled().  The JSF implementation 
wouldn't necessarily call this in 2.0, though application or component 
developers could add their own JavaScript detection logic and call this.
- ClientBehavior.isFallbackAvailable(): May be called by renderers to 
detect whether the behavior provides fallback content.
- ClientBehavior.renderFallback(): May be called by renderers to render 
fallback content

We would also need to add similar methods on ClientBehaviorRenderer:

- ClientBehaviorRenderer.isFallbackAvailable(): returns false by default.
- ClientBehaviorRenderer.renderFallback(): does nothing by default.

And we would provide default implementations  of the new methods on 
ClientBehaviorBase:

- ClientBehaviorBase.isFallbackAvailable: Gets the 
ClientBehaviorRenderer, calls isFallbackAvailable().
- ClientBehaviorBase.renderFallback(): Gets the ClientBehaviorRenderer, 
calls renderFallback()

Think that's it... We wouldn't even have to provide much in the way of 
implementation, ie. we could enhance AjaxBehaviorRenderer to provide 
fallback content (eg. a "Reset" button), but we could also simply spec 
that this is implementation-specific, at least for 2.0.

If we postpone until 2.1, we would end up adding the same APIs, but 
instead of adding methods to ClientBehavior, presumably we'll need to 
add a FallbackClientBehavior sub-interface.

Andy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jsr-314-open-mirror/attachments/20090413/b3567be6/attachment.html 


More information about the jsr-314-open-mirror mailing list