You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by do...@apache.org on 2004/11/05 00:03:37 UTC
svn commit: rev 56627 - in incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags: . html rendering
Author: dolander
Date: Thu Nov 4 15:03:35 2004
New Revision: 56627
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/HtmlUtils.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/IScriptReporter.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Anchor.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Base.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Body.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Hidden.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Html.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/LabelBase.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptHeader.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextArea.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextBox.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/AbstractRenderAppender.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/StringBuilderRenderAppender.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/WriteRenderAppender.java
Log:
Moving the API to begin using the AbstractRenderAppender instead of StringBuilder.
Partial checkin
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/HtmlUtils.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/HtmlUtils.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/HtmlUtils.java Thu Nov 4 15:03:35 2004
@@ -19,6 +19,7 @@
import org.apache.beehive.netui.util.config.ConfigUtil;
import org.apache.beehive.netui.util.config.bean.NetuiConfigDocument;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import javax.servlet.jsp.JspException;
import java.io.UnsupportedEncodingException;
@@ -37,11 +38,10 @@
* with HTML entities. This method calls the overloaded method with <code>markupHTMLSpaceReturn</code>
* set to <code>false</code>.
* @param value The <code>String</code> value to be filtered and returned.
- * @return a new <code>String</code> value containing HTML entities
*/
- public static String filter(String value)
+ public static void filter(String value, AbstractRenderAppender results)
{
- return filter(value, false);
+ filter(value, results, false);
}
/**
@@ -51,13 +51,12 @@
* @param value The <code>String</code> value to be filtered and returned.
* @param markupHTMLSpaceReturn convert space characters and return characters
* to &nbsp; and <br /> marketup for html.
- * @return a new <code>String</code> value containing HTML entities
*/
- public static String filter(String value, boolean markupHTMLSpaceReturn)
+ public static void filter(String value, AbstractRenderAppender result, boolean markupHTMLSpaceReturn)
{
// if the value is null, return
if (value == null)
- return null;
+ return;
// convert the string
boolean needsToChange = false;
@@ -65,8 +64,8 @@
char c;
char prev = 0;
- StringBuilder result = new
- StringBuilder(numChars + (numChars / 5));
+ //StringBuilder result = new
+ // StringBuilder(numChars + (numChars / 5));
for (int i = 0; i < numChars; i++) {
c = value.charAt(i);
@@ -116,7 +115,6 @@
}
prev = c;
}
- return (needsToChange ? result.toString() : value);
}
public static String escapeEscapes(String val)
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/IScriptReporter.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/IScriptReporter.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/IScriptReporter.java Thu Nov 4 15:03:35 2004
@@ -17,6 +17,8 @@
*/
package org.apache.beehive.netui.tags;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+
import javax.servlet.jsp.PageContext;
/**
@@ -72,14 +74,13 @@
* This method will output all of the Script associated with the script reporter.
* @param sb The script is written into the provided StringBuilder. This value must not be null.
*/
- void writeScript(StringBuilder sb);
- void writeScript(PageContext pc);
+ void writeScript(AbstractRenderAppender sb);
/**
* This method will output all of the Script that appears inside the <head> tag.
* @param sb The script is written into the provided StringBuilder. This value must not be null.
*/
- void writeInitScript(StringBuilder sb);
+ void writeInitScript(AbstractRenderAppender sb);
/**
* This method indicates that the <code>writeScript</code> method has been called.
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Anchor.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Anchor.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Anchor.java Thu Nov 4 15:03:35 2004
@@ -23,10 +23,7 @@
import org.apache.beehive.netui.pageflow.util.URLRewriterService;
import org.apache.beehive.netui.tags.HtmlUtils;
import org.apache.beehive.netui.tags.IScriptReporter;
-import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
-import org.apache.beehive.netui.tags.rendering.AnchorTag;
-import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
-import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;
+import org.apache.beehive.netui.tags.rendering.*;
import org.apache.beehive.netui.util.Bundle;
import org.apache.beehive.netui.util.FileUtils;
import org.apache.beehive.netui.util.ParamHelper;
@@ -515,13 +512,14 @@
return reportAndExit(EVAL_PAGE);
// build the anchor into the results
- //StringBuilder results = new StringBuilder(32 + ((_text != null) ? _text.length() : 0));
StringBuilder script = new StringBuilder(32);
+ StringBuilderRenderAppender scriptWriter = new StringBuilderRenderAppender(script);
+ WriteRenderAppender writer = new WriteRenderAppender(pageContext);
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
TagRenderingBase trb = TagRenderingBase.Factory.getRendering(TagRenderingBase.ANCHOR_TAG, request);
- if (!createAnchorBeginTag(request, script, trb)) {
+ if (!createAnchorBeginTag(request, scriptWriter, trb, writer)) {
if (script.length() > 0)
ResponseUtils.write(pageContext, script.toString());
return reportAndExit(EVAL_PAGE);
@@ -531,7 +529,6 @@
write(_text);
assert(trb != null) : "trb is null";
- WriteRenderAppender writer = new WriteRenderAppender(pageContext);
trb.doEndTag(writer);
if (script.length() > 0)
@@ -550,8 +547,8 @@
* @return a boolean value indicating if an error occur creating the anchor.
* @throws JspException
*/
- protected final boolean createAnchorBeginTag(HttpServletRequest request, StringBuilder script,
- TagRenderingBase trb)
+ protected final boolean createAnchorBeginTag(HttpServletRequest request, AbstractRenderAppender script,
+ TagRenderingBase trb, AbstractRenderAppender writer)
throws JspException
{
int have = 0;
@@ -727,14 +724,11 @@
if (hasErrors())
return false;
- WriteRenderAppender writer = new WriteRenderAppender(pageContext);
trb.doStartTag(writer, _state);
//Emit javascript if this anchor needs to sumbit the form
if (_formSubmit && formAction != null) {
- String s = jsu.writeAnchorFormSubmit(getScriptReporter());
- if (s != null)
- script.append(s);
+ jsu.writeAnchorFormSubmit(getScriptReporter(),script);
}
if (idScript != null)
script.append(idScript);
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Base.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Base.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Base.java Thu Nov 4 15:03:35 2004
@@ -137,10 +137,13 @@
buf.append(request.getScheme());
buf.append("://");
buf.append(request.getServerName());
- if ("http".equals(request.getScheme()) && (80 == request.getServerPort())) {
+
+ String scheme = request.getScheme();
+ int port = request.getServerPort();
+ if ("http".equals(scheme) && (80 == port)) {
//Do nothing
}
- else if ("https".equals(request.getScheme()) && (443 == request.getServerPort())) {
+ else if ("https".equals(scheme) && (443 == port)) {
//Do nothing
}
else {
@@ -149,9 +152,6 @@
}
buf.append(request.getRequestURI());
_state.href = buf.toString();
-
- // we've set the HREF so reuse the string buffer
- buf.setLength(0);
// render the tag.
WriteRenderAppender writer = new WriteRenderAppender(pageContext);
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Body.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Body.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Body.java Thu Nov 4 15:03:35 2004
@@ -200,9 +200,7 @@
*/
public int doEndTag() throws JspException
{
- //StringBuilder results = new StringBuilder(64);
-
- // render the header...
+ WriteRenderAppender writer = new WriteRenderAppender(pageContext);
// if there were errors lets report them.
if (hasErrors()) {
@@ -221,13 +219,11 @@
// write out the script before the end tag.
if (sr.isInitScriptWritten()) {
- sr.writeScript(pageContext);
+ sr.writeScript(writer);
}
}
- WriteRenderAppender writer = new WriteRenderAppender(pageContext);
_br.doEndTag(writer);
- //write(results.toString());
// Evaluate the remainder of this page
localRelease();
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java Thu Nov 4 15:03:35 2004
@@ -806,19 +806,14 @@
String focusName = (String) _focusMap.get(_focus);
if (focusName != null) {
-
String formName = (_beanName != null) ? _beanName : _formId;
- String s = JavaScriptUtils.getFocusScript(formName, focusName);
- if (s != null)
- write(s);
+ JavaScriptUtils.getFocusScript(formName, focusName, writer);
}
}
if (_formSubmit) {
JavaScriptUtils jsu = getJavaScriptUtils(request);
- String s = jsu.writeAnchorFormSubmit(getScriptReporter());
- if (s != null)
- write(s);
+ jsu.writeAnchorFormSubmit(getScriptReporter(),writer);
}
// output any generated javascript
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Hidden.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Hidden.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Hidden.java Thu Nov 4 15:03:35 2004
@@ -18,10 +18,7 @@
package org.apache.beehive.netui.tags.html;
import org.apache.beehive.netui.tags.HtmlUtils;
-import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
-import org.apache.beehive.netui.tags.rendering.InputHiddenTag;
-import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
-import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;
+import org.apache.beehive.netui.tags.rendering.*;
import org.apache.beehive.netui.util.Bundle;
import javax.servlet.ServletRequest;
@@ -169,8 +166,12 @@
_state.name = name;
}
- if (_value != null)
- _state.value = HtmlUtils.filter(_value);
+ if (_value != null) {
+ StringBuilder sb = new StringBuilder(_value.length() + 16);
+ StringBuilderRenderAppender sbAppend = new StringBuilderRenderAppender(sb);
+ HtmlUtils.filter(_value,sbAppend);
+ _state.value = sb.toString();
+ }
// correct for null text here
if (_state.value == null)
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Html.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Html.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Html.java Thu Nov 4 15:03:35 2004
@@ -244,8 +244,6 @@
// String script = writeScriptBlock();
// ResponseUtils.write(pageContext, script);
- //StringBuilder sb = new StringBuilder(32);
-
if (!isInitScriptWritten()) {
String s = Bundle.getString("Tags_ClientReqScriptHeader", null);
registerTagError(s, null);
@@ -261,13 +259,13 @@
// the script can be written out by another tag, typically this would be the <body> tag.
// If it hasn't been written out, then we will right it out now.
+ WriteRenderAppender writer = new WriteRenderAppender(pageContext);
if (!isScriptWritten() && isInitScriptWritten()) {
- writeScript(pageContext);
+ writeScript(writer);
}
// close the html tag
write("\n");
- WriteRenderAppender writer = new WriteRenderAppender(pageContext);
_br.doEndTag(writer);
localRelease();
return EVAL_PAGE;
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java Thu Nov 4 15:03:35 2004
@@ -22,6 +22,7 @@
import org.apache.beehive.netui.tags.IHtmlAttrs;
import org.apache.beehive.netui.tags.IHtmlIdWriter;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
+import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
import org.apache.beehive.netui.util.Bundle;
import javax.servlet.ServletContext;
@@ -567,7 +568,10 @@
// without a scripRepoter we need to create the actual
// JavaScript that will be written out
JavaScriptUtils jsu = getJavaScriptUtils((HttpServletRequest) pageContext.getRequest());
- return jsu.getTagIdMapping(tagId, value);
+ StringBuilder sb = new StringBuilder(32);
+ StringBuilderRenderAppender writer = new StringBuilderRenderAppender(sb);
+ jsu.getTagIdMapping(tagId, value, writer);
+ return sb.toString();
}
/**
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageAnchor.java Thu Nov 4 15:03:35 2004
@@ -19,10 +19,7 @@
import org.apache.beehive.netui.pageflow.util.PageflowTagUtils;
import org.apache.beehive.netui.tags.IHtmlAccessable;
-import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
-import org.apache.beehive.netui.tags.rendering.ImageTag;
-import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
-import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;
+import org.apache.beehive.netui.tags.rendering.*;
import org.apache.beehive.netui.util.Bundle;
import javax.servlet.http.HttpServletRequest;
@@ -391,10 +388,9 @@
{
if (_rolloverImage != null && getJavaScriptAttribute(ONMOUSEOVER) == null) {
// cause the roll over script to be inserted
+ WriteRenderAppender writer = new WriteRenderAppender(pageContext);
JavaScriptUtils jsu = getJavaScriptUtils((HttpServletRequest) pageContext.getRequest());
- String s = jsu.writeRollover(getScriptReporter());
- if (s != null)
- write(s);
+ jsu.writeRollover(getScriptReporter(),writer);
}
return EVAL_BODY_BUFFERED;
@@ -416,13 +412,13 @@
HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
// build the anchor into the results
- //StringBuilder results = new StringBuilder(128);
StringBuilder script = new StringBuilder(128);
+ StringBuilderRenderAppender scriptWriter = new StringBuilderRenderAppender(script);
// render the anchor tag
WriteRenderAppender writer = new WriteRenderAppender(pageContext);
TagRenderingBase trb = TagRenderingBase.Factory.getRendering(TagRenderingBase.ANCHOR_TAG, req);
- if (!createAnchorBeginTag(req, script, trb)) {
+ if (!createAnchorBeginTag(req, scriptWriter, trb, writer)) {
reportErrors();
if (script.length() > 0)
write(script.toString());
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ImageButton.java Thu Nov 4 15:03:35 2004
@@ -261,9 +261,8 @@
if (_rolloverImage != null && getJavaScriptAttribute(ONMOUSEOVER) == null) {
// cause the roll over script to be inserted
JavaScriptUtils jsu = getJavaScriptUtils((HttpServletRequest) pageContext.getRequest());
- String s = jsu.writeRollover(getScriptReporter());
- if (s != null)
- write(s);
+ WriteRenderAppender writer = new WriteRenderAppender(pageContext);
+ jsu.writeRollover(getScriptReporter(),writer);
}
return EVAL_BODY_BUFFERED;
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java Thu Nov 4 15:03:35 2004
@@ -18,6 +18,7 @@
package org.apache.beehive.netui.tags.html;
import org.apache.beehive.netui.tags.IScriptReporter;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import java.io.Serializable;
import java.text.MessageFormat;
@@ -36,11 +37,11 @@
private boolean _writeLookupMethods = false;
private static ResourceBundle _bundle;
- public String writeAnchorFormSubmit(IScriptReporter scriptReporter)
+ public void writeAnchorFormSubmit(IScriptReporter scriptReporter, AbstractRenderAppender results)
{
// check to see if we have already written out the form submit
if (_anchorFormSubmit)
- return null;
+ return;
_anchorFormSubmit = true;
@@ -52,12 +53,10 @@
// script block into it.
if (scriptReporter != null) {
scriptReporter.addScriptFunction(s);
- return null;
+ return;
}
- StringBuilder sb = new StringBuilder(64);
- writeScriptBlock(sb, s);
- return sb.toString();
+ writeScriptBlock(results, s);
}
/**
@@ -76,52 +75,48 @@
/**
* this will write out the form focus script block
*/
- public static String getFocusScript(String formName, String fieldName)
+ public static void getFocusScript(String formName, String fieldName,AbstractRenderAppender results)
{
assert (formName != null);
assert (fieldName != null);
// @TODO: Need to escaping
String s = getString("setFocus", new Object[]{formName, fieldName});
- StringBuilder sb = new StringBuilder(192);
- writeScriptBlock(sb, s);
- return sb.toString();
+ writeScriptBlock(results, s);
}
/**
* This method will write out a tagId map entry for when there
* isn't a ScriptContainer defined.
*/
- public String getTagIdMapping(String tagId, String value)
+ public void getTagIdMapping(String tagId, String value,AbstractRenderAppender results)
{
String s = getString("singleIdMappingTable", new Object[]{
tagId, value});
String meths = writeNetuiNameFunctions(null);
if (meths != null)
s += meths;
- StringBuilder sb = new StringBuilder(256);
- writeScriptBlock(sb, s);
- return sb.toString();
+ writeScriptBlock(results, s);
}
/**
*
*/
- public String writeRollover(IScriptReporter scriptReporter)
+ public void writeRollover(IScriptReporter scriptReporter,AbstractRenderAppender results)
{
if (_rollover)
- return null;
+ return;
_rollover = true;
String s = getString("rollover", null);
if (scriptReporter != null) {
scriptReporter.addScriptFunction(s);
- return null;
+ return;
}
- StringBuilder sb = new StringBuilder(256);
- writeScriptBlock(sb, s);
- return sb.toString();
+ //StringBuilder sb = new StringBuilder(256);
+ writeScriptBlock(results, s);
+ return;
}
public String writeIdMap(IScriptReporter scriptRepoter, String entries)
@@ -171,13 +166,22 @@
* tag written into
* @param script the JavaScript block
*/
- public static void writeScriptBlock(StringBuilder results, String script)
+ public static void writeScriptBlock(AbstractRenderAppender results, String script)
{
assert(results != null);
+ writeScriptStart(results);
+ results.append(script);
+ writeScriptEnd(results);
+ }
+ public static void writeScriptStart(AbstractRenderAppender results)
+ {
results.append("\n\n<script language=\"JavaScript\" type=\"text/JavaScript\">\n");
results.append("<!--\n");
- results.append(script);
+ }
+
+ public static void writeScriptEnd(AbstractRenderAppender results)
+ {
results.append("-->\n");
results.append("</script>\n\n");
}
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java Thu Nov 4 15:03:35 2004
@@ -138,7 +138,7 @@
labelValue = formatText(labelValue);
if (!bypassEscape)
- write(filter(labelValue, _escapeWhiteSpace));
+ filter(labelValue, writer, _escapeWhiteSpace);
else
write(labelValue);
br.doEndTag(writer);
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/LabelBase.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/LabelBase.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/LabelBase.java Thu Nov 4 15:03:35 2004
@@ -18,6 +18,7 @@
package org.apache.beehive.netui.tags.html;
import org.apache.beehive.netui.tags.HtmlUtils;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import javax.servlet.jsp.JspException;
import java.util.ArrayList;
@@ -109,12 +110,14 @@
* @param markupHTMLSpaceReturn convert space characters and return characters
* to &nbsp; and <br /> marketup for html.
*/
- protected String filter(String value, boolean markupHTMLSpaceReturn)
+ protected void filter(String value, AbstractRenderAppender writer, boolean markupHTMLSpaceReturn)
{
- if (value.equals(" "))
- return " ";
+ if (value.equals(" ")) {
+ writer.append(" ");
+ return;
+ }
- return HtmlUtils.filter(value, markupHTMLSpaceReturn);
+ HtmlUtils.filter(value, writer, markupHTMLSpaceReturn);
}
/**
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java Thu Nov 4 15:03:35 2004
@@ -19,6 +19,8 @@
import org.apache.beehive.netui.tags.AbstractClassicTag;
import org.apache.beehive.netui.tags.IScriptReporter;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
@@ -173,7 +175,7 @@
* This method will output all of the Script associated with the script reporter.
* @param sb The script is written into the provided StringBuilder. This value must not be null.
*/
- public void writeScript(StringBuilder sb)
+ public void writeScript(AbstractRenderAppender sb)
{
assert(sb != null) : "The paramter 'sb' must not be null;";
@@ -181,21 +183,7 @@
addInitCode();
addAnchorRewriters();
}
- String script = writeScriptBlock();
- sb.append(script);
- _writeScript = true;
- }
-
- public void writeScript(PageContext pc)
- {
- assert(pc != null) : "The paramter 'sb' must not be null;";
-
- if (isRunAtClient()) {
- addInitCode();
- addAnchorRewriters();
- }
- String script = writeScriptBlock();
- write(script);
+ writeScriptBlock(sb);
_writeScript = true;
}
@@ -203,7 +191,7 @@
* This method will output all of the Script that appears inside the <head> tag.
* @param sb The script is written into the provided StringBuilder. This value must not be null.
*/
- public void writeInitScript(StringBuilder sb)
+ public void writeInitScript(AbstractRenderAppender sb)
{
defineNetUIScope(sb);
_writeInitScript = true;
@@ -278,16 +266,14 @@
{
// if there is a scopeId, then we need to create a div to contains
// everything
- StringBuilder sb = new StringBuilder(64);
if (_scopeId != null) {
- sb.append("<div");
- sb.append(" scopeId=\"");
- sb.append(_scopeId);
- sb.append("\" ");
- sb.append(">");
+ write("<div");
+ write(" scopeId=\"");
+ write(_scopeId);
+ write("\" ");
+ write(">");
}
- write(sb.toString());
return EVAL_BODY_INCLUDE;
}
@@ -303,8 +289,8 @@
addAnchorRewriters();
// writeout the script.
- String s = writeScriptBlock();
- write(s);
+ WriteRenderAppender writer = new WriteRenderAppender(pageContext);
+ writeScriptBlock(writer);
localRelease();
return EVAL_PAGE;
}
@@ -345,7 +331,7 @@
* variable that acts as a container for the JavaScript infrastructure supported by NetUI.
* @param sb A StringBuilder to write the new script block into
*/
- protected void defineNetUIScope(StringBuilder sb)
+ protected void defineNetUIScope(AbstractRenderAppender sb)
{
assert(sb != null) : "The paramater 'sb' must not be null";
@@ -393,14 +379,17 @@
/**
* This will write the script block.
- * @return String
*/
- protected String writeScriptBlock()
+ protected void writeScriptBlock(AbstractRenderAppender sb)
{
+ boolean script = false;
processIdMap();
- StringBuilder sb = new StringBuilder(256);
if (_codeBlocks != null && _codeBlocks.size() > 0) {
+ if (!script) {
+ JavaScriptUtils.writeScriptStart(sb);
+ script = true;
+ }
String s = JavaScriptUtils.getString("codeComment", null);
sb.append(s);
int cnt = _codeBlocks.size();
@@ -413,6 +402,10 @@
}
if (_funcBlocks != null && _funcBlocks.size() > 0) {
+ if (!script) {
+ JavaScriptUtils.writeScriptStart(sb);
+ script = true;
+ }
String s = JavaScriptUtils.getString("functionComment", null);
sb.append(s);
int cnt = _funcBlocks.size();
@@ -424,13 +417,9 @@
}
}
- if (sb.length() == 0)
- return "";
-
- StringBuilder out = new StringBuilder(256);
- JavaScriptUtils.writeScriptBlock(out, sb.toString());
- return out.toString();
- }
+ if (script)
+ JavaScriptUtils.writeScriptEnd(sb);
+ }
/////////////////////////////////// Private Support ////////////////////////////////////
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptHeader.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptHeader.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptHeader.java Thu Nov 4 15:03:35 2004
@@ -19,6 +19,7 @@
import org.apache.beehive.netui.tags.AbstractClassicTag;
import org.apache.beehive.netui.tags.IScriptReporter;
+import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
@@ -92,24 +93,24 @@
*/
public int doStartTag() throws JspException
{
- StringBuilder results = new StringBuilder(64);
+ //StringBuilder results = new StringBuilder(64);
IScriptReporter sr = getScriptReporter();
HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
// write out the initialization code.
+ WriteRenderAppender writer = new WriteRenderAppender(pageContext);
if (sr != null)
- sr.writeInitScript(results);
+ sr.writeInitScript(writer);
// write out all of the includes
// @todo: is there a type that we should be seting on this
// @todo: this should be found in the renderers.
if (_tree || _divPanel) {
- results.append("\n\t<script src=\"");
- results.append(req.getContextPath());
- results.append("/resources/javascript/netui-tree.js\"></script>");
+ write("\n\t<script src=\"");
+ write(req.getContextPath());
+ write("/resources/javascript/netui-tree.js\"></script>");
}
- write(results.toString());
return EVAL_BODY_INCLUDE;
}
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java Thu Nov 4 15:03:35 2004
@@ -721,26 +721,15 @@
if (_formatterError) {
fmtErrors = getErrorsFromBody();
}
-
- if (hasErrors()) {
- reportErrors();
- localRelease();
- return EVAL_PAGE;
- }
+ if (hasErrors())
+ return reportAndExit(EVAL_PAGE);
_state.disabled = isDisabled();
//Create hidden field for state tracking
String realName = doNaming();
-
- // create the string buffer for the results
- //StringBuilder results = new StringBuilder(128);
-
- if (hasErrors()) {
- reportErrors();
- localRelease();
- return EVAL_PAGE;
- }
+ if (hasErrors())
+ return reportAndExit(EVAL_PAGE);
// Only write out the hidden field if the select is not
// disabled. If it is disabled, then nothing will be posted
@@ -835,8 +824,6 @@
if (scriptId != null)
write(scriptId);
-
- //write(results.toString());
// Continue processing this page
localRelease();
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java Thu Nov 4 15:03:35 2004
@@ -181,7 +181,7 @@
br.doStartTag(writer, _state);
if (!bypassEscape)
- write(filter(labelValue, _escapeWhiteSpace));
+ filter(labelValue, writer, _escapeWhiteSpace);
else
write(labelValue);
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextArea.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextArea.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextArea.java Thu Nov 4 15:03:35 2004
@@ -205,10 +205,7 @@
String text = formatText(textObject);
if (text != null)
- text = HtmlUtils.filter(text);
- if (text == null)
- text = "";
- write(text);
+ HtmlUtils.filter(text,writer);
//results.append(text);
br.doEndTag(writer);
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextBox.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextBox.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/TextBox.java Thu Nov 4 15:03:35 2004
@@ -19,10 +19,7 @@
import org.apache.beehive.netui.tags.HtmlUtils;
import org.apache.beehive.netui.tags.IHtmlAccessable;
-import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
-import org.apache.beehive.netui.tags.rendering.InputTextTag;
-import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
-import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;
+import org.apache.beehive.netui.tags.rendering.*;
import org.apache.beehive.netui.util.Bundle;
import javax.servlet.ServletRequest;
@@ -263,7 +260,10 @@
String text = null;
if (textObject != null) {
text = formatText(textObject);
- text = HtmlUtils.filter(text);
+ StringBuilder sb = new StringBuilder(text.length() + 16);
+ StringBuilderRenderAppender sbAppend = new StringBuilderRenderAppender(sb);
+ HtmlUtils.filter(text,sbAppend);
+ text = sb.toString();
}
_state.value = text;
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/AbstractRenderAppender.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/AbstractRenderAppender.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/AbstractRenderAppender.java Thu Nov 4 15:03:35 2004
@@ -6,4 +6,5 @@
abstract public class AbstractRenderAppender
{
abstract public void append(String s);
+ abstract public void append(char c);
}
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/StringBuilderRenderAppender.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/StringBuilderRenderAppender.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/StringBuilderRenderAppender.java Thu Nov 4 15:03:35 2004
@@ -34,4 +34,9 @@
{
_sb.append(s);
}
+
+ public void append(char c)
+ {
+ _sb.append(c);
+ }
}
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/WriteRenderAppender.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/WriteRenderAppender.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/WriteRenderAppender.java Thu Nov 4 15:03:35 2004
@@ -1,13 +1,16 @@
package org.apache.beehive.netui.tags.rendering;
-import org.apache.struts.util.ResponseUtils;
import org.apache.beehive.netui.util.Bundle;
import org.apache.beehive.netui.util.logging.Logger;
+import org.apache.struts.util.RequestUtils;
+import org.apache.struts.util.ResponseUtils;
import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
+import java.io.IOException;
-public class WriteRenderAppender extends AbstractRenderAppender
+public class WriteRenderAppender extends AbstractRenderAppender
{
private static final Logger logger = Logger.getInstance(WriteRenderAppender.class);
@@ -17,19 +20,38 @@
{
}
- public WriteRenderAppender(PageContext pc) {
+ public WriteRenderAppender(PageContext pc)
+ {
_pc = pc;
}
- public void setPageContext(PageContext pc) {
+ public void setPageContext(PageContext pc)
+ {
_pc = pc;
}
- public void append(String s) {
+ public void append(String s)
+ {
try {
ResponseUtils.write(_pc, s);
}
catch (JspException e) {
+ logger.error(Bundle.getString("Tags_WriteException"), e);
+ }
+ }
+
+ /**
+ * This is a method not found on ResponseUtils and one that should be there.
+ * @param c
+ */
+ public void append(char c)
+ {
+ JspWriter writer = _pc.getOut();
+ try {
+ writer.print(c);
+ }
+ catch (IOException e) {
+ RequestUtils.saveException(_pc, e);
logger.error(Bundle.getString("Tags_WriteException"), e);
}
}