I think you need to pass in "this" to your script execute call,  the
current method you are executing is deprecated.

For the javascript calls you can refer to

http://tapestry.apache.org/tapestry4.1/javascript/index.html
and
http://tapestry.apache.org/tapestry4.1/jsdoc/index.html

where you should find the new function tapestry.form.submit(form)
(with some other additional documented optional arguments )

On Nov 6, 2007 7:36 PM, Dom Couldwell <[EMAIL PROTECTED]> wrote:
>
> We have a link on a page that does a submit and pops up a new window once the
> form has been submitted.
>
> The code is based on the PopupLinkSubmit example here:
> http://wiki.apache.org/tapestry/PopupLinkSubmit
>
> This all works fine on 4.0.2 but under 4.1.4-SNAPSHOT we get the following
> error when the page opens up:
>
> 2007-11-06 18:35:10,197, ERROR,
> [org.apache.tapestry.services.impl.HiveMindExpressionCompiler], line 227,
> Error generating OGNL statements for expression class with root
> {href=javascript:submitPopupLink('editorForm',
> 'PopupLinkSubmit','/GQ/Waiting.page');,
> [EMAIL PROTECTED]/editor.editorForm], class=action,
> popupLink=/GQ/Waiting.page, name=PopupLinkSubmit}
> org.apache.hivemind.ApplicationRuntimeException: Unable to add method void
> set(ognl.OgnlContext, java.lang.Object, java.lang.Object) to class
> $ASTProperty_116174fa4f8: [source error]
> put(java.lang.String,java.lang.Object) not found in java.lang.Object
>       at
> org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278)
>       at
> org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:217)
>       at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:523)
>       at ognl.Ognl.compileExpression(Ognl.java:141)
> ...
> Caused by: javassist.CannotCompileException: [source error]
> put(java.lang.String,java.lang.Object) not found in java.lang.Object
>       at javassist.CtBehavior.setBody(CtBehavior.java:347)
>       at javassist.CtBehavior.setBody(CtBehavior.java:316)
>       at
> org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:272)
>       ... 137 more
> Caused by: compile error: put(java.lang.String,java.lang.Object) not found in
> java.lang.Object
>       at javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:716)
>       at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
>       at
> javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
>       at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
>       at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:235)
>       at javassist.compiler.CodeGen.atStmnt(CodeGen.java:323)
>       at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
>       at javassist.compiler.CodeGen.atStmnt(CodeGen.java:344)
>       at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
>       at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:285)
>       at javassist.compiler.Javac.compileBody(Javac.java:212)
>       at javassist.CtBehavior.setBody(CtBehavior.java:341)
>       ... 139 more
>
> Here's what's on the page:
>
>       <a href="#"
>          jwcid="@PopupLinkSubmit"
>          listener="listener:openEditorGraph"
>          popuppage="Waiting"
>          styleClass="action"
>          windowWidth="840"
>          windowHeight="550">
>         Generate Plot
>       </a>
>
>
> Here's PopupLinkSubmit.script
>
> <?xml version="1.0"?>
> <!DOCTYPE script PUBLIC
>         "-//Apache Software Foundation//Tapestry Script Specification 3.0//EN"
>         "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd";>
> <script>
>
> <input-symbol key="name" class="java.lang.String" required="yes"/>
> <input-symbol key="popupLink" class="java.lang.String" required="yes"/>
> <input-symbol key="form" class="org.apache.tapestry.IForm" required="yes"/>
> <input-symbol key="class" class="java.lang.String" required="no"/>
>
> <let key="href">
>   javascript:submitPopupLink('${form.name}', '${name}','${popupLink}');
> </let>
>
> <let key="class">
>   ${class}
> </let>
>
> </script>
>
> Which comes out as:
>
>       <a href="javascript:submitPopupLink('editorForm',
> 'PopupLinkSubmit','/GQ/Waiting.page');" class="action">
>         Generate Plot
>       </a>
>
> The Javascript we're rendering in PopupLinkSubmit.java comes out as:
>
> function submitPopupLink(form, elementId, url)
> {
>   var windowName = 'RDQGraphPopup';
>   var randomNumber = Math.floor(Math.random()*1000);
>   windowName = windowName+randomNumber;
>   aWindow = window.open(url, windowName, 'width=840, height=800,
> scrollbars=yes,resizable=yes', false);
>   aWindow.focus();
>   var form = document.getElementById(form);
>   form.target=windowName;
>   form.events.submit(elementId);
>   form.target='';
> }
>
> I can supply the rest of the source if required but it's basically following
> the example I mentioned at the top.
>
> The rendered versions of the link and the Javascript are the same as under
> 4.0.2 but we get the above error in the back end and the link does not work.
> We get a Javascript error stating that 'events' is null or not an object.
> This is referring to this line:
>   form.events.submit(elementId);
> Which seems to be related to issues mentioned here
> http://tapestry.apache.org/tapestry4.1/usersguide/upgrade4.0.html
> Can anyone let me know what we should be doing instead of form.events.submit?
> The documentation does not make it clear what the replacement is
>
> If we fix the form.events issues will that also fix the error we see when the
> page loads up or is that an unrelated error?
>
> Any ideas would be appreciated.
>
> Dom
>
> ---
>
> This e-mail may contain confidential and/or privileged information. If you
> are not the intended recipient (or have received this e-mail in error)
> please notify the sender immediately and destroy this e-mail. Any
> unauthorized copying, disclosure or distribution of the material in this
> e-mail is strictly forbidden.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Jesse Kuhnert
Tapestry/Dojo team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to