You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Warner Onstine <sw...@warneronstine.com> on 2008/05/11 00:25:16 UTC
EventListener and JavaScript function
Hi all,
I'm working on getting a Portal implementation working based off of
this (http://blog.xilinus.com/2007/9/4/prototype-portal-class-2). So
far I have everything working the way it should but am now getting to
the stage where I want to start saving the portal layout changes to a
db for the user. We're currently on 4.0.x and I spied the
EventListener annotation and it looks like exactly what I need to
call from the JavaScript side.
The problem I'm running into is I don't know how to get my listener
actions called, the javascript that is called is not tied to the DOM
and I'm unclear on how I'm supposed to tie the function I want to
listen to to a Tapestry component (as has been suggested in other
emails).
Here are the relevant pieces of code:
portal_hooks.js (passed into the portal as function calls)
function onChange(portalState) {
}
function onUpdate(portalState) {
}
@EventListener(targets="portal" events="onChange")
public void testOnChange(BrowserEvent event) {
}
@EventListener(targets="portal" events="onUpdate")
public void testOnChange(BrowserEvent event) {
}
the "portal" target is the actual JavaScript object that I'm creating
in Portal.script in the "<initialization>" section:
portal = new Xilinus.Portal("#portal div", {onOverWidget:
onOverWidget, onOutWidget: onOutWidget, onChange: onChange, onUpdate:
onUpdate, removeEffect: Effect.SwitchOff});
So any suggestions on how to tie these together is greatly
appreciated as the docs on this are not clear on how to do this
except for the following line:
"When listening to a client-side javascript function that does not
represent a native browser-event, you can access the parameters
passed to the function on the server-side. The Parameters are made
available as a JSON-Array within the class BrowserEvent."
but the example given doesn't work (at least I haven't gotten it to
work for my case.
Thanks in advance!
-warner
Warner Onstine - Programmer/Author
New book on Tapestry 4!
Tapestry 101 available at http://sourcebeat.com/books/tapestrylive.html
warner@warneronstine.com
http://warneronstine.com/blog
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: EventListener and JavaScript function
Posted by Warner Onstine <sw...@warneronstine.com>.
From reading the docs I thought it was possible to intercept
JavaScript objects (and functions being called on those objects),
from what I'm reading here it sounds like that isn't the case.
I'll investigate this further and post back any questions I have.
-warner
On May 12, 2008, at 1:08 AM, Marcus Schulte wrote:
> Hi Warner
> I'm not quite sure whether I understand you setup completely.
> Nevertheless two hints:
>
> - the "targets" attribute must refer to tapestry components. If
> you want to
> refer to a client-side object use "elements".
> - The element you want to intercept indeed *must* be a DOM-node.
> You could
> call an empty hook on some dom-element from your code or use
> dojo.connect if
> you don't control the javascript code to intercept.
>
> 2008/5/11 Warner Onstine <sw...@warneronstine.com>:
>
>> Hi all,
>> I'm working on getting a Portal implementation working based off
>> of this (
>> http://blog.xilinus.com/2007/9/4/prototype-portal-class-2). So far
>> I have
>> everything working the way it should but am now getting to the
>> stage where I
>> want to start saving the portal layout changes to a db for the
>> user. We're
>> currently on 4.0.x and I spied the EventListener annotation and it
>> looks
>> like exactly what I need to call from the JavaScript side.
>>
>> The problem I'm running into is I don't know how to get my listener
>> actions called, the javascript that is called is not tied to the
>> DOM and I'm
>> unclear on how I'm supposed to tie the function I want to listen
>> to to a
>> Tapestry component (as has been suggested in other emails).
>>
>> Here are the relevant pieces of code:
>> portal_hooks.js (passed into the portal as function calls)
>>
>> function onChange(portalState) {
>> }
>>
>> function onUpdate(portalState) {
>> }
>>
>> @EventListener(targets="portal" events="onChange")
>> public void testOnChange(BrowserEvent event) {
>> }
>>
>> @EventListener(targets="portal" events="onUpdate")
>> public void testOnChange(BrowserEvent event) {
>> }
>>
>> the "portal" target is the actual JavaScript object that I'm
>> creating in
>> Portal.script in the "<initialization>" section:
>> portal = new Xilinus.Portal("#portal div", {onOverWidget:
>> onOverWidget,
>> onOutWidget: onOutWidget, onChange: onChange, onUpdate: onUpdate,
>> removeEffect: Effect.SwitchOff});
>>
>> So any suggestions on how to tie these together is greatly
>> appreciated as
>> the docs on this are not clear on how to do this except for the
>> following
>> line:
>> "When listening to a client-side javascript function that does not
>> represent a native browser-event, you can access the parameters
>> passed to
>> the function on the server-side. The Parameters are made available
>> as a
>> JSON-Array within the class BrowserEvent."
>>
>> but the example given doesn't work (at least I haven't gotten it
>> to work
>> for my case.
>>
>> Thanks in advance!
>>
>> -warner
>>
>> Warner Onstine - Programmer/Author
>> New book on Tapestry 4!
>> Tapestry 101 available at http://sourcebeat.com/books/
>> tapestrylive.html
>> warner@warneronstine.com
>> http://warneronstine.com/blog
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
>
> --
> Marcus Schulte
> http://marcus-schulte.blogspot.com
Warner Onstine - Programmer/Author
New book on Tapestry 4!
Tapestry 101 available at http://sourcebeat.com/books/tapestrylive.html
warner@warneronstine.com
http://warneronstine.com/blog
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: EventListener and JavaScript function
Posted by Marcus Schulte <et...@googlemail.com>.
Hi Warner
I'm not quite sure whether I understand you setup completely.
Nevertheless two hints:
- the "targets" attribute must refer to tapestry components. If you want to
refer to a client-side object use "elements".
- The element you want to intercept indeed *must* be a DOM-node. You could
call an empty hook on some dom-element from your code or use dojo.connect if
you don't control the javascript code to intercept.
2008/5/11 Warner Onstine <sw...@warneronstine.com>:
> Hi all,
> I'm working on getting a Portal implementation working based off of this (
> http://blog.xilinus.com/2007/9/4/prototype-portal-class-2). So far I have
> everything working the way it should but am now getting to the stage where I
> want to start saving the portal layout changes to a db for the user. We're
> currently on 4.0.x and I spied the EventListener annotation and it looks
> like exactly what I need to call from the JavaScript side.
>
> The problem I'm running into is I don't know how to get my listener
> actions called, the javascript that is called is not tied to the DOM and I'm
> unclear on how I'm supposed to tie the function I want to listen to to a
> Tapestry component (as has been suggested in other emails).
>
> Here are the relevant pieces of code:
> portal_hooks.js (passed into the portal as function calls)
>
> function onChange(portalState) {
> }
>
> function onUpdate(portalState) {
> }
>
> @EventListener(targets="portal" events="onChange")
> public void testOnChange(BrowserEvent event) {
> }
>
> @EventListener(targets="portal" events="onUpdate")
> public void testOnChange(BrowserEvent event) {
> }
>
> the "portal" target is the actual JavaScript object that I'm creating in
> Portal.script in the "<initialization>" section:
> portal = new Xilinus.Portal("#portal div", {onOverWidget: onOverWidget,
> onOutWidget: onOutWidget, onChange: onChange, onUpdate: onUpdate,
> removeEffect: Effect.SwitchOff});
>
> So any suggestions on how to tie these together is greatly appreciated as
> the docs on this are not clear on how to do this except for the following
> line:
> "When listening to a client-side javascript function that does not
> represent a native browser-event, you can access the parameters passed to
> the function on the server-side. The Parameters are made available as a
> JSON-Array within the class BrowserEvent."
>
> but the example given doesn't work (at least I haven't gotten it to work
> for my case.
>
> Thanks in advance!
>
> -warner
>
> Warner Onstine - Programmer/Author
> New book on Tapestry 4!
> Tapestry 101 available at http://sourcebeat.com/books/tapestrylive.html
> warner@warneronstine.com
> http://warneronstine.com/blog
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
--
Marcus Schulte
http://marcus-schulte.blogspot.com