Property not updated for InlineEditBox Component
------------------------------------------------
Key: TAPESTRY-1543
URL: https://issues.apache.org/jira/browse/TAPESTRY-1543
Project: Tapestry
Issue Type: Bug
Components: XHR/dhtml/Ajax
Affects Versions: 4.1.2
Environment: Weblogic 8, Sun jdk 1.4 Tapestry latest 4.1.2 Snapshot
Reporter: Chris Chiappone
Here is the following scenerio:
In my page.html I have the following form defined in which a the @InlineEditBox
is wrapped within a @For loop:
<span jwcid="@If" condition="ognl:tsAgents">
<form jwcid="[EMAIL PROTECTED]" listener="listener:updateAgents">
<table border="1" cellspacing="0" width="100%" cellpadding="5"
style="border-collapse:collapse;border:1px solid #333333">
<tr valign="top" jwcid="[EMAIL PROTECTED]" source="ognl:ActiveAgents"
value="ognl:currentAgent">
<td align="center">
<a jwcid="@DirectLink" listener="listener:removeAgent"
parameters="ognl:currentAgent" >
<img jwcid="@Image" image="asset:deleteImg" border="0"/>
</a>
</td>
<td><span jwcid="@InlineEditBox" value="ognl:currentAgent.label"/></td>
<td><span jwcid="@If" condition="ognl:currentAgent.licenseretrieved ==
null">
<a jwcid="@DownloadLinkComponent" filename="ognl:licenseName"
linkId="ognl:currentAgent.agentId"
type="ognl:@[EMAIL PROTECTED]">
<span key="getLicense"/>
</a>
</span>
<span jwcid="@Else">
<span key="retrieved"/>: <span jwcid="@Insert"
value="ognl:currentAgent.licenseretrieved.time"/>
</span>
</td>
<td><span jwcid="@Insert" value="ognl:installedStatus"></span></td>
<td align="center"><input jwcid="@Checkbox"
value="ognl:currentAgent.transientMonitor" disabled="ognl:currentAgent.lastip
== null"/></td>
</tr>
</table>
<br/>
<center>
<input jwcid="@Submit" value="message:update"/>
</center>
</form>
</span>
In my page.java I have the following where getActiveAgents is set to
persistant=session in the page spec:
public abstract List getActiveAgents();
public abstract void setActiveAgents(List a);
//This page implements PageBeginRenderListener where when the form is not
rewinding sets the agents and the activeAgents
public void pageBeginRender(PageEvent event) {
getRequestGlobals().getRequest().setAttribute(ROADMAP, "false");
List agents = null;
if (!event.getRequestCycle().isRewinding()) {
try {
agents = getTsAgentEJB().getAgentsFromClient(
getCurrentClient().getClientId());
if (agents != null) {
List activeAgents = new ArrayList();
Iterator it = agents.iterator();
while (it.hasNext()) {
TsAgent agent = (TsAgent)
it.next();
if
(agent.getStatus().equals("a")) {
activeAgents.add(agent);
}
}
setActiveAgents(activeAgents);
}
} catch (Exception e) {
logger.debug("Unable to get agents for client
in view");
}
}
setTsAgents(agents);
}
//Then the listener defined basically updates my agents in persistent storage:
public void updateAgents(){
List agents = getActiveAgents();
Iterator it = agents.iterator();
while(it.hasNext()){
TsAgent agent = (TsAgent) it.next();
logger.info("Agent labelname should be updated to: "+
agent.label);
saveAgent(agent);
}
}
I would assume that my agent.label should be updated with the new value from
the InlineEditBox component. But it is not. The thing is I believe the code
is all correct because if I simply change @InlineEditBox to @TextField it works
as I would expect and agent.label is updated with the new value.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]