Here is what I have so far: http://www.jsoft.com/ts/tools/jscode/simpleEditor/MouseEvent2.java Note: The location is temporary.
I took the SVG below and removed the <script> and the init() in the <svg> tag to test. It works!!!
Now to start adding to it.
Uhhh... My Java is rusty. It took about a day for the memory to start coming back ;-) Any comments about what I did wrong or could have done better are gratefully accepted.
Gary
From the comments in the file.
==============
This adds a SVG shape where you click the mouse. It is based on the
Batik JSVGCanvas tutorial
http://xml.apache.org/batik/svgcanvas.html
combined with the event code from the Scripting with Java tutorial
http://xml.apache.org/batik/javaScripting.html I also got info from here:
http://xml.apache.org/batik/domapi.htmlhttp://xml.apache.org/batik/javadoc/org/apache/batik/dom/events/DOMMouseEvent.html There was some good info from YAGE: Yet Another Graphical Editor http://www.hta-bi.bfh.ch/Projects/gedit1/docbkx_html/book1.html http://www.hta-bi.bfh.ch/Projects/gedit1/docbkx_html/x3649.html
I got the latest from CVS put this file in <batik>/source/com/jsoft/jscode/test and ran ./build.sh runtest com.jsoft.jscode.test.MouseEvent2 Woo Hoo!!! The application runs and I can load my SVG file and begin adding shapes where I click. ==============
Gary Frederick wrote:
Howdy,
I'm finally starting to work with Batik and Java. I got a version from CVS, built it and ran the tests. I copied an example and built and ran that. Now I am ready to take over the world
or at least my part ;-)
I have some SVG that uses JavaScript to move shapes around. I want to do the same with Java. My Java is rusty. I would like a complete example or two that included events like mousedown. Any pointers?
Thanks,
Gary
Here is a JavaScript version of a program that adds shapes when you click the mouse.
<?xml version="1.0"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg width="800" height="400" onload="init(evt)" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>test adding blocks with mouse</title> <desc>copy the shape where the mouse is clicked mousedown - get location, add shape</desc> <script type="text/ecmascript"> <![CDATA[ var svgns = "http://www.w3.org/2000/svg"; var SVGDoc; var mousetrap; // used to trap some mouse events var firstShape;
function init(evt) { // Get the Document SVGDoc = evt.getTarget().getOwnerDocument(); firstShape = SVGDoc.getElementById("firstShape"); mousetrap = SVGDoc.getElementById("trap"); mousetrap.addEventListener("mousedown", mousedown, false); }
function mousedown(evt){ var x = parseInt(evt.clientX); var y = parseInt(evt.clientY); var aRect = SVGDoc.createElementNS(svgns, "rect"); aRect.setAttributeNS(null, "width", "42"); aRect.setAttributeNS(null, "height", "24"); aRect.setAttributeNS(null, "x", x); aRect.setAttributeNS(null, "y", y); aRect.setAttributeNS(null, "fill", "lightgreen"); firstShape.parentNode.appendChild(aRect); } ]]> </script> <rect id="trap" x="0" y="0" width="100%" height="100%" fill-opacity="0.2" fill="lightblue"/> <g id="firstShape" transform="translate(100 100)"> <title>first rect</title> <rect x="0" y="0" rx="5" width="60" height="28" fill="lightgreen"/> <text x="4" y="14">first rect</text> </g> </svg>
--------------------------------------------------------------------- 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]
