[richfaces-svn-commits] JBoss Rich Faces SVN: r4523 - in trunk: framework/api/src/main/java/org/ajax4jsf/renderkit and 12 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Wed Dec 5 19:37:42 EST 2007
Author: alexsmirnov
Date: 2007-12-05 19:37:42 -0500 (Wed, 05 Dec 2007)
New Revision: 4523
Added:
trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/UserResourceRenderer.java
trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
trunk/framework/impl/src/main/resources/META-INF/skins/NULL.skin.properties
trunk/ui/assembly/scripts.txt
trunk/ui/assembly/styles.txt
Modified:
trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java
trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResource.java
trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java
trunk/framework/api/src/main/java/org/richfaces/skin/Skin.java
trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java
trunk/framework/impl/src/main/java/org/ajax4jsf/org/w3c/tidy/PPrint.java
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/WebXml.java
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/nekko/NekkoParser.java
trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/ToXHTMLStream.java
trunk/samples/richfaces-demo/src/main/webapp/templates/include/header.xhtml
trunk/samples/skins/src/main/java/org/richfaces/SkinBean.java
trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/LoadResourceRendererBase.java
Log:
Fix http://jira.jboss.com/jira/browse/RF-851.
Create NULL skin ( without default stylesheet loading ).
Create configuration parameters for a scripts and styles loading strategy.
Modified: trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -1,6 +1,10 @@
package org.ajax4jsf.context;
+import java.io.BufferedReader;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@@ -9,6 +13,7 @@
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
+import org.ajax4jsf.Messages;
public abstract class AjaxContext {
@@ -56,22 +61,27 @@
public abstract void processHeadResources(FacesContext context)
throws FacesException;
- public abstract void encodeAjaxEnd(FacesContext context, UIComponent component)
- throws IOException;
+ public abstract void encodeAjaxEnd(FacesContext context,
+ UIComponent component) throws IOException;
- public abstract void encodeAjaxBegin(FacesContext context, UIComponent component)
- throws IOException;
+ public abstract void encodeAjaxBegin(FacesContext context,
+ UIComponent component) throws IOException;
- public abstract void renderAjaxRegion(FacesContext context, UIComponent component,
- boolean useFilterWriter) throws FacesException;
+ public abstract void renderAjaxRegion(FacesContext context,
+ UIComponent component, boolean useFilterWriter)
+ throws FacesException;
- public abstract void renderSubmittedAjaxRegion(FacesContext context, final boolean useFilterWriter);
+ public abstract void renderSubmittedAjaxRegion(FacesContext context,
+ final boolean useFilterWriter);
public abstract void renderSubmittedAjaxRegion(FacesContext context);
public static final String SCRIPTS_PARAMETER = "org.ajax4jsf.framework.HEADER_SCRIPTS";
public static final String STYLES_PARAMETER = "org.ajax4jsf.framework.HEADER_STYLES";
public static final String RESPONSE_DATA_KEY = "_ajax:data";
+ private static final String SERVICE_RESOURCE = "META-INF/services/"
+ + AjaxContext.class.getName();
+ private static final String DEFAULT_CONTEXT_CLASS = "org.ajax4jsf.context.AjaxContextImpl";
/**
* Get instance of current AJAX Context. Instance get by
@@ -81,39 +91,91 @@
* @return memento instance for current request
*/
public static AjaxContext getCurrentInstance() {
- FacesContext context = FacesContext.getCurrentInstance();
- return getCurrentInstance(context);
+ FacesContext context = FacesContext.getCurrentInstance();
+ return getCurrentInstance(context);
}
+ private static Map<ClassLoader, Class<AjaxContext>> ajaxContextClasses = new HashMap<ClassLoader, Class<AjaxContext>>();
+
/**
* Get instance of current AJAX Context. Instance get by
* {@link VariableResolver#resolveVariable(FacesContext, String)} for
* variable {@link AjaxContext#AJAX_CONTEXT_KEY}
*
* @param context
- * current FacesContext
+ * current FacesContext
* @return instance of AjaxContext.
*/
public static AjaxContext getCurrentInstance(FacesContext context) {
- if (null == context) {
- throw new NullPointerException("FacesContext is null");
+ if (null == context) {
+ throw new NullPointerException("FacesContext is null");
+ }
+ Map<String, Object> requestMap = context.getExternalContext()
+ .getRequestMap();
+ AjaxContext ajaxContext = (AjaxContext) requestMap
+ .get(AJAX_CONTEXT_KEY);
+ if (null == ajaxContext) {
+ // TODO Create default implementation.
+ // ajaxContext = new AjaxContext();
+ ClassLoader contextClassLoader = Thread.currentThread()
+ .getContextClassLoader();
+ Class<AjaxContext> clazz;
+ synchronized (ajaxContextClasses) {
+ clazz = ajaxContextClasses.get(contextClassLoader);
+ if (null == clazz) {
+ String factoryClassName = DEFAULT_CONTEXT_CLASS;
+ // Pluggable factories.
+ InputStream input = null; // loader.getResourceAsStream(SERVICE_RESOURCE);
+ input = contextClassLoader
+ .getResourceAsStream(SERVICE_RESOURCE);
+ // have services file.
+ if (input != null) {
+ try {
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(input));
+ factoryClassName = reader.readLine();
+
+ } catch (Exception e) {
+ throw new FacesException(
+ "Error to create AjaxContext Instance", e);
+ } finally {
+ try {
+ input.close();
+ } catch (IOException e) {
+ // Ignore
+ }
+ }
+ }
+ try {
+ clazz = (Class<AjaxContext>) Class.forName(
+ factoryClassName, false, contextClassLoader);
+ } catch (ClassNotFoundException e) {
+ throw new FacesException(
+ "AjaxContext implementation class "
+ + factoryClassName + " not found ", e);
+ }
+ ajaxContextClasses.put(contextClassLoader, clazz);
+
+ }
+ }
+ try {
+ ajaxContext = clazz.newInstance();
+ } catch (InstantiationException e) {
+ throw new FacesException(
+ "Error to create AjaxContext Instance", e);
+ } catch (IllegalAccessException e) {
+ throw new FacesException(
+ "No access to AjaxContext constructor", e);
+ }
+ requestMap.put(AJAX_CONTEXT_KEY, ajaxContext);
+ }
+ return ajaxContext;
}
- AjaxContext ajaxContext = (AjaxContext) context.getApplication()
- .getVariableResolver().resolveVariable(context,
- AJAX_CONTEXT_KEY);
- if (null == ajaxContext) {
- // TODO Create default implementation.
-// ajaxContext = new AjaxContext();
-// context.getExternalContext().getRequestMap().put(AJAX_CONTEXT_KEY,
-// ajaxContext);
- }
- return ajaxContext;
- }
public AjaxContext() {
super();
}
-
+
public abstract void release();
public abstract Map getResponseDataMap();
Added: trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/UserResourceRenderer.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/UserResourceRenderer.java (rev 0)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/UserResourceRenderer.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -0,0 +1,34 @@
+package org.ajax4jsf.renderkit;
+
+import java.util.LinkedHashSet;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
+/**
+ * Marker interface for a user-defined resources for a HTML HEAD tag.
+ * There resourses must be loaded AFTER all other components.
+ * @author asmirnov
+ *
+ */
+public interface UserResourceRenderer {
+
+ /**
+ * Return set of strings with URI's of nessesary scripts.
+ * Use linked set to preserve insertion order
+ * @param context - current faces context.
+ * @param component TODO
+ * @return - set of URI's or null
+ */
+ public LinkedHashSet getHeaderScripts(FacesContext context, UIComponent component);
+
+ /**
+ * Return set of strings with URI's of nessesary CSS styles.
+ * Use linked set to preserve insertion order.
+ * @param context - current faces context.
+ * @param component TODO
+ * @return - set of URI's or null
+ */
+ public LinkedHashSet getHeaderStyles(FacesContext context, UIComponent component);
+
+}
Property changes on: trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/UserResourceRenderer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Modified: trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResource.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResource.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResource.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -49,7 +49,6 @@
public static final int RESOURCE_URI_PREFIX_LENGTH = RESOURCE_URI_PREFIX.length();
public static final String DATA_SEPARATOR = "/DATA/";
static public final long DEFAULT_EXPIRE = 1000L * 60L * 60L * 24L;// 1 day
-
/**
* @param resourceContext current {@link ResourceContext}
* @return Returns the contentLength.
Modified: trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -38,6 +38,12 @@
public abstract class InternetResourceBuilder {
private static final Log log = LogFactory.getLog(InternetResourceBuilder.class);
+ public static final String LOAD_NONE = "NONE";
+ public static final String LOAD_ALL = "ALL";
+ public static final String COMMON_SCRIPT = "/org/richfaces/compressedScript.js";
+ public static final String COMMON_STYLE = "/org/richfaces/commonStyle.xcss";
+ public static final String LOAD_STYLE_STRATEGY_PARAM = "org.richfaces.LoadStyleStrategy";
+ public static final String LOAD_SCRIPT_STRATEGY_PARAM = "org.richfaces.LoadScriptStrategy";
/**
* Get application start time for check resources modification time.
Modified: trunk/framework/api/src/main/java/org/richfaces/skin/Skin.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/skin/Skin.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/api/src/main/java/org/richfaces/skin/Skin.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -240,6 +240,8 @@
public static final String generalLinkColor = "generalLinkColor";
public static final String panelTextColor = "panelTextColor";
+
+ public static final String loadStyleSheets = "loadStyleSheets";
// Preferable parameters
/**
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -60,7 +60,9 @@
import org.ajax4jsf.renderkit.AjaxRendererUtils;
import org.ajax4jsf.renderkit.HeaderResourceProducer;
import org.ajax4jsf.renderkit.RendererUtils;
+import org.ajax4jsf.renderkit.UserResourceRenderer;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.ajax4jsf.resource.InternetResourceBuilder;
import org.ajax4jsf.webapp.BaseFilter;
import org.ajax4jsf.webapp.FilterServletResponseWrapper;
import org.apache.commons.logging.Log;
@@ -356,13 +358,48 @@
.debug("Process component tree for collect used scripts and styles");
}
UIViewRoot root = context.getViewRoot();
- Set scripts = new LinkedHashSet();
- Set styles = new LinkedHashSet();
- RenderKitFactory rkFactory = (RenderKitFactory) FactoryFinder
- .getFactory(FactoryFinder.RENDER_KIT_FACTORY);
- RenderKit renderKit = rkFactory.getRenderKit(context, context
- .getViewRoot().getRenderKitId());
- processHeadResources(context, root, scripts, styles, renderKit);
+ ViewResources viewResources = new ViewResources();
+ try {
+ Skin skin = SkinFactory.getInstance().getSkin(
+ context);
+ // Set default style sheet for current skin.
+ String styleSheetUri = (String) skin.getParameter(context,
+ Skin.generalStyleSheet);
+ if(null != styleSheetUri){
+ String resourceURL = context.getApplication()
+ .getViewHandler().getResourceURL(context,
+ styleSheetUri);
+ viewResources.addStyle(resourceURL);
+ }
+ // For a "NULL" skin, do not collect components stylesheets
+ if("false".equals(skin.getParameter(context, Skin.loadStyleSheets))){
+ viewResources.setProcessStyles(false);
+ }
+ } catch (SkinNotFoundException e) {
+ log.warn("Current Skin is not found", e);
+ }
+ InternetResourceBuilder internetResourceBuilder = InternetResourceBuilder.getInstance();
+ // Check init parameters for a resources processing.
+ String scriptStrategy = externalContext.getInitParameter(InternetResourceBuilder.LOAD_SCRIPT_STRATEGY_PARAM);
+ if(null != scriptStrategy){
+ if(InternetResourceBuilder.LOAD_NONE.equals(scriptStrategy)){
+ viewResources.setProcessScripts(false);
+ } else if (InternetResourceBuilder.LOAD_ALL.equals(scriptStrategy)) {
+ viewResources.setProcessScripts(false);
+ viewResources.addScript(internetResourceBuilder.createResource(this, InternetResourceBuilder.COMMON_SCRIPT).getUri(context, null));
+ }
+ }
+ String styleStrategy = externalContext.getInitParameter(InternetResourceBuilder.LOAD_STYLE_STRATEGY_PARAM);
+ if(null != styleStrategy){
+ if(InternetResourceBuilder.LOAD_NONE.equals(styleStrategy)){
+ viewResources.setProcessStyles(false);
+ } else if (InternetResourceBuilder.LOAD_ALL.equals(styleStrategy)) {
+ viewResources.setProcessStyles(false);
+ viewResources.addStyle(internetResourceBuilder.createResource(this, InternetResourceBuilder.COMMON_STYLE).getUri(context, null));
+ }
+ }
+ viewResources.collect(context);
+ Set scripts = viewResources.getScripts();
if (scripts.size() > 0) {
if (log.isDebugEnabled()) {
StringBuffer buff = new StringBuffer(
@@ -375,29 +412,7 @@
}
requestMap.put(SCRIPTS_PARAMETER, scripts);
}
- // Set default style sheet for current skin.
- String styleSheetUri = null;
- try {
- styleSheetUri = (String) SkinFactory.getInstance().getSkin(
- context).getParameter(context,
- Skin.generalStyleSheet);
- } catch (SkinNotFoundException e) {
- log.warn("Current Skin is not found", e);
- }
- if (null != styleSheetUri) {
- String resourceURL = context.getApplication()
- .getViewHandler().getResourceURL(context,
- styleSheetUri);
- // TODO - some resources can be non-session aware, we
- // must
- // skip encoding for this case ?
- // But, in common case - static links not need session
- // info,
- // and dynamic resources perform encodings if nessesary
- // resourceURL =
- // context.getExternalContext().encodeResourceURL(resourceURL);
- styles.add(resourceURL);
- }
+ Set styles = viewResources.getStyles();
if (styles.size() > 0) {
if (log.isDebugEnabled()) {
StringBuffer buff = new StringBuffer(
@@ -419,66 +434,7 @@
}
}
- /**
- * Append nessesary scripts and styles from component ( if renderer
- * implements {@link HeaderResourceProducer}) and recursive process all
- * facets and childrens.
- *
- * @param context
- * TODO
- * @param root
- * @param scripts
- * @param styles
- * @param renderKit
- * TODO
- */
- private void processHeadResources(FacesContext context, UIComponent root,
- Set scripts, Set styles, RenderKit renderKit) {
- Renderer renderer = getRenderer(context, root, renderKit);
- if (null != renderer) {
- if (renderer instanceof HeaderResourceProducer) {
- HeaderResourceProducer producer = (HeaderResourceProducer) renderer;
- Set set = producer.getHeaderScripts(context, root);
- if (null != set) {
- scripts.addAll(set);
- }
- set = producer.getHeaderStyles(context, root);
- if (null != set) {
- styles.addAll(set);
- }
- }
- }
- for (Iterator iter = root.getFacets().values().iterator(); iter
- .hasNext();) {
- UIComponent child = (UIComponent) iter.next();
- processHeadResources(context, child, scripts, styles, renderKit);
- }
- for (Iterator iter = root.getChildren().iterator(); iter.hasNext();) {
- UIComponent child = (UIComponent) iter.next();
- processHeadResources(context, child, scripts, styles, renderKit);
- }
- }
- /**
- * Find renderer for given component.
- *
- * @param context
- * @param comp
- * @param renderKit
- * @return
- */
- private Renderer getRenderer(FacesContext context, UIComponent comp,
- RenderKit renderKit) {
-
- String rendererType = comp.getRendererType();
- if (rendererType != null) {
- return (renderKit.getRenderer(comp.getFamily(), rendererType));
- } else {
- return (null);
- }
-
- }
-
public void saveViewState(FacesContext context) throws IOException {
// TODO - for facelets environment, we need to remove transient
// components.
Added: trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java (rev 0)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -0,0 +1,166 @@
+/**
+ *
+ */
+package org.ajax4jsf.context;
+
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import javax.faces.FactoryFinder;
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
+import javax.faces.render.RenderKit;
+import javax.faces.render.RenderKitFactory;
+import javax.faces.render.Renderer;
+
+import org.ajax4jsf.renderkit.HeaderResourceProducer;
+import org.ajax4jsf.renderkit.UserResourceRenderer;
+
+/**
+ * @author asmirnov
+ *
+ */
+public class ViewResources {
+
+ LinkedHashSet scripts = new LinkedHashSet();
+ LinkedHashSet styles = new LinkedHashSet();
+ LinkedHashSet userScripts = new LinkedHashSet();
+ LinkedHashSet userStyles = new LinkedHashSet();
+ boolean processStyles = true;
+ boolean processScripts = true;
+ RenderKit renderKit = null;
+
+ public void collect(FacesContext context) {
+ UIViewRoot root = context.getViewRoot();
+ RenderKitFactory rkFactory = (RenderKitFactory) FactoryFinder
+ .getFactory(FactoryFinder.RENDER_KIT_FACTORY);
+ renderKit = rkFactory.getRenderKit(context, context
+ .getViewRoot().getRenderKitId());
+ processHeadResources(context, root);
+ styles.addAll(userStyles);
+ scripts.addAll(userScripts);
+ }
+
+ /**
+ * Append nessesary scripts and styles from component ( if renderer
+ * implements {@link HeaderResourceProducer}) and recursive process all
+ * facets and childrens.
+ *
+ * @param context
+ * TODO
+ * @param root
+ */
+ private void processHeadResources(FacesContext context, UIComponent root) {
+ Renderer renderer = getRenderer(context, root);
+ if (null != renderer) {
+ if ((processScripts || processStyles ) && renderer instanceof HeaderResourceProducer) {
+ HeaderResourceProducer producer = (HeaderResourceProducer) renderer;
+ if (processScripts) {
+ Set set = producer.getHeaderScripts(context, root);
+ if (null != set) {
+ scripts.addAll(set);
+ }
+
+ }
+ if (processStyles) {
+ Set set = producer.getHeaderStyles(context, root);
+ if (null != set) {
+ styles.addAll(set);
+ }
+
+ }
+ } else if (renderer instanceof UserResourceRenderer) {
+ UserResourceRenderer producer = (UserResourceRenderer) renderer;
+ Set set = producer.getHeaderScripts(context, root);
+ if (null != set) {
+ userScripts.addAll(set);
+ }
+ set = producer.getHeaderStyles(context, root);
+ if (null != set) {
+ userStyles.addAll(set);
+ }
+ }
+
+ }
+ for (Iterator iter = root.getFacets().values().iterator(); iter
+ .hasNext();) {
+ UIComponent child = (UIComponent) iter.next();
+ processHeadResources(context, child);
+ }
+ for (Iterator iter = root.getChildren().iterator(); iter.hasNext();) {
+ UIComponent child = (UIComponent) iter.next();
+ processHeadResources(context, child);
+ }
+ }
+
+ /**
+ * Find renderer for given component.
+ *
+ * @param context
+ * @param comp
+ * @param renderKit
+ * @return
+ */
+ private Renderer getRenderer(FacesContext context, UIComponent comp) {
+
+ String rendererType = comp.getRendererType();
+ if (rendererType != null) {
+ return (renderKit.getRenderer(comp.getFamily(), rendererType));
+ } else {
+ return (null);
+ }
+
+ }
+
+ /**
+ * @return the processStyles
+ */
+ public boolean isProcessStyles() {
+ return processStyles;
+ }
+
+ /**
+ * @param processStyles the processStyles to set
+ */
+ public void setProcessStyles(boolean processStyles) {
+ this.processStyles = processStyles;
+ }
+
+ /**
+ * @return the processScripts
+ */
+ public boolean isProcessScripts() {
+ return processScripts;
+ }
+
+ /**
+ * @param processScripts the processScripts to set
+ */
+ public void setProcessScripts(boolean processScripts) {
+ this.processScripts = processScripts;
+ }
+
+ /**
+ * @return the scripts
+ */
+ public Set getScripts() {
+ return scripts;
+ }
+
+ /**
+ * @return the styles
+ */
+ public Set getStyles() {
+ return styles;
+ }
+
+ public void addScript(String scriptUrl) {
+ scripts.add(scriptUrl);
+ }
+
+ public void addStyle(String styleUrl) {
+ styles.add(styleUrl);
+ }
+}
Property changes on: trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/org/w3c/tidy/PPrint.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/org/w3c/tidy/PPrint.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/org/w3c/tidy/PPrint.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -1047,13 +1047,13 @@
}
// look for ASP, Tango or PHP instructions for computed attribute value
- if (valueChars != null && valueChars.length >= 5 && valueChars[0] == '<')
- {
- if (valueChars[1] == '%' || valueChars[1] == '@' || (new String(valueChars, 0, 5)).equals("<?php"))
- {
- mode |= CDATA;
- }
- }
+// if (valueChars != null && valueChars.length >= 5 && valueChars[0] == '<')
+// {
+// if (valueChars[1] == '%' || valueChars[1] == '@' || (new String(valueChars, 0, 5)).equals("<?php"))
+// {
+// mode |= CDATA;
+// }
+// }
if (delim == 0)
{
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/WebXml.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/WebXml.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/WebXml.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -423,7 +423,7 @@
filterName));
}
String resourcePrefix = (String) context
- .getAttribute(RESOURCE_URI_PREFIX_PARAM);
+ .getInitParameter(RESOURCE_URI_PREFIX_PARAM);
if (null == resourcePrefix) {
resourcePrefix = RESOURCE_URI_PREFIX;
}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/nekko/NekkoParser.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/nekko/NekkoParser.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/nekko/NekkoParser.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -380,7 +380,7 @@
}
}
- if (isStateMarker(element, attributes)) {
+ if (stateMarkerLevel <0 && isStateMarker(element, attributes)) {
stateMarkerLevel = 0;
return;
}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/ToXHTMLStream.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/ToXHTMLStream.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/ToXHTMLStream.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -966,7 +966,7 @@
{
ElemContext elemContext = m_elemContext;
- final ElemDesc elemDesc = elemContext.m_elementDesc;
+ final ElemDesc elemDesc = elemContext.m_elementDesc != null?elemContext.m_elementDesc:m_dummy;
final int elemFlags = elemDesc.getFlags();
final boolean elemEmpty = (elemFlags & ElemDesc.EMPTY) != 0;
Added: trunk/framework/impl/src/main/resources/META-INF/skins/NULL.skin.properties
===================================================================
--- trunk/framework/impl/src/main/resources/META-INF/skins/NULL.skin.properties (rev 0)
+++ trunk/framework/impl/src/main/resources/META-INF/skins/NULL.skin.properties 2007-12-06 00:37:42 UTC (rev 4523)
@@ -0,0 +1,65 @@
+loadStyleSheets=false
+#Colors
+headerBackgroundColor=#D4CFC7
+headerGradientColor=#EDEAE6
+headerTextColor=#000000
+headerWeightFont=bold
+
+generalBackgroundColor=#FFFFFF
+generalTextColor=#000000
+generalSizeFont=11px
+generalFamilyFont=Arial, Verdana, sans-serif
+
+controlTextColor=#000000
+controlBackgroundColor=#ffffff
+additionalBackgroundColor=#F1EEE9
+
+shadowBackgroundColor=#000000
+shadowOpacity=1
+
+panelBorderColor=#C4C0B9
+subBorderColor=#ffffff
+
+tabBackgroundColor=#E3DED5
+tabDisabledTextColor=#B1ADA7
+
+trimColor=#DFDCD5
+
+tipBackgroundColor=\#FAE6B0
+tipBorderColor=\#E5973E
+
+selectControlColor=#E79A00
+
+
+generalLinkColor=#0078D0
+hoverLinkColor=#0090FF
+visitedLinkColor=#0090FF
+
+# Fonts
+headerSizeFont=11px
+headerFamilyFont=Arial, Verdana, sans-serif
+
+tabSizeFont=11
+tabFamilyFont=Arial, Verdana, sans-serif
+
+buttonSizeFont=11
+buttonFamilyFont=Arial, Verdana, sans-serif
+
+tableBackgroundColor=#FFFFFF
+tableFooterBackgroundColor=#cccccc
+tableSubfooterBackgroundColor=#f1f1f1
+tableBorderColor=#C4C0C9
+tableBorderWidth=1px
+
+
+#Calendar colors
+calendarWeekBackgroundColor=#F1EEE9
+
+calendarHolidaysBackgroundColor=#FFEBDA
+calendarHolidaysTextColor=#FF7800
+
+calendarCurrentBackgroundColor=#FF7800
+calendarCurrentTextColor=#FFEBDA
+
+calendarSpecBackgroundColor=#F1EEE9
+calendarSpecTextColor=#000000
Property changes on: trunk/framework/impl/src/main/resources/META-INF/skins/NULL.skin.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/samples/richfaces-demo/src/main/webapp/templates/include/header.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/templates/include/header.xhtml 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/samples/richfaces-demo/src/main/webapp/templates/include/header.xhtml 2007-12-06 00:37:42 UTC (rev 4523)
@@ -114,6 +114,12 @@
<f:param value="DEFAULT" name="s"/>
</h:outputLink>
</td>
+ <td>
+ <h:outputLink value="#{componentNavigator.currentComponent.contextRelativeDemoLocation}">
+ Null
+ <f:param value="NULL" name="s"/>
+ </h:outputLink>
+ </td>
<td class="control">
<rich:toggleControl for="skin_chooser" value="« less" />
</td>
Modified: trunk/samples/skins/src/main/java/org/richfaces/SkinBean.java
===================================================================
--- trunk/samples/skins/src/main/java/org/richfaces/SkinBean.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/samples/skins/src/main/java/org/richfaces/SkinBean.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -45,7 +45,8 @@
"japanCherry",
"ruby",
"wine",
- "plain"
+ "plain",
+ "NULL"
};
private String defaultSkin = "blueSky";
Added: trunk/ui/assembly/scripts.txt
===================================================================
--- trunk/ui/assembly/scripts.txt (rev 0)
+++ trunk/ui/assembly/scripts.txt 2007-12-06 00:37:42 UTC (rev 4523)
@@ -0,0 +1,33 @@
+./org/richfaces/renderkit/html/script/SpinnerScript.js
+./org/richfaces/renderkit/html/script/SliderScript.js
+./org/richfaces/renderkit/html/script/virtualEarth.js
+./org/richfaces/renderkit/html/script/processEffect.js
+./org/richfaces/renderkit/html/script/gmap.js
+./org/richfaces/renderkit/html/scripts/JQuerySpinBtn.js
+./org/richfaces/renderkit/html/scripts/calendar.js
+./org/richfaces/renderkit/html/scripts/tree-selection.js
+./org/richfaces/renderkit/html/scripts/scriptaculo.js
+./org/richfaces/renderkit/html/scripts/tooltip.js
+./org/richfaces/renderkit/html/scripts/tree.js
+./org/richfaces/renderkit/html/scripts/togglePanel.js
+./org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
+./org/richfaces/renderkit/html/scripts/menu.js
+./org/richfaces/renderkit/html/scripts/simple-draggable.js
+./org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/slider.js
+./org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/scriptaculous.js
+./org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/builder.js
+./org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/dragdrop.js
+./org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/unittest.js
+./org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/controls.js
+./org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/effects.js
+./org/richfaces/renderkit/html/scripts/panelbar.js
+./org/richfaces/renderkit/html/scripts/scrollable-data-table.js
+./org/richfaces/renderkit/html/scripts/panelMenu.js
+./org/richfaces/renderkit/html/scripts/simple-dropzone.js
+./org/richfaces/renderkit/html/scripts/modalPanelBorders.js
+./org/richfaces/renderkit/html/scripts/drag-indicator.js
+./org/richfaces/renderkit/html/scripts/tabPanel.js
+./org/richfaces/renderkit/html/scripts/suggestionbox.js
+./org/richfaces/renderkit/html/scripts/tree-item.js
+./org/richfaces/renderkit/html/scripts/tree-item-dnd.js
+./org/richfaces/renderkit/html/scripts/modalPanel.js
Property changes on: trunk/ui/assembly/scripts.txt
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/assembly/styles.txt
===================================================================
--- trunk/ui/assembly/styles.txt (rev 0)
+++ trunk/ui/assembly/styles.txt 2007-12-06 00:37:42 UTC (rev 4523)
@@ -0,0 +1,23 @@
+./org/richfaces/renderkit/html/css/toggleControl.xcss
+./org/richfaces/renderkit/html/css/menucomponents.xcss
+./org/richfaces/renderkit/html/css/tree.xcss
+./org/richfaces/renderkit/html/css/virtualEarth.xcss
+./org/richfaces/renderkit/html/css/spinner.xcss
+./org/richfaces/renderkit/html/css/dropdownmenu.xcss
+./org/richfaces/renderkit/html/css/tabPanel.xcss
+./org/richfaces/renderkit/html/css/calendar.xcss
+./org/richfaces/renderkit/html/css/panel.xcss
+./org/richfaces/renderkit/html/css/modalPanel.xcss
+./org/richfaces/renderkit/html/css/datascroller.xcss
+./org/richfaces/renderkit/html/css/panelbar.xcss
+./org/richfaces/renderkit/html/css/scrollable-data-table.xcss
+./org/richfaces/renderkit/html/css/slider.xcss
+./org/richfaces/renderkit/html/css/simpleTogglePanel.xcss
+./org/richfaces/renderkit/html/css/toolBar.xcss
+./org/richfaces/renderkit/html/css/table.xcss
+./org/richfaces/renderkit/html/css/dragIndicator.xcss
+./org/richfaces/renderkit/html/css/tooltip.xcss
+./org/richfaces/renderkit/html/css/gmap.xcss
+./org/richfaces/renderkit/html/css/panelMenu.xcss
+./org/richfaces/renderkit/html/css/suggestionbox.xcss
+./org/richfaces/renderkit/html/css/dataFilterSlider.xcss
Property changes on: trunk/ui/assembly/styles.txt
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/LoadResourceRendererBase.java
===================================================================
--- trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/LoadResourceRendererBase.java 2007-12-06 00:29:55 UTC (rev 4522)
+++ trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/LoadResourceRendererBase.java 2007-12-06 00:37:42 UTC (rev 4523)
@@ -34,7 +34,7 @@
* @author shura
*
*/
-public class LoadResourceRendererBase extends RendererBase implements HeaderResourceProducer {
+public class LoadResourceRendererBase extends RendererBase implements UserResourceRenderer {
private static final String SCRIPT_COMPONENT_FAMILY="org.ajax4jsf.LoadScript";
private static final String STYLE_COMPONENT_FAMILY="org.ajax4jsf.LoadStyle";
More information about the richfaces-svn-commits
mailing list