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]
> 

Reply via email to