Thomas DeWeese wrote:

You are close, basically you want to make your class implement
the Overlay interface from Batik, and associate your mapIt instance
with the canvas as an overlay

Well I guess I'm getting there, but I need more help. Perhaps a good restructure of my app is in order?



I got this now, and of course it still doesn't work. (I didn't quite understand James' ideas):


import java.awt.*;
import java.awt.Graphics2D;
import javax.swing.*;

import org.apache.batik.swing.JSVGCanvas;
import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
import org.apache.batik.swing.gvt.Overlay;

public class mapIt implements Overlay{
public static void main(String[] args) {
JFrame frame = buildGUI();
frame.setSize(200, 600);
frame.setVisible(true);
}


  public static JSVGCanvas buildCanvas(){
      final JSVGCanvas canvas = new JSVGCanvas();

      canvas.setBackground(Color.green);
      canvas.setURI("file:/home/riis/P2/maps/gangen.svg");

      canvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
         public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
                 System.out.print("Rendering done");
                 Graphics box = canvas.getGraphics();
                 paint(box);
          }
      });

canvas.getOverlays().add(new mapIt()); return canvas;
}
public static JFrame buildGUI(){
JFrame f = new JFrame("PANTS - MapIt");
JSVGCanvas svgCanvas = buildCanvas();
JSlider slider = new JSlider();
JPanel panel = new JPanel(new BorderLayout());


          panel.add("North", slider);

          panel.add("Center", svgCanvas);

          f.getContentPane().add(panel);

       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       return f;
  }

public static void paint(Graphics g) {
g.setColor(java.awt.Color.RED);
g.fillRect(10,10,100,100);
}
}



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to