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"));
+  }
 }