<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2656.27">
<TITLE>Problems with LivePage</TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=2 FACE="Arial">I incorrectly retyped code. Please forgive. Here is a better look...</FONT>
</P>
<P><B><FONT SIZE=2 FACE="Arial">Xhtml file:</FONT></B>
</P>
<P><FONT SIZE=2 FACE="Arial"><html></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <head></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <title>generic</title></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </head></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <body></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <table model="listdata" view="listdatatable"></table></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <span view="webConduitGlue" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </body></FONT>
<BR><FONT SIZE=2 FACE="Arial"></html></FONT>
</P>
<P><B><FONT SIZE=2 FACE="Arial">Key Python/Twisted code:</FONT></B>
</P>
<P><FONT SIZE=2 FACE="Arial">class Epage(page.LivePage):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ...</FONT>
<BR><FONT SIZE=2 FACE="Arial"> def initialize(...):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> self.someListData = [['a', 'b', 'c'],</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ['d', 'e', 'f'],</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ['g', 'h', 'I']]</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial"> def wmfactory_listdata(self, request):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return self.someListData</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial"> def wvupdate_listdatatable(self, request, node, listdata):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> l = lmx(node)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> d = l.div()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> t = d.table(border='0', cellspacing='2')</FONT>
<BR><FONT SIZE=2 FACE="Arial"> t.tr(bgcolor='eeeeee')</FONT>
<BR><FONT SIZE=2 FACE="Arial"> for arow in listdata:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> t.tr()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> for entry in arow:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> t.td().text(entry)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> t.td().form().input(type='button', value='REMOVE', view='rmExercise')</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial"> def wvupdate_rmExercise():</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return RmExerciseEventHandler(self)</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">class RmExerciseEventHandler(controller.Controller)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> def initialize(self):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> self.view.addEventHandler("onclick", self.onClick)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> self.view.addEventHandler("onmouseover", self.onMouseOver)</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial"> def onClick(self, request, widget):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> print self, "CLICKED!"</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial"> def onMouseOver(self, request, widget, argument):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> print self, "MOUSE OVER!", argument</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">As a recap, I was having trouble with my browser handling</FONT> <FONT FACE="Courier New"><span view="webConduitGlue" /></FONT> <FONT SIZE=2 FACE="Arial">in my xhtml file, and I was having trouble processing events when I click on buttons embedded inside of a table (or just buttons in general). Anyone see anything wrong? Sorry for the extra email traffic and inbox congestion.</FONT></P>
<P><FONT SIZE=2 FACE="Arial">Matthew</FONT>
</P>
</BODY>
</HTML>