Hi all,
        my problem is that i modifiy the svg document after i loaded it and
although i am using the updateManager. i looks like all things works but
however the changes aren't displayed at all.

Enclosed the java programm. 

link to the svg file: http://michael.nanihil.com/02.svg

best regards, michael
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import org.apache.batik.bridge.UpdateManager;
import org.apache.batik.bridge.UpdateManagerEvent;
import org.apache.batik.bridge.UpdateManagerListener;
import org.apache.batik.dom.svg.SAXSVGDocumentFactory;
import org.apache.batik.swing.JSVGCanvas;
import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
import org.apache.batik.util.XMLResourceDescriptor;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class Apps {

	public static void main(String[] args) {
		
		JFrame apps = new JFrame();
		Apps myapps = new Apps(apps);
		apps.getContentPane().add(myapps.createComponents());
		apps.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		apps.setSize(1000, 700);
		apps.setVisible(true);
	}

	JSVGCanvas canvas;
	Document doc;
	Element svg;
	JButton button = new JButton("Load...");
	JLabel label = new JLabel();
	JPanel panel;
	UpdateManager um;
	public JComponent createComponents() {
		panel = new JPanel(new BorderLayout());

		JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
		p.add(button);
		p.add(label);

		panel.add("North", p);
		panel.add("Center", canvas);
		
	

		canvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
			public void gvtRenderingPrepare(GVTTreeRendererEvent e) {
				label.setText("Rendering Started...");
			}

			public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
				um=canvas.getUpdateManager();
				
			}
		});
		canvas.addMouseListener(new MouseListener() {

			@Override
			public void mouseClicked(MouseEvent e) {
				System.out.println("fsafda");
				updateBar("a1", 0);
			}

			@Override
			public void mouseEntered(MouseEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void mouseExited(MouseEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void mousePressed(MouseEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void mouseReleased(MouseEvent e) {
				// TODO Auto-generated method stub

			}

		});

		canvas.addUpdateManagerListener(new UpdateManagerListener() {

			@Override
			public void managerResumed(UpdateManagerEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void managerStarted(UpdateManagerEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void managerStopped(UpdateManagerEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void managerSuspended(UpdateManagerEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void updateCompleted(UpdateManagerEvent arg0) {
				System.out.println("updateComp");

			}

			@Override
			public void updateFailed(UpdateManagerEvent arg0) {
				System.out.println("updateFail");

			}

			@Override
			public void updateStarted(UpdateManagerEvent arg0) {
				System.out.println("updateStart");

			}

		});

		return panel;
	}

	JFrame frame;

	public Apps(JFrame jf) {
		frame = jf;
		// Create a new JSVGCanvas.
		canvas = new JSVGCanvas();
		canvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);

		try {
			// Parse the barChart.svg file into a Document.
			String parser = XMLResourceDescriptor.getXMLParserClassName();
			SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
			doc = f.createDocument(new File("/home/mh/UNI/UUI/ue2/02.svg")
					.toURI().toString());

			svg = doc.getDocumentElement();
			canvas.setDocument(doc);

		} catch (Exception ex) {
			System.out.println("failed");
			ex.printStackTrace();
		}
	}

	public void updateBar(final String name, final float value) {
		um.getUpdateRunnableQueue().invokeLater(
				new Runnable() {
					public void run() {
						Element bar = doc.getElementById(name);
						if (bar == null) {
							return;
						}
						//Node par = bar.getParentNode();

						System.out.println(bar.getFirstChild().getNodeValue());
						bar.getFirstChild().setNodeValue("F");
						System.out.println(bar.getFirstChild().getNodeValue());
						//par.replaceChild(par.getFirstChild(), bar);
					
						canvas.repaint();
						//panel.repaint();
						//frame.repaint();
						

					}
				});
	}
}

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

Reply via email to