Yasmin, Sorry, Instead of sending you some sample code by mistake I sent you the code from my SVG project. I get the elements corresponding to the ID's and change their style. I am very sorry to confuse you with my code. But, the code pretty much does similar to what you are looking for.
Javid -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Monday, February 27, 2006 4:17 PM To: [email protected] Subject: Re: Red Spots Hi Javid, Can you pls xplain wat this bit of ur code is doing: SVGOMPathElement segno= (SVGOMPathElement) svgDocument.getElementById(accidentsInfo[i].trim()); it's a little confusing, because I've point the Points for each circl to be drawn in an arraylist... ThankU yasmin > Here are some sample codes that could do something you are trying.. > > /* > * Method to display the accidents data on the SVG map > */ > public void displayAccidentsData() > { > this.getUpdateManager().getUpdateRunnableQueue().invokeLater(new > Runnable() { > public void run() { > if (isAccident) > { > removeAllChild(accidentsSet); > isAccident = false; > } > else { > > for(int i=0 ; i < accidentsInfo.length;i=i+1) > { > > SVGOMPathElement segno= (SVGOMPathElement) > svgDocument.getElementById(accidentsInfo[i].trim()); > if (segno==null) > { > continue; > } > String d = segno.getAttributeNS(null, "d"); //get > the d coordinate of the accident > String[] coordinates = d.split(" "); > String x = coordinates[0].substring(1); > String y = coordinates[1]; > > SVGOMRectElement temp= (SVGOMRectElement) > svgDocument.createElementNS(svgNS, "rect"); > temp.setAttributeNS(null, "x", String.valueOf( > Double.parseDouble(x)-6)); > temp.setAttributeNS(null, "y", String.valueOf( > Double.parseDouble(y) -6)); > temp.setAttributeNS(null, "width", "12"); > temp.setAttributeNS(null, "height", "12"); > > temp.setAttributeNS(null, "stroke", "black"); > temp.setAttributeNS(null, "stroke-width", "2"); > temp.setAttributeNS(null, "opacity", "1"); > temp.setAttributeNS(null, "fill", "lightgreen"); > temp.addEventListener("click", new > AccidentAction(), > false); > accidentsSet.appendChild(temp); > } > isAccident = true; > } > } > }); > } > > And you can create event listener class like this > Class AccidentAction implements EventListener { > public void handleEvent(Event e) { > Element elt = (Element) evt.getCurrentTarget(); > if (evt.getType() == "click") > { > elt.setAttributeNS(null, "opacity", "0.5"); > } > } > } > > > Thanks, > Javid > > > > On 2/27/06, Bishop, Michael W. CONTR J9C880 <[EMAIL PROTECTED]> > wrote: >> >> Well, now you can attach an event listener. Now you need to figure out >> what you want to do with it. When the mouse is pressed, you can do >> anything...show a dialog box, etc. >> >> Michael Bishop >> >> -----Original Message----- >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >> Sent: Monday, February 27, 2006 3:31 PM >> To: [email protected] >> Subject: RE: Red Spots >> >> >> ...So, in the: >> e.setAttributeNS(null, "r", "5"); >> I can add all the relevant information about the accident? >> >> thx >> >> yasmin >> >> >> >> > Hi Yasmin, >> > >> > [EMAIL PROTECTED] wrote on 02/27/2006 01:26:07 PM: >> > >> >> yes, it does but how does that work? >> > >> > Assuming there is no 'obvious' dynamic content in the >> > SVG file already (script, event handlers, etc). You need >> > to tell the canvas to treat your document as dynamic: >> > >> > canvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC); >> > >> > // Do what ever you curently do to load your SVG and get >> > // a list of points for circles. >> > // Once the document is loaded (onload callback or >> > // wait for first rendering): >> > >> > canvas.getUpdateManager().getUpdateRunnableQueue(). >> > invokeLater(new Runnable() { >> > public void run() { >> > SVGDocuemnt doc = canvas.getSVGDocument(); >> > String SVGNS = "http://www.w3.org/2000/svg"; // SVG namespace >> > Iterator i = ...; // get list of points >> > Element g = doc.getElementById("circleGroup"); >> > while (i.hasNext()) { >> > Point2D pt2d = i.next(); >> > Element e = doc.createElementNS(SVGNS, "circle"); >> > e.setAttributeNS(null, "cx", ""+pt2d.getX()); >> > e.setAttributeNS(null, "cy", ""+pt2d.getY()); >> > e.setAttributeNS(null, "r", "5"); >> > g.appendChild(g); >> > } >> > }); >> > >> >> >> >> >> >> >> >> > Well you're not adding them to a document in the file system, but >> the >> >> > JSVGCanvas certainly has a reference to an SVGDocument in memory, >> > right? >> >> > >> >> > Michael Bishop >> >> > >> >> > -----Original Message----- >> >> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >> >> > Sent: Monday, February 27, 2006 1:18 PM >> >> > To: [email protected] >> >> > Subject: RE: Red Spots >> >> > >> >> > Hi there! >> >> > >> >> > I can't make the spots part of the document, because they are drawn >> >> > after >> >> > getting the information from a database (Accident database) ...is >> > there >> >> > a >> >> > way when a mouse clicks on any of the spots to activate an event? >> >> > >> >> > ThankU >> >> > >> >> > yasmin >> >> > >> >> > >> >> > >> >> > >> >> > >> >> >> Hi Yasmin, >> >> >> >> >> >> [EMAIL PROTECTED] wrote on 02/27/2006 12:42:09 PM: >> >> >> >> >> >>> ...I've drawn the circles on the canvas, they are not part of my >> svg >> >> >>> document such that the actual file is not altered, the the >> circles >> >> > are >> >> >> not >> >> >>> individual elements - any ideas :( >> >> >> >> >> >> Yes, make them part of your document ;) >> >> >> Really this is the simplest thing. If you want to minimize the >> >> >> 'impact' on the original document put all the circle in a special >> >> > group >> >> >> (probably dynamically created) so you can just delete the group to >> >> > 'reset' >> >> >> the document. This way you can let the SVG engine do all the >> event >> >> >> tracking. >> >> >> >> >> >> You could add an event listener (mouse move or the like) to the >> >> >> rootmost SVG element and you will get notified of any mouse event >> >> >> over any element in the document. You could then manually check >> > these >> >> >> points against your circles. But this seems like a bunch of extra >> >> > work >> >> >> for nothing. >> >> >> >> >> >>> >> >> >>> yasmin >> >> >>> >> >> >>> >> >> >>> > Hello, >> >> >>> > For events, I attach an event to the entire document. For >> >> >>> > individual elements, this may work. You'll need to get your >> > circle >> >> > as >> >> >>> > an org.w3c.dom.Element. >> >> >>> > >> >> >>> > EventTarget eventTarget = (EventTarget) yourElement; >> >> >>> > eventTarget.addEventListener(SVGConstants.SVG_EVENT_MOUSEDOWN, >> new >> >> >>> > YourEventListener(), false); >> >> >>> > >> >> >>> > Michael Bishop >> >> >>> > >> >> >>> > -----Original Message----- >> >> >>> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >> >> >>> > Sent: Monday, February 27, 2006 12:13 PM >> >> >>> > To: [email protected] >> >> >>> > Subject: Red Spots >> >> >>> > >> >> >>> > >> >> >>> > Hi Michael Bishop, >> >> >>> > >> >> >>> > I have been beavering on my project and have successfully >> > converted >> >> > my >> >> >>> > screen coordinates to documents and can interact with my >> database >> >> > to >> >> >>> > retrieve the information for the current view and show red >> spots >> > on >> >> >> the >> >> >>> > areas where accidents have happend on the map ...now I need to >> > make >> >> >> the >> >> >>> > red spots active so when a user clicks on a red spot the >> relevant >> >> >>> > information about that particular accident is displayed ...i >> > simply >> >> >> used >> >> >>> > the following code to create the red spot: >> >> >>> > >> >> >>> > Graphics spot = canvas.getGraphics(); >> >> >>> > spot.setColor(Color.RED); >> >> >>> > spot.fillOval(x,y,22,22); >> >> >>> > spot.dispose(); >> >> >>> > >> >> >>> > but i cant assign an ActionEvent to the spot ...Any ideas? >> >> >>> > >> >> >>> > Many thanks in advance :) >> >> >>> > >> >> >>> > Yasmin >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> >> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> >> >> >>> >> <HTML> >> >> >>> >> <HEAD> >> >> >>> >> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; >> >> >>> > charset=iso-8859-1"> >> >> >>> >> >> >> >>> >> >> >> >>> >> <META NAME="Generator" CONTENT="MS Exchange Server version >> >> >>> > 6.5.7226.0"> >> >> >>> >> <TITLE>RE: Coordinates</TITLE> >> >> >>> >> </HEAD> >> >> >>> >> <BODY> >> >> >>> >> <DIV id=idOWAReplyText99836 dir=ltr> >> >> >>> >> <DIV dir=ltr><FONT face=Arial color=#000000 size=2>Element >> > element >> >> >> >> >> >>> >> >> >> > >> svgDocument.createElement(SVGConstants.SVG_CIRCLE_TAG);</FONT></DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial >> >> >>> >> size=2>element.setAttribute(SVGConstants.SVG_CX_ATTR, >> >> >>> >> xPosition);</FONT></DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial >> >> >>> >> size=2>element.setAttribute(SVGConstants.SVG_CY_ATTR, >> >> >>> >> yPosition);</FONT></DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial >> >> >>> >> size=2>element.setAttribute(SVGConstants.SVG_R_ATTR, >> >> >>> > radius);</FONT></DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial >> >> >>> >> size=2>element.setAttribute(SVGConstants.SVG_FILL_ATTR, >> >> >>> >> "red");</FONT></DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial >> >> >>> >> >> >> > size=2>svgDocument.getDocumentElement.append(element);</FONT></DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial size=2>Use code completion or >> the >> >> > Batik >> >> >>> >> Javadoc. Most of those SVGConstants references are >> probably >> >> >>> >> wrong.</FONT></DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV> >> >> >>> >> <DIV dir=ltr><FONT face=Arial size=2>Michael >> >> >> Bishop</FONT></DIV></DIV> >> >> >>> >> <DIV dir=ltr><BR> >> >> >>> >> <HR tabIndex=-1> >> >> >>> >> <FONT face=Tahoma size=2><B>From:</B> [EMAIL PROTECTED] >> >> >>> >> [mailto:[EMAIL PROTECTED]<BR><B>Sent:</B> Sun 2/19/2006 >> >> > 3:07 >> >> >>> >> PM<BR><B>To:</B> >> >> >> [email protected]<BR><B>Subject:</B> >> >> >>> > RE: >> >> >>> >> Coordinates<BR></FONT><BR></DIV> >> >> >>> >> <DIV> >> >> >>> >> <P><FONT size=2>me again!<BR><BR>...I think I don't need to >> >> > convert >> >> >>> > back >> >> >>> >> to >> >> >>> >> screen coordinates I should be<BR>able to use the document >> >> >>> > coordinates, >> >> >>> >> but how >> >> >>> >> can I draw a red-spot<BR>(filled circle) and a given location >> on >> >> > the >> >> >>> >> canvas?<BR><BR>ThankU in advance<BR><BR>yasmin<BR><BR>> >> >> >>> > <!DOCTYPE >> >> >>> >> HTML >> >> >>> >> PUBLIC "-//W3C//DTD HTML 3.2//EN"><BR>> >> > <HTML><BR>> >> >> >>> >> <HEAD><BR>> <META HTTP-EQUIV="Content-Type" >> >> >>> >> CONTENT="text/html; >> >> >>> >> charset=iso-8859-1"><BR>><BR>><BR>> <META >> >> >>> > NAME="Generator" >> >> >>> >> CONTENT="MS Exchange Server version 6.5.7226.0"><BR>> >> >> >>> >> <TITLE>Coordinates</TITLE><BR>> >> >> > </HEAD><BR>> >> >> >>> >> <BODY><BR>> <DIV id=idOWAReplyText8269 >> >> >> dir=ltr><BR>> >> >> >>> >> <DIV >> >> >>> >> dir=ltr><FONT face=Arial color=#000000 size=2>Not >> sure; >> >> >>> > haven't >> >> >>> >> done<BR>> it in<BR>> reverse.&nbsp; There is a >> method >> >> > for >> >> >> an >> >> >>> >> SVGLocatable called getScreenCTM<BR>> that<BR>> may be >> of >> >> >>> >> use.</FONT></DIV><BR>> <DIV >> dir=ltr><FONT >> >> >>> >> face=Arial >> >> >>> >> size=2></FONT>&nbsp;</DIV><BR>> <DIV >> >> >>> >> dir=ltr><FONT face=Arial size=2>Michael >> >> >>> >> Bishop</FONT></DIV></DIV><BR>> <DIV >> >> >>> >> dir=ltr><BR><BR>> <HR tabIndex=-1><BR>> >> >> > <FONT >> >> >>> >> face=Tahoma size=2><B>From:</B> >> >> >>> >> [EMAIL PROTECTED]<BR>> >> >> >>> >> [<A >> >> >>> >> >> >> >>> > >> >> >> >> >> > >> > >> href="mailto:[EMAIL PROTECTED]">mailto:[EMAIL PROTECTED]</A> >> >> >>> > ]<BR><B>Sent:</B> >> >> >>> >> Sun 2/19/2006 1:08<BR>> PM<BR><B>To:</B> >> >> >>> >> >> >> >>> > >> >> >> >> >> > >> > >> [email protected]<BR><B>Subject:</B>< >> >> >>> > BR>> >> >> >>> >> >> Coordinates<BR></FONT><BR></DIV><BR>> >> >> >>> >> <DIV><BR>> <P><FONT size=2>Hi Michael >> >> >>> >> Bishop,<BR><BR>...I've converted my screen<BR>> >> >> >>> > coordinates >> >> >>> >> to my >> >> >>> >> document coordinates - now<BR>I'm trying to >> convert<BR>> >> >> >>> >> document<BR>> coordinates to screen coordinate so that >> >> >>> > at<BR>that >> >> >>> >> point >> >> >>> >> on the map, I<BR>> can draw<BR>> a red_spot on the >> >> > canvas...any >> >> >>> >> ideas?<BR><BR>ThankU in<BR>> >> >> >>> >> >> >> >>> > >> >> >> >> >> > >> > >> advance<BR><BR>yasmin<BR><BR><BR>--------- >> >> >>> > >> >> >> >> >> > >> > >> ------------------------------------------------------------<BR>To >> >> >>> > <BR>> >> >> >>> >> unsubscribe, e-mail: >> >> >>> >> >> >> > [EMAIL PROTECTED]<BR>For<BR>> >> >> >>> >> additional >> >> >>> >> commands, e-mail:<BR>> >> >> >>> >> >> >> >>> > >> >> >> >> >> > >> > >> [EMAIL PROTECTED]<BR></FONT></P> >> >> >>> > </DIV><BR>><BR>> >> >> >>> >> </BODY><BR>> >> >> >>> >> >> >> >>> > >> >> >> >> >> > >> > >> </HTML><BR><BR><BR><BR>------------------------------------------- >> >> >>> > --------------------------<BR>To >> >> >>> >> unsubscribe, e-mail: >> >> >>> > [EMAIL PROTECTED]<BR>For >> >> >>> >> additional commands, e-mail: >> >> >>> >> [EMAIL PROTECTED]<BR></FONT></P></DIV> >> >> >>> >> >> >> >>> >> </BODY> >> >> >>> >> </HTML> >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > >> >> > >> --------------------------------------------------------------------- >> >> >>> > To unsubscribe, e-mail: >> >> > [EMAIL PROTECTED] >> >> >>> > For additional commands, e-mail: >> >> >> [EMAIL PROTECTED] >> >> >>> > >> >> >>> > >> >> > >> --------------------------------------------------------------------- >> >> >>> > To unsubscribe, e-mail: >> >> > [EMAIL PROTECTED] >> >> >>> > For additional commands, e-mail: >> >> >> [EMAIL PROTECTED] >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> > --------------------------------------------------------------------- >> >> >>> To unsubscribe, e-mail: >> >> > [EMAIL PROTECTED] >> >> >>> For additional commands, e-mail: >> >> > [EMAIL PROTECTED] >> >> >>> >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> To unsubscribe, e-mail: >> > [EMAIL PROTECTED] >> >> >> For additional commands, e-mail: >> >> > [EMAIL PROTECTED] >> >> >> >> >> >> >> >> >> >> >> > >> >> > >> >> > >> >> > >> --------------------------------------------------------------------- >> >> > To unsubscribe, e-mail: >> [EMAIL PROTECTED] >> >> > For additional commands, e-mail: >> > [EMAIL PROTECTED] >> >> > >> >> > >> --------------------------------------------------------------------- >> >> > To unsubscribe, e-mail: >> [EMAIL PROTECTED] >> >> > For additional commands, e-mail: >> > [EMAIL PROTECTED] >> >> > >> >> > >> >> > >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: >> [EMAIL PROTECTED] >> >> For additional commands, e-mail: >> [EMAIL PROTECTED] >> >> >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: >> [EMAIL PROTECTED] >> > >> > >> > >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
