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 2016/02/10 17:38:11 UTC

svn commit: r1729647 - in /myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago: internal/webapp/JsonResponseWriter.java internal/webapp/TobagoResponseWriterBase.java renderkit/html/HtmlElements.java

Author: lofwyr
Date: Wed Feb 10 16:38:11 2016
New Revision: 1729647

URL: http://svn.apache.org/viewvc?rev=1729647&view=rev
Log:
TOBAGO-1524: Use standard ajax mechanism
Progress:
 * Allow the writer to write other elements but the non standard HTML elements

Modified:
    myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java
    myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java
    myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java?rev=1729647&r1=1729646&r2=1729647&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java Wed Feb 10 16:38:11 2016
@@ -22,7 +22,6 @@ package org.apache.myfaces.tobago.intern
 import org.apache.myfaces.tobago.internal.util.FastStringWriter;
 import org.apache.myfaces.tobago.internal.util.JavascriptWriterUtils;
 import org.apache.myfaces.tobago.internal.util.StringUtils;
-import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
 import org.apache.myfaces.tobago.renderkit.html.MarkupLanguageAttributes;
 import org.apache.myfaces.tobago.util.FacesVersion;
 import org.slf4j.Logger;
@@ -100,30 +99,24 @@ public class JsonResponseWriter extends
   }
 
   @Override
-  protected void startElementInternal(final Writer writer, final HtmlElements name, final UIComponent currentComponent)
+  protected void startElementInternal(final Writer writer, final String name, final UIComponent currentComponent)
       throws IOException {
     setComponent(currentComponent);
     if (isStartStillOpen()) {
       writer.write(">");
     }
     writer.write("<");
-    writer.write(name.getValue());
-    setStartStillOpen(true);
+    writer.write(name);
   }
 
   @Override
-  protected void endElementInternal(final Writer writer, final HtmlElements name) throws IOException {
-    if (name.isVoid()) {
-        writer.write(">");
-    } else {
-      if (isStartStillOpen()) {
-        writer.write(">");
-      }
-      writer.write("</");
-      writer.write(name.getValue());
+  protected void endElementInternal(final Writer writer, final String name) throws IOException {
+    if (isStartStillOpen()) {
       writer.write(">");
     }
-    setStartStillOpen(false);
+    writer.write("</");
+    writer.write(name);
+    writer.write(">");
   }
 
   @Override

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java?rev=1729647&r1=1729646&r2=1729647&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/TobagoResponseWriterBase.java Wed Feb 10 16:38:11 2016
@@ -178,14 +178,14 @@ public abstract class TobagoResponseWrit
   }
 
   public void startElement(final String name, final UIComponent currentComponent) throws IOException {
-    startElementInternal(writer, HtmlElements.valueOf(name.toUpperCase()), currentComponent);
+    startElementInternal(writer, name, currentComponent);
   }
 
   public void startElement(final HtmlElements name) throws IOException {
-    startElementInternal(writer, name, null);
+    startElementInternal(writer, name.getValue(), null);
   }
 
-  protected void startElementInternal(final Writer writer, final HtmlElements name, final UIComponent currentComponent)
+  protected void startElementInternal(final Writer writer, final String name, final UIComponent currentComponent)
       throws IOException {
     this.component = currentComponent;
 //    closeOpenTag();
@@ -193,16 +193,26 @@ public abstract class TobagoResponseWrit
       writer.write("\n>");
     }
     writer.write("<");
-    writer.write(name.getValue());
+    writer.write(name);
     startStillOpen = true;
   }
 
   public void endElement(final String name) throws IOException {
-    endElementInternal(writer, HtmlElements.valueOf(name.toUpperCase()));
+    if (HtmlElements.isVoid(name)) {
+      closeEmptyTag();
+    } else {
+      endElementInternal(writer, name);
+    }
+    startStillOpen = false;
   }
 
   public void endElement(final HtmlElements name) throws IOException {
-    endElementInternal(writer, name);
+    if (name.isVoid()) {
+      closeEmptyTag();
+    } else {
+      endElementInternal(writer, name.getValue());
+    }
+    startStillOpen = false;
   }
 
   public void writeComment(final Object obj) throws IOException {
@@ -262,20 +272,16 @@ public abstract class TobagoResponseWrit
     }
   }
 
-  protected void endElementInternal(final Writer writer, final HtmlElements name) throws IOException {
-    if (name.isVoid()) {
-      closeEmptyTag();
-    } else {
+  protected void endElementInternal(final Writer writer, final String name) throws IOException {
       if (startStillOpen) {
         writer.write("\n>");
       }
       writer.write("</");
-      writer.write(name.getValue());
+      writer.write(name);
 //      writer.write("\n>"); // FIXME: this makes problems with Tidy
       writer.write(">");
-    }
-    startStillOpen = false;
   }
+
   protected abstract void closeEmptyTag() throws IOException;
 
   protected void writeAttributeInternal(

Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java?rev=1729647&r1=1729646&r2=1729647&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlElements.java Wed Feb 10 16:38:11 2016
@@ -20,6 +20,8 @@
 package org.apache.myfaces.tobago.renderkit.html;
 
 import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 
 public enum HtmlElements {
 
@@ -135,12 +137,22 @@ public enum HtmlElements {
   private final boolean voidElement;
   private final boolean inlineElement;
 
-  HtmlElements(String value, Qualifier... qualifiers) {
+  private static final Set<String> voids = new HashSet<String>();
+
+  HtmlElements(final String value, final Qualifier... qualifiers) {
     this.value = value;
     this.voidElement = Arrays.asList(qualifiers).contains(Qualifier.VOID);
     this.inlineElement = Arrays.asList(qualifiers).contains(Qualifier.INLINE);
   }
 
+  static {
+    for (final HtmlElements htmlElement : values()) {
+    if (htmlElement.isVoid()) {
+        voids.add(htmlElement.getValue());
+      }
+    }
+  }
+
   public String getValue() {
     return value;
   }
@@ -158,5 +170,9 @@ public enum HtmlElements {
     return inlineElement;
   }
 
+  public static boolean isVoid(final String name) {
+    return voids.contains(name);
+  }
+
   private enum Qualifier {VOID, INLINE}
 }