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
>  Tacos-devel@lists.sourceforge.net
>  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
Tacos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tacos-devel

Reply via email to