Hi guys this is my first post in the forum.

I'm just started to use the batik framework.
I'm writing an applet to show a svg file. I use eclipse as IDE to develop
the applet an it works. It show me the svg file.
When i tried to do the same on an html page using the applet tag, the applet
doesn't show at all.
I've added an display message on start of the applet and i see it but the
svg file isn't show.
Can anyone help me?

the Source of the applet is the following:

public class SVGViewer extends JApplet {

    JSVGCanvas svgCanvas;
    Document document;
    Window window;
    
        public void init()
        {
                String svgName;
                try
                {
                        svgCanvas = new JSVGCanvas();
                        getContentPane().add(svgCanvas);
                        
                        svgName = getParameter("svgName");
                        
                        // Parse the barChart.svg file into a Document.
                String parser = XMLResourceDescriptor.getXMLParserClassName();
                //SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
                        URL url = new URL(getCodeBase(), svgName);
                        svgCanvas.setURI(url.toString());
                        
                //document = f.createDocument(url.toString());
                        setBackground(Color.ORANGE);
                }
                catch (Exception e) {
                        // TODO: handle exception
                }
        }
        
        public void start()
        {
                JOptionPane.showMessageDialog(this, "STart");
                svgCanvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
                //svgCanvas.setDocument(document);
                //svgCanvas.setURI("a/846004349.image");
                try
                {
                svgCanvas.addSVGLoadEventDispatcherListener
        (new SVGLoadEventDispatcherAdapter() {
                public void svgLoadEventDispatchStarted
                    (SVGLoadEventDispatcherEvent e) {
                    // At this time the document is available...
                    document = svgCanvas.getSVGDocument();
                    Element root = document.getDocumentElement();
                    int w =
(int)Double.parseDouble(root.getAttribute("width"));
                    int h =
(int)Double.parseDouble(root.getAttribute("height"));
                    
                    setSize(w, h);
                    
                    // ...and the window object too.
                    window =
svgCanvas.getUpdateManager().getScriptingEnvironment().createWindow();
                    //window.alert("INIt");
                    // Registers the listeners on the document
                    // just before the SVGLoad event is dispatched.
                    registerListeners();
                    // It is time to pack the frame.
                }
            });
                }
                catch (Exception e) {
                        // TODO: handle exception
                }
                //window =
svgCanvas.getUpdateManager().getScriptingEnvironment().createWindow();
        }
        
        public void stop()
        {
                svgCanvas.setDocument(null);
        }
        
        public void destroy()
        {
                svgCanvas.dispose();
        }
        
        public void registerListeners() {
        // Gets an element from the loaded document.
        String QS = document.getDocumentURI();
        
        if(QS.indexOf("schemazoompre.aspx")!=-1)
        {
            QS = QS.replace("schemazoompre.aspx","main.aspx");
        }
        
        // Gets an element from the loaded document.
        NodeList nl = document.getElementsByTagName("g");
        for (int i = 0; i < nl.getLength(); i++)
        {
                if(nl.item(i).getAttributes().getNamedItem("onload") != null)
                {
                        EventTarget t = (EventTarget)nl.item(i);
                        t.addEventListener("mouseover", new OnMouseOver(), 
false);
                        t.addEventListener("mouseout", new OnMouseOut(), false);
                }
        }
    }
    public class OnMouseOver implements EventListener {
        public void handleEvent(Event evt) {
            // Make some actions here...
            // ... for example schedule an action for later:
                Element target = (Element)evt.getTarget();
                target = (Element)target.getParentNode();
                //window.alert(target.getTagName() + " : " +
target.getNodeValue());
                NodeList nl = target.getElementsByTagName("*");
                for (int i = 0; i < nl.getLength(); i++)
                {
                        //window.alert(nl.item(i).getNodeName());
                        if(nl.item(i).getAttributes().getNamedItem("stroke") != 
null)
                        {
                                //window.alert("Stroke");
                                Attr a = document.createAttribute("stroke");
                                a.setNodeValue("#03a8f8");
                                nl.item(i).getAttributes().setNamedItem(a);
                        }
                        else 
if(nl.item(i).getAttributes().getNamedItem("fill")!= null &&
nl.item(i).getNodeName() != "rect")
                {
                                //window.alert("fill & !rect");
                                Attr a = document.createAttribute("fill");
                                a.setNodeValue("#03a8f8");
                                nl.item(i).getAttributes().setNamedItem(a);
                }
                else if(nl.item(i).getNodeName() == "text")
                {
                        //window.alert("text1");
                        Attr a = document.createAttribute("fill");
                                a.setNodeValue("#03a8f8");
                                nl.item(i).getAttributes().setNamedItem(a);
                }
                }
        }
    }
    
    public class OnMouseOut implements EventListener {
        public void handleEvent(Event evt) {
            // Make some actions here...
            // ... for example schedule an action for later:
                Element target = (Element)evt.getTarget();
                target = (Element)target.getParentNode();
                //window.alert(target.getTagName() + " : " +
target.getNodeValue());
                NodeList nl = target.getElementsByTagName("*");
                for (int i = 0; i < nl.getLength(); i++)
                {
                        //window.alert(nl.item(i).getNodeName());
                        if(nl.item(i).getAttributes().getNamedItem("stroke") != 
null &&
nl.item(i).getAttributes().getNamedItem("stroke").getNodeValue() ==
"#03a8f8")
                        {
                                //window.alert("Stroke");
                                Attr a = document.createAttribute("stroke");
                                a.setNodeValue("#000000");
                                nl.item(i).getAttributes().setNamedItem(a);
                        }
                        else 
if(nl.item(i).getAttributes().getNamedItem("fill")!= null &&
nl.item(i).getAttributes().getNamedItem("fill").getNodeValue() == "#03a8f8")
                {
                                //window.alert("fill & !rect");
                                Attr a = document.createAttribute("fill");
                                a.setNodeValue("#000000");
                                nl.item(i).getAttributes().setNamedItem(a);
                }
                }
        }
    }
}

Thanks

E

--
View this message in context: 
http://batik.2283329.n4.nabble.com/Applet-does-not-display-tp3696178p3696178.html
Sent from the Batik - Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-h...@xmlgraphics.apache.org

Reply via email to