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}
}