Re: Mouse tracking with Tapestry

Daniel Jue <[email protected]>
Newsgroups gmane.comp.java.tapestry.user
Message-ID <CANywQ_kgO9oQnO277kwegLudSePeCMxX9Ac2WoP58H41QOphDg@mail.gmail.com>
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 <
[email protected]> 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 <[email protected]> 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.
> >
> >
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.