You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2011/04/20 00:41:38 UTC
svn commit: r1095230 - in
/myfaces/extensions/cdi/trunk/jee-modules/jsf-module:
api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/
impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/
Author: gpetracek
Date: Tue Apr 19 22:41:37 2011
New Revision: 1095230
URL: http://svn.apache.org/viewvc?rev=1095230&view=rev
Log:
EXTCDI-169 unified config implementation
Removed:
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/DefaultClientConfig.java
Modified:
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/ClientConfig.java
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/ClientConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/ClientConfig.java?rev=1095230&r1=1095229&r2=1095230&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/ClientConfig.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/ClientConfig.java Tue Apr 19 22:41:37 2011
@@ -18,7 +18,13 @@
*/
package org.apache.myfaces.extensions.cdi.jsf.api.config;
+import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
+import org.apache.myfaces.extensions.cdi.core.api.util.ClassUtils;
+
+import javax.enterprise.context.SessionScoped;
+import javax.inject.Inject;
import java.io.IOException;
+import java.io.InputStream;
import java.io.Serializable;
/**
@@ -30,8 +36,18 @@ import java.io.Serializable;
* This allows the 'customisation' of this html file to e.g.
* adopt the background colour to avoid screen flickering.
*/
-public interface ClientConfig extends Serializable
+@SessionScoped
+public class ClientConfig implements Serializable
{
+ private static final long serialVersionUID = 581351549574404793L;
+
+ private boolean javaScriptEnabled = true;
+
+ protected String windowHandlerHtml;
+
+ @Inject
+ private ProjectStage projectStage;
+
/**
* The location of the default windowhandler resource
*/
@@ -41,7 +57,10 @@ public interface ClientConfig extends Se
* Defaults to <code>true</code>.
* @return if the user has JavaScript enabled
*/
- boolean isJavaScriptEnabled();
+ public boolean isJavaScriptEnabled()
+ {
+ return this.javaScriptEnabled;
+ }
/**
* Set it to <code>false</code> if you don't like to use the
@@ -49,7 +68,10 @@ public interface ClientConfig extends Se
* the request will be returned directly.
* @param javaScriptEnabled
*/
- void setJavaScriptEnabled(boolean javaScriptEnabled);
+ public void setJavaScriptEnabled(boolean javaScriptEnabled)
+ {
+ this.javaScriptEnabled = javaScriptEnabled;
+ }
/**
* For branding the windowhandler page - e.g. change the backgroundcolour
@@ -58,7 +80,10 @@ public interface ClientConfig extends Se
* @return the location of the <i>windowhandler.html</i> resource
* which should be sent to the users browser.
*/
- String getWindowHandlerResourceLocation();
+ public String getWindowHandlerResourceLocation()
+ {
+ return DEFAULT_WINDOW_HANDLER_HTML_FILE;
+ }
/**
* This might return different windowhandlers based on user settings like
@@ -66,5 +91,32 @@ public interface ClientConfig extends Se
* @return a String containing the whole windowhandler.html file.
* @throws IOException
*/
- String getWindowHandlerHtml() throws IOException;
+ public String getWindowHandlerHtml() throws IOException
+ {
+ if (projectStage != ProjectStage.Development && windowHandlerHtml != null)
+ {
+ // use cached windowHandlerHtml except in Development
+ return windowHandlerHtml;
+ }
+
+ InputStream is = ClassUtils.getClassLoader(null).getResourceAsStream(getWindowHandlerResourceLocation());
+ StringBuffer sb = new StringBuffer();
+ try
+ {
+ byte[] buf = new byte[32 * 1024];
+ int bytesRead;
+ while ((bytesRead = is.read(buf)) != -1)
+ {
+ String sbuf = new String(buf);
+ sb.append(sbuf);
+ }
+ }
+ finally
+ {
+ is.close();
+ }
+
+ windowHandlerHtml = sb.toString();
+ return windowHandlerHtml;
+ }
}