/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package app.navigps.gui.svgComponents; import javax.swing.event.EventListenerList; import javax.swing.event.TreeModelListener; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * * @author vara */ public class SVGDOMTreeModel implements TreeModel{ private Document doc; /** * */ protected EventListenerList listenerList = new EventListenerList(); /** * * @param d */ public SVGDOMTreeModel(Document d){ doc =d; } @Override public Object getRoot() { return doc.getDocumentElement(); } @Override public Object getChild(Object parent, int index) { Node node = (Node)parent; NodeList nl = node.getChildNodes(); return nl.item(index); } @Override public int getChildCount(Object parent) { Node node = (Node)parent; NodeList nl = node.getChildNodes(); return nl.getLength(); } @Override public boolean isLeaf(Object node) { return getChildCount(node)==0; } @Override public void valueForPathChanged(TreePath path, Object newValue) { } @Override public int getIndexOfChild(Object parent, Object child) { Node node = (Node)parent; NodeList nl = node.getChildNodes(); for (int i = 0; i < nl.getLength(); i++) { if(getChild(node, i)==child) return i; } return -1; } @Override public void addTreeModelListener(TreeModelListener l) { } @Override public void removeTreeModelListener(TreeModelListener l) { } }