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 2017/09/14 08:58:29 UTC

[myfaces-tobago] 02/03: TOBAGO-1786: Selector to address UIStyle * change API

This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit 430caa48925db18d49eb3eea5231d3e37d4bef4b
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Wed Sep 13 19:58:16 2017 +0200

    TOBAGO-1786: Selector to address UIStyle
    * change API
---
 .../internal/renderkit/renderer/ProgressRenderer.java  |  2 +-
 .../internal/renderkit/renderer/StyleRenderer.java     |  6 ++++--
 .../myfaces/tobago/internal/util/StyleRenderUtils.java | 17 +++++++++++------
 .../tobago/internal/util/StyleRenderUtilsUnitTest.java | 18 ++++++------------
 4 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ProgressRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ProgressRenderer.java
index f86509f..c0f7a2c 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ProgressRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ProgressRenderer.java
@@ -78,7 +78,7 @@ public class ProgressRenderer extends RendererBase {
     final UIStyle style = (UIStyle) facesContext.getApplication()
         .createComponent(facesContext, UIStyle.COMPONENT_TYPE, RendererTypes.Style.name());
     style.setTransient(true);
-    style.setSelector(StyleRenderUtils.encodeSelector("#", clientId, ">.", BootstrapClass.PROGRESS_BAR.getName()));
+    style.setSelector(StyleRenderUtils.encodeIdSelector(clientId) + ">." + BootstrapClass.PROGRESS_BAR.getName());
     style.setWidth(new Measure(percent * 100, Measure.Unit.PERCENT));
     progress.getChildren().add(style);
 
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/StyleRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/StyleRenderer.java
index c048e7a..6a694a3 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/StyleRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/StyleRenderer.java
@@ -210,9 +210,11 @@ public class StyleRenderer extends RendererBase {
     writer.writeText(":");
     switch (name) {
       case backgroundImage:
-        writer.writeText("url('");
+        writer.writeText("url(");
+        writer.write("'");
         writer.writeText(value);
-        writer.writeText("')");
+        writer.write("'");
+        writer.writeText(")");
         break;
       default:
         writer.writeText(value);
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtils.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtils.java
index 8615875..070df5b 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtils.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtils.java
@@ -37,6 +37,9 @@ public class StyleRenderUtils {
     // to prevent instantiation
   }
 
+  /**
+   * PRELIMINARY
+   */
   public static void writeIdSelector(TobagoResponseWriter writer, String id) throws IOException {
 
     writer.writeText("#");
@@ -54,6 +57,9 @@ public class StyleRenderUtils {
     writer.writeText(chars, last, chars.length - last);
   }
 
+  /**
+   * PRELIMINARY
+   */
   // not using writeText, because > must not be encoded!
   public static void writeSelector(final TobagoResponseWriter writer, final String selector) throws IOException {
     if (selector.contains("<")) {
@@ -64,12 +70,11 @@ public class StyleRenderUtils {
     }
   }
 
-  public static String encodeSelector(String... selector) {
-    StringBuilder builder = new StringBuilder();
-    for (String s : selector) {
-      builder.append(s.replaceAll(":", "\\\\:"));
-    }
-    return builder.toString();
+  /**
+   * PRELIMINARY
+   */
+  public static String encodeIdSelector(String clientId) {
+    return "#" + clientId.replaceAll(":", "\\\\:");
   }
 
 }
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtilsUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtilsUnitTest.java
index 7a0518e..c4bfd3d 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtilsUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/StyleRenderUtilsUnitTest.java
@@ -30,22 +30,16 @@ import java.io.IOException;
 public class StyleRenderUtilsUnitTest extends AbstractTobagoTestBase {
 
   @Test
-  public void testEncodeSelector() {
-    Assert.assertEquals("", StyleRenderUtils.encodeSelector());
+  public void testEncodeIdSelector() {
+    Assert.assertEquals("#", StyleRenderUtils.encodeIdSelector(""));
 
-    Assert.assertEquals("", StyleRenderUtils.encodeSelector(""));
+    Assert.assertEquals("#tag", StyleRenderUtils.encodeIdSelector("tag"));
 
-    Assert.assertEquals("tag", StyleRenderUtils.encodeSelector("tag"));
+    Assert.assertEquals("#id\\:sub", StyleRenderUtils.encodeIdSelector("id:sub"));
 
-    Assert.assertEquals(".class", StyleRenderUtils.encodeSelector(".class"));
+    Assert.assertEquals("#id\\:sub\\:sub2", StyleRenderUtils.encodeIdSelector("id:sub:sub2"));
 
-    Assert.assertEquals("parent>child", StyleRenderUtils.encodeSelector("parent>child"));
-
-    Assert.assertEquals("#id\\:sub", StyleRenderUtils.encodeSelector("#id:sub"));
-
-    Assert.assertEquals("#id\\:sub\\:sub2", StyleRenderUtils.encodeSelector("#id:sub:sub2"));
-
-    Assert.assertEquals("#id\\:sub\\:sub2\\:sub3", StyleRenderUtils.encodeSelector("#id:sub:sub2:sub3"));
+    Assert.assertEquals("#id\\:sub\\:sub2\\:sub3", StyleRenderUtils.encodeIdSelector("id:sub:sub2:sub3"));
   }
 
   @Test

-- 
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.