public void initOpenedXMLTree(NodeList childEls,Point parentPoint) {
        try {
            Runnable r=new Runnable() {
                NodeList childEls;
                Point pt;
                public void setArgs(NodeList childEls,Point p) {
                    this.childEls=childEls;
                    pt=p;
                }
                public void run() {
                    vxd.controller.refreshXMLViews();
                    try {
                        Runnable r=new Runnable() {
                            NodeList childEls;
                            Point grandPoint;
                            public void setArgs(NodeList childEls,Point p) {
                                this.childEls=childEls;
                                grandPoint=p;
                            }
                            public void run() {
                                for(int l=0;l<childEls.getLength();++l) {
                                    Node childNd=childEls.item(l);
                                    if(childNd instanceof Element) {
                                        Element childEl=(Element)childNd;
                                        if(vxd.DEBUG)
                                            System.out.println("Child: "+childEl.getTagName());
                                        vxd.controller.addLoadedElementIcon(childEl, grandPoint.x, grandPoint.y);
                                        try {
                                            Runnable r=new Runnable() {
                                                Element childEl;
                                                
                                                public void setArgs(Element childEl) {
                                                    this.childEl=childEl;
                                                }
                                                public void run() {
                                                    NodeList grandEls=childEl.getChildNodes();
                                                    if(childEl.getAttribute("XPos")!=null && childEl.getAttribute("YPos")!=null) {
                                                        try{
                                                            int x=Integer.parseInt(childEl.getAttribute("XPos"));
                                                            int y=Integer.parseInt(childEl.getAttribute("YPos"));
                                                            Point greatPoint=new Point(x,y);
                                                            initOpenedXMLTree(grandEls,greatPoint);
                                                        } catch(NumberFormatException nfe){;}
                                                    }
                                                }
                                            };
                                            Class[] args=new Class[1];
                                            args[0]=Element.class;
                                            
                                            Object[] prms=new Object[1];
                                            prms[0]=childEl;
                                            
                                            
                                            r.getClass().getMethod("setArgs",args).invoke(r,prms);
                                            SwingUtilities.invokeLater(r);
                                        } catch(Exception grgdex){grgdex.printStackTrace();}
                                    }
                                }
                            }
                        };
                        Class[] args=new Class[2];
                        args[0]=NodeList.class;
                        args[1]=Point.class;
                        
                        Object[] prms=new Object[2];
                        prms[0]=childEls;
                        prms[1]=pt;
                        
                        r.getClass().getMethod("setArgs",args).invoke(r,prms);
                        SwingUtilities.invokeLater(r);
                    } catch(Exception rex){rex.printStackTrace();};
                }
            };
            
            Class[] args=new Class[2];
            args[0]=NodeList.class;
            args[1]=Point.class;
            
            Object[] prms=new Object[2];
            prms[0]=childEls;
            prms[1]=parentPoint;
            
            r.getClass().getMethod("setArgs",args).invoke(r,prms);
            SwingUtilities.invokeLater(r);
        } catch(Exception rex){rex.printStackTrace();}
    }