You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2011/05/23 19:13:28 UTC
svn commit: r1126599 - in /myfaces/tobago/trunk/tobago-core/src:
main/java/org/apache/myfaces/tobago/context/
main/java/org/apache/myfaces/tobago/internal/config/
test/java/org/apache/myfaces/tobago/context/
Author: lofwyr
Date: Mon May 23 17:13:28 2011
New Revision: 1126599
URL: http://svn.apache.org/viewvc?rev=1126599&view=rev
Log:
TOBAGO-979: The supported markups should be inherited from the parent theme.
Modified:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RendererConfig.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RenderersConfigImpl.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/ThemeParser.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java
myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/context/MarkupUnitTest.java
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java?rev=1126599&r1=1126598&r2=1126599&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java Mon May 23 17:13:28 2011
@@ -265,6 +265,24 @@ public final class Markup implements Ser
}
}
+ public boolean contains(String markup) {
+ if (markup == null) {
+ return false;
+ }
+ if (this == NULL) {
+ return this == Markup.valueOf(markup);
+ }
+ if (value != null) {
+ return value.equals(markup);
+ }
+ for (String value : values) {
+ if (value.equals(markup)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@Override
public String toString() {
if (value != null) {
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java?rev=1126599&r1=1126598&r2=1126599&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/context/ThemeImpl.java Mon May 23 17:13:28 2011
@@ -17,6 +17,7 @@ package org.apache.myfaces.tobago.contex
* limitations under the License.
*/
+import org.apache.myfaces.tobago.internal.config.RendererConfig;
import org.apache.myfaces.tobago.internal.config.RenderersConfig;
import org.apache.myfaces.tobago.internal.config.RenderersConfigImpl;
import org.slf4j.Logger;
@@ -165,8 +166,17 @@ public class ThemeImpl implements Theme,
}
public String toString() {
-// LOG.warn("Should not be called!", new Exception());
- return name;
+ StringBuilder builder = new StringBuilder();
+ builder.append("Theme: ");
+ builder.append(name);
+ if (renderersConfig != null) {
+ builder.append("\n");
+ for (RendererConfig config : renderersConfig.getRendererConfigs()) {
+ builder.append(config);
+ builder.append("\n");
+ }
+ }
+ return builder.toString();
}
public void setRenderersConfig(RenderersConfigImpl renderersConfig) {
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RendererConfig.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RendererConfig.java?rev=1126599&r1=1126598&r2=1126599&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RendererConfig.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RendererConfig.java Mon May 23 17:13:28 2011
@@ -17,21 +17,17 @@ package org.apache.myfaces.tobago.intern
* limitations under the License.
*/
-import org.apache.myfaces.tobago.context.MarkupConfig;
+import org.apache.myfaces.tobago.context.Markup;
import java.io.Serializable;
import java.util.Locale;
-/*
- * Date: Sep 25, 2006
- * Time: 10:54:19 AM
- */
public class RendererConfig implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
- private MarkupConfig markupConfig;
+ private Markup supportedMarkups = Markup.NULL;
public String getName() {
return name;
@@ -52,27 +48,25 @@ public class RendererConfig implements S
final RendererConfig that = (RendererConfig) o;
return name.equals(that.name);
-
}
public boolean contains(String markup) {
- return markupConfig.contains(markup);
+ return supportedMarkups.contains(markup);
}
public int hashCode() {
return name.hashCode();
}
- public MarkupConfig getMarkupConfig() {
- return markupConfig;
+ public void addSupportedMarkup(String markup) {
+ supportedMarkups = supportedMarkups.add(Markup.valueOf(markup));
}
- public void setMarkupConfig(MarkupConfig markupConfig) {
- this.markupConfig = markupConfig;
+ public void merge(RendererConfig rendererConfig) {
+ supportedMarkups = supportedMarkups.add(rendererConfig.supportedMarkups);
}
public String toString() {
- return "RendererConfig: " + getName() + " " + markupConfig;
+ return "RendererConfig: " + getName() + " " + supportedMarkups;
}
-
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RenderersConfigImpl.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RenderersConfigImpl.java?rev=1126599&r1=1126598&r2=1126599&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RenderersConfigImpl.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/RenderersConfigImpl.java Mon May 23 17:13:28 2011
@@ -35,7 +35,7 @@ public class RenderersConfigImpl impleme
private static final Logger LOG = LoggerFactory.getLogger(RenderersConfigImpl.class);
- private Map<String, RendererConfig> renderer = new HashMap<String, RendererConfig>();
+ private Map<String, RendererConfig> rendererMap = new HashMap<String, RendererConfig>();
private boolean merged = false;
@@ -48,16 +48,15 @@ public class RenderersConfigImpl impleme
}
public Collection<RendererConfig> getRendererConfigs() {
- return renderer.values();
+ return rendererMap.values();
}
public void addRenderer(RendererConfig rendererConfig) {
- addRenderer(rendererConfig, false);
- }
-
- public void addRenderer(RendererConfig rendererConfig, boolean override) {
- if (override || !renderer.containsKey(rendererConfig.getName())) {
- renderer.put(rendererConfig.getName(), rendererConfig);
+ final String name = rendererConfig.getName();
+ if (rendererMap.containsKey(name)) {
+ rendererMap.get(name).merge(rendererConfig);
+ } else {
+ rendererMap.put(name, rendererConfig);
}
}
@@ -65,7 +64,7 @@ public class RenderersConfigImpl impleme
if (LOG.isDebugEnabled()) {
LOG.debug("calling isMarkupSupported('{}', '{}')", rendererName, markup);
}
- RendererConfig rendererConfig = renderer.get(rendererName);
+ RendererConfig rendererConfig = rendererMap.get(rendererName);
if (rendererConfig != null) {
return rendererConfig.contains(markup);
} else {
@@ -77,11 +76,11 @@ public class RenderersConfigImpl impleme
public void merge(RenderersConfig renderersConfig, boolean override) {
Collection<RendererConfig> renderers = renderersConfig.getRendererConfigs();
for (RendererConfig rendererConfig : renderers) {
- addRenderer(rendererConfig, override);
+ addRenderer(rendererConfig);
}
}
public String toString() {
- return renderer.toString();
+ return rendererMap.toString();
}
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/ThemeParser.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/ThemeParser.java?rev=1126599&r1=1126598&r2=1126599&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/ThemeParser.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/ThemeParser.java Mon May 23 17:13:28 2011
@@ -19,7 +19,6 @@ package org.apache.myfaces.tobago.intern
import org.apache.commons.digester.Digester;
import org.apache.commons.io.IOUtils;
-import org.apache.myfaces.tobago.context.MarkupConfig;
import org.apache.myfaces.tobago.context.ThemeImpl;
import org.apache.myfaces.tobago.context.ThemeResources;
import org.apache.myfaces.tobago.context.ThemeScript;
@@ -62,9 +61,7 @@ public class ThemeParser {
digester.addObjectCreate("tobago-theme/renderers/renderer", RendererConfig.class);
digester.addSetNext("tobago-theme/renderers/renderer", "addRenderer");
digester.addCallMethod("tobago-theme/renderers/renderer/name", "setName", 0);
- digester.addObjectCreate("tobago-theme/renderers/renderer/supported-markup", MarkupConfig.class);
- digester.addSetNext("tobago-theme/renderers/renderer/supported-markup", "setMarkupConfig");
- digester.addCallMethod("tobago-theme/renderers/renderer/supported-markup/markup", "addMarkup", 0);
+ digester.addCallMethod("tobago-theme/renderers/renderer/supported-markup/markup", "addSupportedMarkup", 0);
digester.addObjectCreate("tobago-theme/resources", ThemeResources.class);
digester.addSetProperties("tobago-theme/resources");
digester.addSetNext("tobago-theme/resources", "addResources");
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java?rev=1126599&r1=1126598&r2=1126599&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java Mon May 23 17:13:28 2011
@@ -19,7 +19,6 @@ package org.apache.myfaces.tobago.intern
import org.apache.commons.digester.Digester;
import org.apache.commons.io.IOUtils;
-import org.apache.myfaces.tobago.context.MarkupConfig;
import org.apache.myfaces.tobago.context.ThemeImpl;
import org.apache.myfaces.tobago.context.ThemeResources;
import org.apache.myfaces.tobago.context.ThemeScript;
@@ -41,6 +40,7 @@ public class TobagoConfigParser {
private static final String TOBAGO_CONFIG_DTD_1_0_29 = "/org/apache/myfaces/tobago/config/tobago-config-1.0.29.dtd";
private static final String TOBAGO_CONFIG_DTD_1_0_30 = "/org/apache/myfaces/tobago/config/tobago-config-1.0.30.dtd";
private static final String TOBAGO_CONFIG_DTD_1_0_34 = "/org/apache/myfaces/tobago/config/tobago-config-1.0.34.dtd";
+ @Deprecated
private static final String TOBAGO_CONFIG_DTD_1_5 = "/org/apache/myfaces/tobago/config/tobago-config-1.5.dtd";
private static final String TOBAGO_CONFIG_XSD_1_5 = "/org/apache/myfaces/tobago/config/tobago-config-1.5.xsd";
@@ -120,9 +120,7 @@ public class TobagoConfigParser {
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);
+ digester.addCallMethod("tobago-config/renderers/renderer/supported-markup/markup", "addSupportedMarkup", 0);
// theme definition
digester.addObjectCreate("tobago-config/theme-definitions/theme-definition", ThemeImpl.class);
@@ -138,12 +136,9 @@ public class TobagoConfigParser {
"tobago-config/theme-definitions/theme-definition/renderers/renderer", RendererConfig.class);
digester.addSetNext("tobago-config/theme-definitions/theme-definition/renderers/renderer", "addRenderer");
digester.addCallMethod("tobago-config/theme-definitions/theme-definition/renderers/renderer/name", "setName", 0);
- digester.addObjectCreate(
- "tobago-config/theme-definitions/theme-definition/renderers/renderer/supported-markup", MarkupConfig.class);
- digester.addSetNext("tobago-config/theme-definitions/theme-definition/renderers/renderer/supported-markup",
- "setMarkupConfig");
digester.addCallMethod(
- "tobago-config/theme-definitions/theme-definition/renderers/renderer/supported-markup/markup", "addMarkup", 0);
+ "tobago-config/theme-definitions/theme-definition/renderers/renderer/supported-markup/markup",
+ "addSupportedMarkup", 0);
digester.addObjectCreate("tobago-config/theme-definitions/theme-definition/resources", ThemeResources.class);
digester.addSetProperties("tobago-config/theme-definitions/theme-definition/resources");
digester.addSetNext("tobago-config/theme-definitions/theme-definition/resources", "addResources");
Modified: myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/context/MarkupUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/context/MarkupUnitTest.java?rev=1126599&r1=1126598&r2=1126599&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/context/MarkupUnitTest.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/context/MarkupUnitTest.java Mon May 23 17:13:28 2011
@@ -112,4 +112,16 @@ public class MarkupUnitTest {
Assert.assertSame(b, b.remove(a));
Assert.assertSame(ab, ab.remove(c));
}
+
+ @Test
+ public void testContains() {
+ Markup a = Markup.valueOf("a");
+ Markup ab = Markup.valueOf("a,b");
+ Assert.assertFalse(Markup.NULL.contains("a"));
+ Assert.assertTrue(a.contains("a"));
+ Assert.assertFalse(a.contains("b"));
+ Assert.assertTrue(ab.contains("a"));
+ Assert.assertTrue(ab.contains("b"));
+ Assert.assertFalse(ab.contains("c"));
+ }
}