package gps.svg.test;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.geom.*;
import javax.swing.*;
import org.apache.batik.swing.*;
import org.apache.batik.svggen.*;
import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.apache.batik.swing.gvt.Interactor;
import org.w3c.dom.*;
import org.w3c.dom.svg.*;
public class Test1 {
public static void main(String[] args) {
// Create an SVG document.
DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
final SVGDocument doc = (SVGDocument) impl.createDocument(svgNS, "svg", null);
// Create a converter for this document.
final SVGGraphics2D g = new SVGGraphics2D(doc);
// Do some drawing.
final Shape circle = new Ellipse2D.Double(0, 0, 50, 50);
g.setPaint(Color.red);
g.fill(circle);
g.translate(60, 60);
g.setPaint(Color.green);
g.fill(circle);
g.translate(0, 60);
g.setPaint(Color.blue);
g.fill(circle);
g.setSVGCanvasSize(new Dimension(180, 180));
// Populate the document root with the generated SVG content.
Element root = doc.getDocumentElement();
g.getRoot(root);
// Display the document.
JSVGCanvas canvas = new JSVGCanvas();
JFrame f = new JFrame();
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.getContentPane().add(canvas);
canvas.setSVGDocument(doc);
canvas.setEnableZoomInteractor(true);
canvas.getInteractors().add(new Interactor() {
public boolean startInteraction(InputEvent inputEvent) {
System.out.println("si");
return true;
}
public boolean endInteraction() {
System.out.println("ei");
return true;
}
public void keyTyped(KeyEvent e) {
System.out.println("kt");
}
public void keyPressed(KeyEvent e) {
System.out.println("kp");
}
public void keyReleased(KeyEvent e) {
System.out.println("kr");
}
public void mouseClicked(MouseEvent e) {
System.out.println("mc");
SVGPoint p = doc.getRootElement().createSVGPoint();
p.setX(60);
p.setY(20);
doc.getRootElement().forceRedraw();
}
public void mousePressed(MouseEvent e) {
System.out.println("mp");
}
public void mouseReleased(MouseEvent e) {
System.out.println("mr");
}
public void mouseEntered(MouseEvent e) {
System.out.println("men");
}
public void mouseExited(MouseEvent e) {
System.out.println("mex");
}
public void mouseDragged(MouseEvent e) {
System.out.println("md");
}
public void mouseMoved(MouseEvent e) {
System.out.println("mm");
}
});
f.pack();
f.setVisible(true);
}
}