Hi, I'm not sure this is what you need, but here is a library we used during a DARPA program to collect UI statistics including hovering, etc: https://github.com/draperlaboratory/User-ALE
On the browser side it's fire and forget, and there is a separate server set up to collect the stats information (i.e. it is transparent to your web app/tapestry app server) You the developer add in the places you want events to fire, such as on buttons, or mouse tracking in general. Here's a demo page: http://draperlaboratory.github.io/user-ale/test_app/index.html On Fri, Apr 7, 2017 at 2:12 AM, JumpStart < geoff.callender.jumpst...@gmail.com> wrote: > I’ll answer it this way: > > http://jumpstart.doublenegative.com.au/jumpstart7/examples/ > navigation/onactivateandonpassivate/3 <http://jumpstart. > doublenegative.com.au/jumpstart7/examples/navigation/ > onactivateandonpassivate/3> > > Hope this helps, > > Geoff > > > On 7 Apr 2017, at 2:07 PM, Phyambre <phy....@gmail.com> wrote: > > > > Hi, > > > > I would like to do mouse tracking with tapestry (know the coordinates of > > the mouse, the path of the DOM tree to the element that is being pointed > > and the text of that element). > > > > Currently I have a solution that works, but I think it is terribly > > inefficient and I hope you can make any suggestions to improve it. > > > > I have a JS library that calculates all those values and writes them to > > "input hidden" form fields in my .tml > > > > Then I used the ZoneUpdater mixin: > > > > http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/onevent > > > > I modified ZoneUpdater.java by adding a List attribute. That list will > > contain the ids of the "input hidden fields" as you can see below. > > > > Then, in the TML file, instead of > > > > |<input t:type="TextField" t:id="firstName" t:mixins="zoneUpdater" > > t:clientEvent="keyup" t:event="firstNameChanged" t:zone="nameZone" > /><br/>| > > > > I have > > > > <p class="paragraph" t:type="any" t:mixins="zoneUpdater" > > ZoneUpdater.clientEvent="mousemove" ZoneUpdater.event="track" > > ZoneUpdater.zone="textZone" > > ZoneUpdater.fields="['documentHeightVal', 'documentWidthVal', > > 'windowHeightVal', > > 'windowWidthVal', 'windowOffsetYVal', 'windowOffsetXVal', > > 'mouseYVal','mouseXVal', 'domPathVal', > > 'overTextVal']">${currentParagraph}</p> > > > > then in zone-updater.js I add all those values to the URL. > > > > Finally, in my page file, the onTrack() method is executed. > > > > The problem here is that onActivate() is also being exectued, and > > onActivate() has a lot of stuff that I want to execute only once (when > > the page loads) and not every time the user moves the mouse. > > > > Is there any other solution that does not trigger onActivate() every > > time that the user moves the mouse on a component? > > > > Regards, > > > > Phy. > > > > > >