You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2007/04/23 08:10:31 UTC
svn commit: r531346 - in /myfaces/tobago/trunk/core/src/main:
java/org/apache/myfaces/tobago/config/
java/org/apache/myfaces/tobago/context/
resources/org/apache/myfaces/tobago/config/
Author: bommel
Date: Sun Apr 22 23:10:30 2007
New Revision: 531346
URL: http://svn.apache.org/viewvc?view=rev&rev=531346
Log:
(TOBAGO-360) Allow definition of supported markup in tobago-config.xml
Modified:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/ThemeConfig.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfigParser.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfig.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfigImpl.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceManagerFactory.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeBuilder.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java
myfaces/tobago/trunk/core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config_1_0.dtd
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/ThemeConfig.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/ThemeConfig.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/ThemeConfig.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/ThemeConfig.java Sun Apr 22 23:10:30 2007
@@ -25,7 +25,7 @@
import org.apache.myfaces.tobago.context.ClientProperties;
import org.apache.myfaces.tobago.context.ResourceManager;
import org.apache.myfaces.tobago.context.ResourceManagerFactory;
-import org.apache.myfaces.tobago.renderkit.RendererBase;
+import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
@@ -114,7 +114,7 @@
private static String getTagName(Class clazz) {
String className = ClassUtils.getShortClassName(clazz);
- if (className.equals(ClassUtils.getShortClassName(RendererBase.class))) {
+ if (className.equals(ClassUtils.getShortClassName(LayoutableRendererBase.class))) {
return "Tobago";
} else if (className.endsWith("Renderer")) {
return className.substring(0, className.lastIndexOf("Renderer"));
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java Sun Apr 22 23:10:30 2007
@@ -20,6 +20,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.tobago.context.Theme;
+import org.apache.myfaces.tobago.context.RenderersConfig;
import javax.faces.context.FacesContext;
import java.util.ArrayList;
@@ -42,6 +43,7 @@
private List<MappingRule> mappingRules;
private boolean ajaxEnabled;
private Map<String, Theme> availableTheme;
+ private RenderersConfig renderersConfig;
public TobagoConfig() {
@@ -179,6 +181,14 @@
public void setAvailableThemes(Map<String, Theme> availableTheme) {
this.availableTheme = availableTheme;
+ }
+
+ public RenderersConfig getRenderersConfig() {
+ return renderersConfig;
+ }
+
+ public void setRenderersConfig(RenderersConfig renderersConfig) {
+ this.renderersConfig = renderersConfig;
}
}
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfigParser.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfigParser.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfigParser.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfigParser.java Sun Apr 22 23:10:30 2007
@@ -26,6 +26,9 @@
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.tobago.context.RenderersConfigImpl;
+import org.apache.myfaces.tobago.context.RendererConfig;
+import org.apache.myfaces.tobago.context.MarkupConfig;
import org.xml.sax.SAXException;
import javax.faces.FacesException;
@@ -82,6 +85,14 @@
// enable ajax
digester.addCallMethod("tobago-config/ajax-enabled", "setAjaxEnabled", 0);
+ digester.addObjectCreate("tobago-config/renderers", RenderersConfigImpl.class);
+ digester.addSetNext("tobago-config/renderers", "setRenderersConfig");
+ digester.addObjectCreate("tobago-config/renderers/renderer", RendererConfig.class);
+ digester.addSetNext("tobago-config/renderers/renderer", "addRenderer");
+ digester.addCallMethod("tobago-config/renderers/renderer/name", "setName", 0);
+ digester.addObjectCreate("tobago-config/renderers/renderer/supported-markup", MarkupConfig.class);
+ digester.addSetNext("tobago-config/renderers/renderer/supported-markup", "setMarkupConfig");
+ digester.addCallMethod("tobago-config/renderers/renderer/supported-markup/markup", "addMarkup" , 0);
return digester;
}
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfig.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfig.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfig.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfig.java Sun Apr 22 23:10:30 2007
@@ -17,14 +17,16 @@
* limitations under the License.
*/
+import java.util.Collection;
+
/*
- * Created by IntelliJ IDEA.
- * User: bommel
* Date: Sep 24, 2006
* Time: 12:32:35 PM
*/
public interface RenderersConfig {
boolean isMarkupSupported(String rendererName, String markup);
+
+ Collection<RendererConfig> getRendererConfigs();
}
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfigImpl.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfigImpl.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfigImpl.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/RenderersConfigImpl.java Sun Apr 22 23:10:30 2007
@@ -26,8 +26,6 @@
import java.io.Serializable;
/*
-* Created by IntelliJ IDEA.
-* User: bommel
* Date: Sep 24, 2006
* Time: 3:46:11 PM
*/
@@ -49,12 +47,16 @@
this.merged = merged;
}
- Collection<RendererConfig> getRendererConfigs() {
+ public Collection<RendererConfig> getRendererConfigs() {
return renderer.values();
}
public void addRenderer(RendererConfig rendererConfig) {
- if (!renderer.containsKey(rendererConfig.getName())) {
+ addRenderer(rendererConfig, false);
+ }
+
+ public void addRenderer(RendererConfig rendererConfig, boolean override) {
+ if (override || !renderer.containsKey(rendererConfig.getName())) {
renderer.put(rendererConfig.getName(), rendererConfig);
}
}
@@ -72,10 +74,10 @@
}
}
- void merge(RenderersConfigImpl renderersConfig) {
+ void merge(RenderersConfig renderersConfig, boolean override) {
Collection<RendererConfig> renderers = renderersConfig.getRendererConfigs();
for (RendererConfig rendererConfig : renderers) {
- addRenderer(rendererConfig);
+ addRenderer(rendererConfig, override);
}
}
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceManagerFactory.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceManagerFactory.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceManagerFactory.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceManagerFactory.java Sun Apr 22 23:10:30 2007
@@ -56,7 +56,7 @@
ResourceLocator resourceLocator = new ResourceLocator(
servletContext, resourceManager, themeBuilder);
resourceLocator.locate();
- Map<String, Theme> availableThemes = themeBuilder.resolveThemes();
+ Map<String, Theme> availableThemes = themeBuilder.resolveThemes(tobagoConfig.getRenderersConfig());
tobagoConfig.setAvailableThemes(availableThemes);
for (Theme theme : availableThemes.values()) {
tobagoConfig.addResourceDir(theme.getResourcePath());
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeBuilder.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeBuilder.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeBuilder.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeBuilder.java Sun Apr 22 23:10:30 2007
@@ -36,7 +36,7 @@
private List<ThemeImpl> availableThemes = new ArrayList<ThemeImpl>();
- public Map<String, Theme> resolveThemes() {
+ public Map<String, Theme> resolveThemes(RenderersConfig renderersConfig) {
Map<String, ThemeImpl> map = new HashMap<String, ThemeImpl>();
for (ThemeImpl theme : availableThemes) {
LOG.debug("theme from tobago-theme.xml files:" + theme.getName());
@@ -51,7 +51,7 @@
theme.resolveFallbacks();
}
for (ThemeImpl theme : availableThemes) {
- theme.resolveRendererConfig();
+ theme.resolveRendererConfig(renderersConfig);
}
Map<String, Theme> result = new HashMap<String, Theme>();
for (ThemeImpl theme : availableThemes) {
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java Sun Apr 22 23:10:30 2007
@@ -19,6 +19,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.tobago.config.TobagoConfig;
import java.util.List;
import java.util.ArrayList;
@@ -108,21 +109,24 @@
}
}
- public void resolveRendererConfig() {
+ public void resolveRendererConfig(RenderersConfig rendererConfigFromTobagoConfig) {
if (renderersConfig == null) {
renderersConfig = new RenderersConfigImpl();
}
if (!renderersConfig.isMerged()) {
ThemeImpl fallback = getFallback();
if (fallback != null) {
- fallback.resolveRendererConfig();
+ fallback.resolveRendererConfig(rendererConfigFromTobagoConfig);
RenderersConfigImpl fallbackRenderersConfig = fallback.getRenderersConfigImpl();
if (fallbackRenderersConfig != null) {
- renderersConfig.merge(fallbackRenderersConfig);
+ renderersConfig.merge(fallbackRenderersConfig, false);
if (LOG.isDebugEnabled()) {
LOG.debug("merge markupconfig from " + fallback.getName() + " for " + getName());
}
}
+ }
+ if (rendererConfigFromTobagoConfig != null) {
+ renderersConfig.merge(rendererConfigFromTobagoConfig, true);
}
renderersConfig.setMerged(true);
if (LOG.isDebugEnabled()) {
Modified: myfaces/tobago/trunk/core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config_1_0.dtd
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config_1_0.dtd?view=diff&rev=531346&r1=531345&r2=531346
==============================================================================
--- myfaces/tobago/trunk/core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config_1_0.dtd (original)
+++ myfaces/tobago/trunk/core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config_1_0.dtd Sun Apr 22 23:10:30 2007
@@ -19,7 +19,7 @@
<!ENTITY % Boolean "(true|false|yes|no)">
-<!ELEMENT tobago-config (theme-config, resource-dir*, load-theme-resources-from-classpath?, mapping-rule*, ajax-enabled?)>
+<!ELEMENT tobago-config (theme-config, resource-dir*, load-theme-resources-from-classpath?, mapping-rule*, ajax-enabled?, renderers?)>
<!ELEMENT theme-config (default-theme, supported-theme*)>
<!ELEMENT default-theme (#PCDATA)>
@@ -43,3 +43,8 @@
<!ELEMENT value (#PCDATA)>
<!ELEMENT ajax-enabled (#PCDATA)>
+
+<!ELEMENT renderers (renderer)*>
+<!ELEMENT renderer (name|supported-markup)*>
+<!ELEMENT supported-markup (markup)*>
+<!ELEMENT markup (#PCDATA)>