NXvalidate  1
 All Classes Namespaces Files Functions Variables
XMLIconTreeHandler.java
Go to the documentation of this file.
1 /* NeXus - Neutron & X-ray Common Data Format
2  *
3  * NeXus file validation GUI tool.
4  *
5  * Copyright (C) 2010 Nexus Team
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  *
21  * For further information, see <http://www.nexusformat.org/>
22  *
23  * XMLIconTreeHandler.java
24  *
25  */
26 
27 package org.nexusformat.nxvalidate;
28 
29 import java.util.ResourceBundle;
30 import javax.swing.tree.DefaultMutableTreeNode;
31 
32 import org.nexusformat.nxvalidate.NXvalidateGuiTree.ITag;
33 import org.xml.sax.Attributes;
34 import org.xml.sax.SAXException;
35 import org.xml.sax.helpers.DefaultHandler;
36 
37 public class XMLIconTreeHandler extends DefaultHandler {
38 
39  private DefaultMutableTreeNode root, currentNode;
40  private ResourceBundle bundle = null;
41 
42  public DefaultMutableTreeNode getRoot() {
43  return root;
44  }
45 
46  @Override
47  public void startElement(String namespaceURI, String lName, String qName,
48  Attributes attrs) throws SAXException {
49  String eName = lName;
50  if ("".equals(eName)) {
51  eName = qName;
52  }
53  ITag t = new ITag(eName, attrs);
54  DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(t);
55  if (currentNode == null) {
56  root = newNode;
57  } else {
58  currentNode.add(newNode);
59  }
60  currentNode = newNode;
61  }
62 
63  @Override
64  public void endElement(String namespaceURI, String sName, String qName)
65  throws SAXException {
66  currentNode = (DefaultMutableTreeNode) currentNode.getParent();
67  }
68 
69  @Override
70  public void characters(char buf[], int offset, int len) throws SAXException {
71  String s = new String(buf, offset, len).trim();
72  ((ITag) currentNode.getUserObject()).addData(s);
73  }
74 }