Source Code : XML Tree: Simple XML utility class

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

XML Tree: Simple XML utility class

  
import java.awt.Color;
import java.awt.Component;
import java.io.File;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.ToolTipManager;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreeModel;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class VSX2 {

  public TreeModel parse(String filename) throws Exception {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    XMLIconTreeHandler handler = new XMLIconTreeHandler();
    SAXParser saxParser = factory.newSAXParser();
    saxParser.parse(new File(filename), handler);
    return new DefaultTreeModel(handler.getRoot());
  }

  public static class XMLIconTreeHandler extends DefaultHandler {
    private DefaultMutableTreeNode root, currentNode;

    public DefaultMutableTreeNode getRoot() {
      return root;
    }

    public void startElement(String namespaceURI, String lName, String qName, Attributes attrs)
        throws SAXException {
      String eName = lName;
      if ("".equals(eName))
        eName = qName;
      ITag t = new ITag(eName, attrs);
      DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(t);
      if (currentNode == null) {
        root = newNode;
      } else {
        currentNode.add(newNode);
      }
      currentNode = newNode;
    }

    public void endElement(String namespaceURI, String sName, String qName) throws SAXException {
      currentNode = (DefaultMutableTreeNode) currentNode.getParent();
    }

    public void characters(char buf[], int offset, int len) throws SAXException {
      String s = new String(buf, offset, len).trim();
      ((ITag) currentNode.getUserObject()).addData(s);
    }
  }

  public static class ITag implements IconAndTipCarrier {
    private String name;

    private String data;

    private Attributes attr;

    private Icon icon;

    private String tipText;

    public ITag(String n, Attributes a) {
      name = n;
      attr = a;
      for (int i = 0; i < attr.getLength(); i++) {
        String aname = attr.getQName(i);
        String value = attr.getValue(i);
        if (aname.equals("icon")) {
          tipText = value;
          icon = new ImageIcon(value);
          break;
        }
      }
    }

    public String getName() {
      return name;
    }

    public Attributes getAttributes() {
      return attr;
    }

    public void setData(String d) {
      data = d;
    }

    public String getData() {
      return data;
    }

    public String getToolTipText() {
      return tipText;
    }

    public Icon getIcon() {
      return icon;
    }

    public void addData(String d) {
      if (data == null) {
        setData(d);
      } else {
        data += d;
      }
    }

    public String getAttributesAsString() {
      StringBuffer buf = new StringBuffer(256);
      for (int i = 0; i < attr.getLength(); i++) {
        buf.append(attr.getQName(i));
        buf.append("="");
        buf.append(attr.getValue(i));
        buf.append(""");
      }
      return buf.toString();
    }

    public String toString() {
      String a = getAttributesAsString();
      return name + ": " + a + (data == null ? "" : " (" + data + ")");
    }
  }

  public static void main(String args[]) throws Exception {
    JFrame frame = new JFrame("Tree Renderer Test");
    VSX2 parser = new VSX2();
    JTree tree = new JTree(parser.parse("testfile.xml"));

    // Steal the default icons from the default renderer...
    DefaultTreeCellRenderer rend1 = new DefaultTreeCellRenderer();
    IconAndTipRenderer rend2 = new IconAndTipRenderer(rend1.getOpenIcon(), rend1.getClosedIcon(),
        rend1.getLeafIcon());
    tree.setCellRenderer(rend2);
    ToolTipManager.sharedInstance().registerComponent(tree);

    frame.getContentPane().add(new JScrollPane(tree));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 400);
    frame.setVisible(true);
  }
}

interface IconAndTipCarrier {
  public Icon getIcon();

  public String getToolTipText();
}

class IconAndTipRenderer extends JLabel implements TreeCellRenderer {
  Color backColor = new Color(0xFF, 0xCC, 0xFF);

  Icon openIcon, closedIcon, leafIcon;

  String tipText = "";

  public IconAndTipRenderer(Icon open, Icon closed, Icon leaf) {
    openIcon = open;
    closedIcon = closed;
    leafIcon = leaf;
    setBackground(backColor);
    setForeground(Color.black);
  }

  public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,
      boolean expanded, boolean leaf, int row, boolean hasFocus) {
    setText(value.toString());
    if (selected) {
      setOpaque(true);
    } else {
      setOpaque(false);
    }

    IconAndTipCarrier itc = null;
    if (value instanceof DefaultMutableTreeNode) {
      Object uo = ((DefaultMutableTreeNode) value).getUserObject();
      if (uo instanceof IconAndTipCarrier) {
        itc = (IconAndTipCarrier) uo;
      }
    } else if (value instanceof IconAndTipCarrier) {
      itc = (IconAndTipCarrier) value;
    }
    if ((itc != null) && (itc.getIcon() != null)) {
      setIcon(itc.getIcon());
      tipText = itc.getToolTipText();
    } else {
      tipText = " ";
      if (expanded) {
        setIcon(openIcon);
      } else if (leaf) {
        setIcon(leafIcon);
      } else {
        setIcon(closedIcon);
      }
    }
    return this;
  }

  public String getToolTipText() {
    return tipText;
  }
}

           
         
    
  

Thank with us