Hi HODAC, "HODAC, Olivier" <[email protected]> wrote on 10/26/2009 11:34:17 AM:
> Thanks, I have implemented you solution but the event never comes. I > am un eclipse behind a swing component wrapper. I don't know if the > EventTarget actually received the event. How can I check that? I don't know anything about Swing components embedded in SWT. Does that forward event's to the Swing component? The other common problem is that you didn't set the canvas to ALWAYS_DYNAMIC. > I have seen that you register an event listener on the event type > "click". It is hard coded. Is there a list of events as constants? > Is it possible I register all the events to see if it is Eclipse > that consumes the events forgetting to redispatch them? > > > > -----Message d'origine----- > De : Heidrun Beer [mailto:[email protected]] > Envoyé : lundi 26 octobre 2009 11:59 > À : [email protected] > Objet : Re: locate an SVG element using x, y position > > On Mon, 26 Oct 2009 10:44:49 +0100, HODAC, Olivier wrote in > <1950_1256550419_4ae57013_1950_34_1_0471c9ac78f671458c5e3f9c69b73c8609879...@fr0- > mailmb17.res.airbus.corp>: > > >I'd like to add a mouse listener on my JSVGCanvas to select an element > >of my rendered SVG. > >How can I find the right node using x,y mouse postion? > > > I have explored that, but the problem is that you have > only the bounds of the element to locate your mouse point > in. This is a rectangle. If now the element is, say, an > ellipse or a line or another shape that is not rectangular, > the function won't work with mouse points inside that > rectangle, but outside the shape. > > You need to add an event listener to each element as > you create it. If you load your drawing from a file, > you need to loop through the whole element tree and > add it to each element. It's not so much code, as > you do it all in a loop. > > Here is the code that I am using, after I have retrieved > my document string from a database and created the document. > > I have the special situation that I skip the first element, > which is a background rectangle that I don't want to be > moveable. It is always the first in the document. > > > BackG = doc.getElementById("BackgroundRectangle"); > EventTarget etr = null; > Node no = (Node) BackG; > Node no2 = no.getNextSibling(); > if (no2!=null) { > do { > etr = (EventTarget) no2; > etr.addEventListener("click",new > org.w3c.dom.events.EventListener() > { > org.w3c.dom.events.Event evt; > > public void handleEvent > (org.w3c.dom.events.Event evt) { > EventTarget etr2 = evt.getTarget(); > > ActivateSelEl(etr2); // function that > selects the element, > // retrieves its bounds and sets a flag > // that tells the canvas to paint a > // selection rectangle with mouse > // anchors on top of the SVG drawing > // in its paint function > repaint(); > } > public void run() { > handleEvent(evt); > } > > },false > ); > no2=no2.getNextSibling(); > } while (no2!=null); > } > > > > Best, > > > Heidrun Beer > > Workgroup for Fundamental Spiritual Research and Mental Training > http://www.sgmt.at > http://www.RecastReality.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > This mail has originated outside your organization, either from an > external partner or the Global Internet. > Keep this in mind if you answer this message. > > > > > The information in this e-mail is confidential. The contents may not > be disclosed or used by anyone other than the addressee. Access to > this e-mail by anyone else is unauthorised. > If you are not the intended recipient, please notify Airbus > immediately and delete this e-mail. > Airbus cannot accept any responsibility for the accuracy or > completeness of this e-mail as it has been sent over public > networks. If you have any concerns over the content of this message > or its Accuracy or Integrity, please contact Airbus immediately. > All outgoing e-mails from Airbus are checked using regularly updated > virus scanning software but you should take whatever measures you > deem to be appropriate to ensure that this message and any > attachments are virus free. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] >
