Author: jkuhnert
Date: Sat Nov 25 12:29:32 2006
New Revision: 479189
URL: http://svn.apache.org/viewvc?view=rev&rev=479189
Log:
Bug fixes for handling dynamic updates within a For component.
-) IComponent.peekClientId() / FormBehavior.peekClientId(IFormComponent)
methods added so that
DojoAjaxResponseBuilder can properly determine if a component was requested to
be updated based on the client
id that it ~will~ render with.
-) Core javascript html fragment updating logic changed to apply style/class
attributes to elements being updated.
-) For component refactored to properly interact with ComponentRenderWorker
chain on each iteration of render
as well as the generateClientId semantics. This area still needs more
refactoring as found in the TODO comments
of the ForBean class.
-) AbstractLinkComponent and associated areas re-factored so that the clientId
attribute is written ~before~ generating
the url so that the clientId is correctly known (and generated on the fly) when
needed. Again, another area
that smells of needing refactoring. Things are becoming slightly too fragile if
people have to think about
these kinds of semantics too much.
Modified:
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/Home.html
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/LocaleList.java
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Border.html
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/ForBean.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js
tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/html.js
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLibrary.xml
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLocalization.xml
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestOutputEncoding.xml
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestSimple.xml
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestTemplateEncoding.xml
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestWMLComponents.xml
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DefaultLinkRendererTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java
Modified:
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/Home.html
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/Home.html?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/Home.html
(original)
+++
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/Home.html
Sat Nov 25 12:29:32 2006
@@ -56,7 +56,7 @@
<a jwcid="@DirectLink" listener="listener:showDialog"
async="true" updateComponents="testDialog">Show Dialog</a><br/>
-<div jwcid="[EMAIL PROTECTED]" style="display:none" hidden="ognl:dlHidden" >
+<div jwcid="[EMAIL PROTECTED]" hidden="ognl:dlHidden" >
<p style="display:block;background:#ffffff;width:20em;">
This is content hidden in a Dialog.
Modified:
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
(original)
+++
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/context/LocaleList.html
Sat Nov 25 12:29:32 2006
@@ -18,6 +18,14 @@
.localeList a { color: #fff;}
+ .selected {
+ background: #efefef;
+ }
+
+ .selected a {
+ color: #000;
+ }
+
.detail {
clear:left;
display:block;
@@ -62,9 +70,15 @@
<span jwcid="@Insert" value="ognl:status" />
</div>
-<div class="localeList" jwcid="[EMAIL PROTECTED]" source="ognl:locales"
value="ognl:currLocale">
- <a jwcid="@DirectLink" listener="listener:selectLocale"
parameters="ognl:currLocale""
- updateComponents="localeDetail"><span jwcid="@Insert"
value="ognl:currLocale.toString()" /></a>
+<div class="ognl:(selected != null and currLocale.toString() ==
selected.toString()) ? 'selected localeList' : 'localeList'"
+ jwcid="[EMAIL PROTECTED]"
+ source="ognl:locales" value="ognl:currLocale">
+
+ <a jwcid="[EMAIL PROTECTED]" listener="listener:selectLocale"
parameters="ognl:{currLocale.language, currLocale.country, currLocale.variant}""
+
updateComponents="ognl:{'localeDetail',page.components.localeList.clientId}">
+ <span jwcid="@Insert" value="ognl:currLocale.toString()" />
+ </a>
+
</div>
<br/>
Modified:
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/LocaleList.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/LocaleList.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/LocaleList.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/LocaleList.java
Sat Nov 25 12:29:32 2006
@@ -42,12 +42,12 @@
return Locale.getAvailableLocales();
}
- public void selectLocale(Locale locale)
+ public void selectLocale(String language, String country, String variant)
{
- setSelected(locale);
+ setSelected(new Locale(language, country, variant));
}
- @EventListener(targets = "localeLink", events = "onmouseover")
+ @EventListener(targets = {"localeLink"}, events = "onmousedown")
public void localeHovered(BrowserEvent event)
{
setStatus(event.toString());
Modified:
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Border.html
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Border.html?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Border.html
(original)
+++
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Border.html
Sat Nov 25 12:29:32 2006
@@ -1,5 +1,5 @@
<html jwcid="@Shell" stylesheet="asset:stylesheet"
- title="message:window.title" browserLogLevel="DEBUG"
consoleEnabled="true">
+ title="message:window.title" browserLogLevel="DEBUG"
consoleEnabled="true" debugEnabled="false">
<body jwcid="@Body">
<table class="tabs" cellspacing="0" border="0">
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
Sat Nov 25 12:29:32 2006
@@ -445,6 +445,21 @@
public abstract void setClientId(String id);
+ /**
+ * [EMAIL PROTECTED]
+ */
+ public String peekClientId()
+ {
+ if (getPage() == null)
+ return null;
+
+ String id = getSpecifiedId();
+ if (id == null)
+ return null;
+
+ return
getPage().getRequestCycle().peekUniqueId(TapestryUtils.convertTapestryIdToNMToken(id));
+ }
+
protected void generateClientId()
{
String id = getSpecifiedId();
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java
Sat Nov 25 12:29:32 2006
@@ -94,7 +94,15 @@
*/
String getElementId(IFormComponent component, String baseId);
-
+
+ /**
+ * Used internally to "peek" at what the next generated client id will be
for the
+ * given component when it renders. Similar to the logic found in [EMAIL
PROTECTED] IRequestCycle#peekUniqueId(String)}.
+ *
+ * @return The next possible client ID for the component.
+ */
+ String peekClientId(IFormComponent component);
+
/**
* Returns true if the form is rewinding (meaning, the form was the
subject of the request
* cycle).
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java
Sat Nov 25 12:29:32 2006
@@ -205,6 +205,14 @@
void setClientId(String id);
/**
+ * Used internally to "peek" at what the next generated client id will be
for this
+ * component when it renders. Similar to the logic found in [EMAIL
PROTECTED] IRequestCycle#peekUniqueId(String)}.
+ *
+ * @return The next possible client ID for this component.
+ */
+ String peekClientId();
+
+ /**
* Though most component implementations ignore the specific html tag used
* to reference a component, this value may be used for those components
that
* do wish to use the same tag that was provided when rendering a
component.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/ForBean.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/ForBean.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/ForBean.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/components/ForBean.java
Sat Nov 25 12:29:32 2006
@@ -34,6 +34,7 @@
import org.apache.tapestry.services.ComponentRenderWorker;
import org.apache.tapestry.services.DataSqueezer;
import org.apache.tapestry.services.ExpressionEvaluator;
+import org.apache.tapestry.services.ResponseBuilder;
/**
* @author mb
@@ -95,6 +96,8 @@
public abstract ComponentRenderWorker getRenderWorker();
+ public abstract ResponseBuilder getResponseBuilder();
+
/**
* Gets the source binding and iterates through its values. For each, it
updates the value
* binding and render's its wrapped elements.
@@ -130,6 +133,8 @@
boolean render = !cycleRewinding && (getRenderTag() ||
HiveMind.isNonBlank(getElement()));
+ IMarkupWriter loopWriter = writer;
+
// Perform the iterations
try
{
@@ -145,20 +150,27 @@
updateOutputParameters();
// Render component
+ // swap out writers if necessary
+
+ if (getResponseBuilder().isDynamic()
+ && getResponseBuilder().contains(this)) {
+
+ loopWriter = getResponseBuilder().getWriter(getClientId(),
ResponseBuilder.ELEMENT_TYPE);
+ }
if (render) {
- writer.begin(element);
+ loopWriter.begin(element);
- renderInformalParameters(writer, cycle);
- renderIdAttribute(writer, cycle);
+ renderInformalParameters(loopWriter, cycle);
+ renderIdAttribute(loopWriter, cycle);
}
- renderBody(writer, cycle);
+ renderBody(loopWriter, cycle);
if (render) {
- writer.end(element);
+ loopWriter.end(element);
}
_index++;
@@ -172,6 +184,10 @@
getRenderWorker().renderComponent(cycle, this);
generateClientId();
+
+ // set loopWriter back to original as the client ids/ etc
change on each loop
+
+ loopWriter = writer;
}
}
finally
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java
Sat Nov 25 12:29:32 2006
@@ -161,6 +161,21 @@
}
/**
+ * [EMAIL PROTECTED]
+ */
+ public String peekClientId()
+ {
+ if (getPage() == null)
+ return null;
+
+ IForm form = (IForm)
getPage().getRequestCycle().getAttribute(TapestryUtils.FORM_ATTRIBUTE);
+ if (form == null)
+ return null;
+
+ return form.peekClientId(this);
+ }
+
+ /**
* Returns false. Subclasses that might be required must override this
method. Typically, this
* involves checking against the component's validators.
*
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java
Sat Nov 25 12:29:32 2006
@@ -145,7 +145,15 @@
{
return _formSupport.getElementId(component, baseId);
}
-
+
+ /**
+ * [EMAIL PROTECTED]
+ */
+ public String peekClientId(IFormComponent component)
+ {
+ return _formSupport.peekClientId(component);
+ }
+
/**
* Returns the name generated for the form. This is used to faciliate
components that write
* JavaScript and need to access the form or its contents.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
Sat Nov 25 12:29:32 2006
@@ -427,6 +427,15 @@
return result;
}
+ public String peekClientId(IFormComponent comp)
+ {
+ String id = comp.getSpecifiedId();
+ if (id == null)
+ return null;
+
+ return _elementIdAllocator.peekNextId(id);
+ }
+
public boolean isRewinding()
{
return _rewinding;
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java
Sat Nov 25 12:29:32 2006
@@ -96,9 +96,9 @@
protected void cleanupAfterRender(IRequestCycle cycle)
{
- _eventHandlers = null;
-
super.cleanupAfterRender(cycle);
+
+ _eventHandlers = null;
}
protected void writeEventHandlers(IMarkupWriter writer, IRequestCycle
cycle)
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DefaultLinkRenderer.java
Sat Nov 25 12:29:32 2006
@@ -64,6 +64,8 @@
else
writer.beginEmpty(getElement());
+ linkComponent.renderAdditionalAttributes(writer, cycle);
+
writer.attribute(getUrlAttribute(), constructURL(linkComponent,
cycle));
@@ -89,7 +91,7 @@
afterBodyRender(writer, cycle, linkComponent);
- linkComponent.renderAdditionalAttributes(writer, cycle);
+ // linkComponent.renderAdditionalAttributes(writer, cycle);
if (hasBody) {
wrappedWriter.close();
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
Sat Nov 25 12:29:32 2006
@@ -280,7 +280,7 @@
{
IMarkupWriter writer = getWriter(ResponseBuilder.BODY_SCRIPT,
ResponseBuilder.SCRIPT_TYPE);
- writer.printRaw("\n\nvar " + preloadName + " = new Array();\n");
+ writer.printRaw("\nvar " + preloadName + " = new Array();\n");
writer.printRaw("if (document.images)\n");
writer.printRaw("{\n");
@@ -331,9 +331,9 @@
}
if (IComponent.class.isInstance(render)
- && contains((IComponent)render))
+ && contains((IComponent)render,
((IComponent)render).peekClientId()))
{
- render.render(getComponentWriter((IComponent)render), cycle);
+ render.render(getComponentWriter(
((IComponent)render).peekClientId() ), cycle);
return;
}
@@ -354,19 +354,8 @@
return null;
}
- /**
- * Gets a [EMAIL PROTECTED] NestedMarkupWriter} for the specified
- * component to write to and caches the buffer for later
- * writing.
- *
- * @param target
- * The component to get a writer for.
- * @return An IMarkuPWriter instance.
- */
- IMarkupWriter getComponentWriter(IComponent target)
+ IMarkupWriter getComponentWriter(String id)
{
- String id = getComponentId(target);
-
return getWriter(id, ELEMENT_TYPE);
}
@@ -495,8 +484,13 @@
if (target == null)
return false;
- String id = getComponentId(target);
+ String id = target.getClientId();
+ return contains(target, id);
+ }
+
+ boolean contains(IComponent target, String id)
+ {
if (_parts.contains(id))
return true;
@@ -504,7 +498,7 @@
while (it.hasNext()) {
IComponent comp = (IComponent)it.next();
- String compId = getComponentId(comp);
+ String compId = comp.getClientId();
if (comp != target && _parts.contains(compId))
return true;
@@ -522,17 +516,5 @@
return false;
return _parts.contains(target.getId());
- }
-
- /**
- * Gets the id of the specified component, choosing the "id" element
- * binding over any other id.
- *
- * @param comp
- * @return The id of the component.
- */
- String getComponentId(IComponent comp)
- {
- return comp.getClientId();
}
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js
(original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js Sat Nov
25 12:29:32 2006
@@ -176,7 +176,7 @@
if (element.childNodes[i].nodeType != 1) { continue; }
var nodeId = element.childNodes[i].getAttribute("id");
- if (nodeId && nodeId == id) {
+ if (nodeId && nodeId) {
element=element.childNodes[i];
break;
}
@@ -189,10 +189,19 @@
var content=tapestry.html.getContentAsString(element);
dojo.log.debug("Received element content for id <" + id + ">
of:", content);
node.innerHTML=content;
- return;
+ } else {
+ node.innerHTML=tapestry.html.getContentAsString(element);
}
- node.innerHTML=tapestry.html.getContentAsString(element);
+ // copy style/class css attributes
+ var style=element.getAttribute("style");
+ if(style) {
+ dojo.html.setStyleText(node, style);
+ }
+ var classStr=element.getAttribute("class");
+ if (classStr) {
+ dojo.html.setClass(node, classStr);
+ }
},
/**
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/html.js
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/html.js?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/html.js
(original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/html.js Sat Nov
25 12:29:32 2006
@@ -6,21 +6,21 @@
*/
tapestry.html={
- TextareaMatcher:'<textarea(.*?)/>', // regexp for compact textarea
elements
- TextareaReplacer:'<textarea$1></textarea>', // replace pattern for
compact textareas
+ TextareaMatcher:'<textarea(.*?)/>', // regexp for compact textarea elements
+ TextareaReplacer:'<textarea$1></textarea>', // replace pattern for compact
textareas
- /**
+ /**
* Function: getContentAsString
*
* Takes a dom node and returns its contents rendered in a string.
- *
- * The resulting string does NOT contain any markup (or attributes) of
- * the given node - only child nodes are rendered and returned.Content
- *
- * Implementation Note: This function tries to make use of browser
- * specific features (the xml attribute of nodes in IE and the
XMLSerializer
- * object in Mozilla derivatives) - if those fails, a generic
implementation
- * is used that is guaranteed to work in all platforms.
+ *
+ * The resulting string does NOT contain any markup (or attributes) of
+ * the given node - only child nodes are rendered and returned.Content
+ *
+ * Implementation Note: This function tries to make use of browser
+ * specific features (the xml attribute of nodes in IE and the
XMLSerializer
+ * object in Mozilla derivatives) - if those fails, a generic
implementation
+ * is used that is guaranteed to work in all platforms.
*
* Parameters:
*
@@ -38,13 +38,13 @@
return this._getContentAsStringGeneric(node);
},
- /**
+ /**
* Function: getElementAsString
*
* Takes a dom node and returns itself and its contents rendered in a
string.
- *
- * Implementation Note: This function uses a generic implementation in
order
- * to generate the returned string.
+ *
+ * Implementation Note: This function uses a generic implementation in
order
+ * to generate the returned string.
*
* Parameters:
*
@@ -87,7 +87,9 @@
if (s == "undefined")
return this._getContentAsStringGeneric(node);
}
- s = this._processTextareas(s);
+
+ s = this._processTextareas(s);
+
return s;
},
@@ -111,13 +113,13 @@
}
return s;
},
-
- _processTextareas:function(htmlData)
+
+ _processTextareas:function(htmlData)
{
- var match = new RegExp(tapestry.html.TextareaMatcher);
- while (htmlData.match(match)){
- htmlData = htmlData.replace(match,
tapestry.html.TextareaReplacer);
- }
- return htmlData;
+ var match = new RegExp(tapestry.html.TextareaMatcher);
+ while (htmlData.match(match)){
+ htmlData = htmlData.replace(match, tapestry.html.TextareaReplacer);
+ }
+ return htmlData;
}
}
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLibrary.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLibrary.xml?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLibrary.xml
(original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLibrary.xml Sat
Nov 25 12:29:32 2006
@@ -35,7 +35,7 @@
<assert-output name="DirectLink with parameters">
<![CDATA[
- <a
href="/junit/mock?component=link&page=Home&service=direct&sp=2&sp=d3.5&sp=SHello"
id="link">
+ <a id="link"
href="/junit/mock?component=link&page=Home&service=direct&sp=2&sp=d3.5&sp=SHello">
]]>
</assert-output>
@@ -110,7 +110,7 @@
<assert-output name="PageLink (for library page).">
<![CDATA[
- <a href="/junit/mock?page=lib%3ADumper&service=page" id="refresh">
+ <a id="refresh" href="/junit/mock?page=lib%3ADumper&service=page">
]]>
</assert-output>
@@ -159,7 +159,7 @@
<assert-output name="DirectLink with parameters">
<![CDATA[
- <a
href="/junit/mock?component=link&page=Home&service=direct&session=T&sp=2&sp=d3.5&sp=SHello"
id="link">
+ <a id="link"
href="/junit/mock?component=link&page=Home&service=direct&session=T&sp=2&sp=d3.5&sp=SHello">
]]>
</assert-output>
</request>
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLocalization.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLocalization.xml?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLocalization.xml
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestLocalization.xml
Sat Nov 25 12:29:32 2006
@@ -118,7 +118,7 @@
<assert-output name="DirectLink switch URL still stateless">
<![CDATA[
-href="/mock/app?component=link&page=Home&service=direct&sp=2&sp=d3.5&sp=SHello"
id="link"
+id="link"
href="/mock/app?component=link&page=Home&service=direct&sp=2&sp=d3.5&sp=SHello"
]]>
</assert-output>
</request>
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestOutputEncoding.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestOutputEncoding.xml?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestOutputEncoding.xml
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestOutputEncoding.xml
Sat Nov 25 12:29:32 2006
@@ -78,7 +78,7 @@
<assert-output name="External Link">
<![CDATA[
-<a href="/c28/latin1?page=Two&service=external&sp=SFran%E7ais"
id="ExternalLink">
+<a id="ExternalLink"
href="/c28/latin1?page=Two&service=external&sp=SFran%E7ais">
]]>
</assert-output>
</request>
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestSimple.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestSimple.xml?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestSimple.xml
(original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestSimple.xml Sat
Nov 25 12:29:32 2006
@@ -76,7 +76,7 @@
<assert-output name="Link to page Two">
<![CDATA[
- <a href="/junit/simple?page=Two&service=page" id="link">to page
Two</a>
+ <a id="link" href="/junit/simple?page=Two&service=page">to page
Two</a>
]]>
</assert-output>
@@ -112,7 +112,7 @@
<assert-output name="Page Two: DirectLink">
<![CDATA[
- DirectLink: <a
href="/junit/simple?component=link&page=Two&service=direct"
id="link">click it</a>
+ DirectLink: <a id="link"
href="/junit/simple?component=link&page=Two&service=direct">click it</a>
]]>
</assert-output>
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestTemplateEncoding.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestTemplateEncoding.xml?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestTemplateEncoding.xml
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestTemplateEncoding.xml
Sat Nov 25 12:29:32 2006
@@ -40,7 +40,7 @@
<assert-output name="External Link">
<![CDATA[
-<a href="/c28/app?page=Two&service=external&sp=SFran%C3%A7ais"
id="ExternalLink">
+<a id="ExternalLink"
href="/c28/app?page=Two&service=external&sp=SFran%C3%A7ais">
]]>
</assert-output>
</request>
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestWMLComponents.xml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestWMLComponents.xml?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestWMLComponents.xml
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/scripts/TestWMLComponents.xml
Sat Nov 25 12:29:32 2006
@@ -76,7 +76,7 @@
<assert-output name="ServiceLink component">
<![CDATA[
- <go href="/mock/app?service=home" id="ServiceLink"/>
+ <go id="ServiceLink" href="/mock/app?service=home"/>
]]>
</assert-output>
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java
Sat Nov 25 12:29:32 2006
@@ -122,6 +122,11 @@
return null;
}
+ public String peekClientId(IFormComponent component)
+ {
+ return null;
+ }
+
public String getName()
{
return "myform";
@@ -468,4 +473,13 @@
public void setTemplateTagName(String tag)
{
}
+
+ /**
+ * [EMAIL PROTECTED]
+ */
+ public String peekClientId()
+ {
+ return null;
+ }
+
}
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DefaultLinkRendererTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DefaultLinkRendererTest.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DefaultLinkRendererTest.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DefaultLinkRendererTest.java
Sat Nov 25 12:29:32 2006
@@ -162,7 +162,9 @@
trainIsRewinding(cycle, false);
writer.begin("a");
-
+
+ component.renderAdditionalAttributes(writer, cycle);
+
trainGetLink(component, cycle, link);
trainGetScheme(component, null);
@@ -179,8 +181,6 @@
component.renderBody(nested, cycle);
- component.renderAdditionalAttributes(writer, cycle);
-
nested.close();
writer.end();
@@ -219,7 +219,9 @@
trainIsRewinding(cycle, false);
writer.begin("a");
-
+
+ component.renderAdditionalAttributes(writer, cycle);
+
trainGetLink(component, cycle, link);
trainGetScheme(component, "https");
@@ -239,8 +241,6 @@
trainGetNestedWriter(writer, nested);
component.renderBody(nested, cycle);
-
- component.renderAdditionalAttributes(writer, cycle);
nested.close();
@@ -315,7 +315,9 @@
trainIsRewinding(cycle, false);
writer.begin("xlink");
-
+
+ component.renderAdditionalAttributes(writer, cycle);
+
trainGetLink(component, cycle, link);
trainGetScheme(component, null);
@@ -340,8 +342,6 @@
writer.print("AFTER-BODY-RENDER");
- component.renderAdditionalAttributes(writer, cycle);
-
nested.close();
writer.end();
@@ -374,7 +374,9 @@
trainIsRewinding(cycle, false);
writer.beginEmpty("xlink");
-
+
+ component.renderAdditionalAttributes(writer, cycle);
+
trainGetLink(component, cycle, link);
trainGetScheme(component, null);
@@ -396,8 +398,6 @@
trainGetNestedWriter(writer, nested);
writer.print("AFTER-BODY-RENDER");
-
- component.renderAdditionalAttributes(writer, cycle);
writer.closeTag();
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java?view=diff&rev=479189&r1=479188&r2=479189
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java
Sat Nov 25 12:29:32 2006
@@ -141,6 +141,8 @@
expect(comp1.getClientId()).andReturn("id1").anyTimes();
+ expect(comp1.peekClientId()).andReturn("id1").anyTimes();
+
expect(writer.getNestedWriter()).andReturn(nested);
nested.begin("response");
@@ -228,7 +230,6 @@
"]>\n" +
"<ajax-response><response id=\"bodyscript\"
type=\"script\"><script>\n" +
"//<![CDATA[\n" +
- "\n" +
"\n" +
"var preloadedvarname = new Array();\n" +
"if (document.images)\n" +