Nice! i'll do an update with the things you've mentioned soon
but you can always send a diff to help make the process easier / faster.
On 2/14/08, Jim <[EMAIL PROTECTED]> wrote:
> (migrating thread from the Tapestry users list)
>
> Thanks Andreas!
>
> That helped a lot -- needed to make sure implementing those functions
> was going to get me further.
>
> I added the following implementations of buildEventProperties,
> buildTargetProperties, and buildNodeProperties inside tapestry.event = {
> ... }
>
> /**
> * Function: buildEventProperties
> *
> * Takes an incoming browser generated event (like key/mouse events) and
> * creates a js object holding the basic values of the event in
> order for
> * it to be submitted to the server.
> *
> * Parameters:
> *
> * event - The javascript event method is based on, if it isn't a valid
> * browser event it will be ignored.
> * props - The existing property object to set the values on, if it
> doesn't
> * exist one will be created.
> * args - The arguments from an method-call interception
> * Returns:
> *
> * The desired event properties bound to an object. Ie
> obj.target,obj.charCode, etc..
> */
> buildEventProperties:function(event, props, args){
> if (!props) props={};
>
> var isEvent = (typeof event != "undefined")
> && (event)
> && (typeof Event != "undefined") && (event.eventPhase);
> if (isEvent) {
> if(event["type"]) props.beventtype=event.type;
> if(event["keys"]) props.beventkeys=event.keys;
> if(event["charCode"]) props.beventcharCode=event.charCode;
> if(event["pageX"]) props.beventpageX=event.pageX;
> if(event["pageY"]) props.beventpageY=event.pageY;
> if(event["layerX"]) props.beventlayerX=event.layerX;
> if(event["layerY"]) props.beventlayerY=event.layerY;
>
> if (event["target"]) this.buildTargetProperties(props,
> event.target);
> }
>
> props.methodArguments = dojo.toJson( args );
>
> return props;
> },
>
> /**
> * Function: buildTargetProperties
> *
> * Generic function to build a properties object populated with
> * relevent target data.
> *
> * Parameters:
> *
> * props - The object that event properties are being set on to
> return to
> * the server.
> * target - The javscript Event.target object that the original
> event was targeted for.
> *
> * Returns:
> * The original props object passed in, populated with any data found.
> */
> buildTargetProperties:function(props, target){
> if(!target) { return; }
>
> var isNode = target.nodeType && target.cloneNode;
> if (isNode) {
> return this.buildNodeProperties(props, target);
> } else {
> dojo.raise("buildTargetProperties() Unknown target type:" +
> target);
> }
> },
>
> /**
> * Function: buildNodeProperties
> *
> * Builds needed target node properties, like the node's id.
> *
> * Parameters:
> * props - The object that event properties are being set on to
> return to
> * the server.
> * node - The dom node specified as the Event.target in a
> javascript event.
> */
> buildNodeProperties:function(props, node) {
> if (node.getAttribute("id")) {
> props["beventtarget.id"]=node.getAttribute("id");
> }
> },
>
>
> I just copied over the implementations from Tap 4.1.5's core.js, and:
> 1. replaced dojo.event.browser.isEvent(event) with an inline
> implementation
> 2. replaced dojo.dom.isNode(target) with an inline implementation
> 3. changed dojo.json.serialize( args ) to dojo.toJson ( args )
>
> This got my simple test case going of an in-page button
> triggering-via-AJAX an @EventListener in the backing page.
>
> Thanks!
> Jim
>
>
>
> Andreas Andreou wrote:
> > Hi... good to see people starting work on that!
> >
> > tapestry.event.buildEventProperties is an obvious omission
> > from skeleton/core.js - that file however is just for reference, so
> > if you just declare buildEventProperties in your adapter js you
> > should be able to go on.
> >
> > I must admit that I haven't made that much progress lately on that
> > project + the issues described at
> > http://tacos.sourceforge.net/tacos4.1/tacos-dojo/index.html
> > are still pending... so, if you've already got improvements, additions
> > i'd be happy to take a look and include them directly into tacos-dojo
> >
> > Of course, the same apply to tacos-jquery (in case someone is checking
> > that out as well - http://andyhot.gr/tacos-demo/jquery/Index.html has an
> > 'ugly' little demo...)
> >
> > On Feb 14, 2008 1:53 AM, Jim <[EMAIL PROTECTED]> wrote:
> >
> >> Howdy!
> >>
> >> I'm using Tapestry 4.1.5, and would like to use our own Dojo 1.0.2
> >> instead of the default Dojo 0.4.3. I tried using the tacos-dojo module
> >> from the Tacos project but there are still bugs with that. I hacked a
> >> couple things in the source to get it going, but when running a simple
> >> test case of having a button associated with an @EventListener, when I
> >> click the button I get the following JS error:
> >> "tapestry.event.buildEventProperties is not a function".
> >>
> >> I checked Tacos' adapter JS file and buildEventProperties wasn't here,
> >> but before declaring it to be a Tacos issue:
> >> tapestry.event.buildEventProperties exists in
> >> tapestry-framework-4.1.5.jar/tapestry-4.1.5/core.js, but not in
> >> tapestry-framework-4.1.5.jar/tapestry-4.1.5/skeleton/core.js, which is
> >> what the online documentation claims is the JS adapter API to provide
> >> implementations for, which probably explains why it wasn't implemented
> >> in the Tacos JS adapter-file.
> >>
> >> Has anyone run into this and/or can tell me if I'm missing something?
> >> Is this an oversight in the skeleton/core.js, or is Tap 4.1.5 still not
> >> ready for replacing Dojo 0.4.3 with another library?
> >>
> >> Thanks,
> >> Jim
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >
> >
> >
> >
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Tacos-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/tacos-devel
>
--
Andreas Andreou - [EMAIL PROTECTED] - http://blog.andyhot.gr
Tapestry / Tacos developer
Open Source / JEE Consulting
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Tacos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tacos-devel