NXvalidate  1
 All Classes Namespaces Files Functions Variables
NXReducedToTree.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 Stephen Rankin
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  * NXReducedToTree.java
24  *
25  */
26 package org.nexusformat.nxvalidate;
27 
28 import java.util.Enumeration;
29 import java.util.HashMap;
30 import java.util.Vector;
31 import javax.swing.event.TreeModelEvent;
32 import javax.swing.event.TreeModelListener;
33 import javax.swing.tree.TreePath;
34 import javax.swing.tree.DefaultTreeModel;
35 import javax.swing.tree.TreeNode;
36 import org.nexusformat.nxvalidate.exceptions.NXvalidateException;
37 import org.w3c.dom.Document;
38 
39 
45 public class NXReducedToTree extends DefaultTreeModel {
46 
47  private Vector listenerList = new Vector();
48  private NXNodeMapper root = null;
49 
50  public NXReducedToTree(TreeNode root) {
51  super(root);
52  this.root = (NXNodeMapper) root;
53  }
54 
55  public void updateTree() {
56 
57  TreeModelEvent evt = new TreeModelEvent(this,
58  new Object[]{root});
60  }
61 
62  @Override
63  public Object getRoot() {
64 
65  return root;
66 
67  }
68 
69  @Override
70  public boolean isLeaf(Object aNode) {
71  // Determines whether the icon shows up to the left.
72  // Return true for any node with no children
73  NXNodeMapper node = (NXNodeMapper) aNode;
74 
75  if (node.getChildCount() > 0) {
76  return false;
77  }
78 
79  return true;
80  }
81 
82  @Override
83  public int getChildCount(Object parent) {
84 
85  NXNodeMapper node = (NXNodeMapper) parent;
86  return node.getChildCount();
87 
88  }
89 
90  @Override
91  public Object getChild(Object parent, int index) {
92 
93  NXNodeMapper node = (NXNodeMapper) parent;
94  return node.getChildAt(index);
95 
96  }
97 
98  @Override
99  public int getIndexOfChild(Object parent, Object child) {
100 
101  NXNodeMapper node = (NXNodeMapper) parent;
102  return node.getIndex((NXNodeMapper) child);
103 
104  }
105 
106  @Override
107  public void valueForPathChanged(TreePath path, Object newValue) {
108  }
109 
110  @Override
111  public void addTreeModelListener(TreeModelListener listener) {
112 
113  if ((listener != null) && !listenerList.contains(listener)) {
114  listenerList.addElement(listener);
115  }
116 
117  }
118 
119  @Override
120  public void removeTreeModelListener(TreeModelListener listener) {
121 
122  if (listener != null) {
123  listenerList.removeElement(listener);
124  }
125 
126  }
127 
128  public void fireTreeNodesChanged(TreeModelEvent e) {
129 
130  Enumeration listeners = listenerList.elements();
131 
132  while (listeners.hasMoreElements()) {
133  TreeModelListener listener =
134  (TreeModelListener) listeners.nextElement();
135  listener.treeNodesChanged(e);
136  }
137 
138 
139  }
140 
141  public void fireTreeNodesInserted(TreeModelEvent e) {
142 
143  Enumeration listeners = listenerList.elements();
144 
145  while (listeners.hasMoreElements()) {
146  TreeModelListener listener =
147  (TreeModelListener) listeners.nextElement();
148  listener.treeNodesInserted(e);
149  }
150 
151 
152  }
153 
154  public void fireTreeNodesRemoved(TreeModelEvent e) {
155 
156  Enumeration listeners = listenerList.elements();
157 
158  while (listeners.hasMoreElements()) {
159  TreeModelListener listener =
160  (TreeModelListener) listeners.nextElement();
161  listener.treeNodesRemoved(e);
162  }
163 
164 
165  }
166 
167  public void fireTreeStructureChanged(TreeModelEvent e) {
168 
169  Enumeration listeners = listenerList.elements();
170 
171  while (listeners.hasMoreElements()) {
172  TreeModelListener listener =
173  (TreeModelListener) listeners.nextElement();
174  listener.treeStructureChanged(e);
175  }
176 
177 
178  }
179 }