26 package org.nexusformat.nxvalidate;
29 import java.util.ArrayList;
30 import java.util.Enumeration;
31 import javax.swing.JTree;
32 import javax.swing.tree.TreePath;
33 import org.w3c.dom.Document;
46 if (tree.isSelectionEmpty()) {
50 ArrayList<NXNodeMapper> nodes =
new ArrayList<NXNodeMapper>();
51 ArrayList<TreePath> paths =
new ArrayList<TreePath>();
58 Enumeration children = baseNode.children();
63 ArrayList<NXNodeMapper> tmpPath = null;
64 ArrayList<NXNodeMapper> tmpPath2 = null;
67 while (children.hasMoreElements()) {
71 nodes.addAll(getSubNodes(tmpNode));
75 for (
int i = 0; i < nodes.size(); ++i) {
77 nodes.get(i).checkBadNode();
79 if(nodes.get(i).getBadNode()){
81 tmpPath =
new ArrayList<NXNodeMapper>();
86 while(!parent.toString().equals(baseNode.toString()) && parent!=null){
90 tmpPath.add(baseNode);
93 tmpPath2 =
new ArrayList<NXNodeMapper>();
95 int number = tmpPath.size() -1;
96 for(
int j = 0; j < tmpPath.size();++j){
97 tmpPath2.add(tmpPath.get(number -j));
100 paths.add(
new TreePath(tmpPath2.toArray()));
101 tree.expandPath(
new TreePath(tmpPath2.toArray()));
107 private ArrayList<NXNodeMapper> getSubNodes(
NXNodeMapper node){
109 ArrayList<NXNodeMapper> nodes =
new ArrayList<NXNodeMapper>();
112 Enumeration children = node.children();
114 while (children.hasMoreElements()) {
118 nodes.addAll(getSubNodes(tmpNode));
128 ArrayList<NXNodeMapper> subNodes = getSubNodes(node);
130 for(
int i = 0;i<subNodes.size();++i){
131 if(subNodes.get(i).getBadNode()){
141 if (tree.isSelectionEmpty()) {
148 int rows = tree.getRowCount();
150 for (
int i = 0; i < rows; ++i) {
151 node = (
NXNodeMapper) tree.getPathForRow(i).getLastPathComponent();
152 System.out.println(
"Node Name: " + node.toString());
159 if (tree.isSelectionEmpty()) {
163 TreePath treePath = tree.getSelectionPath().getParentPath();
165 (
NXNodeMapper) tree.getSelectionPath().getLastPathComponent();
169 Object[] nodes = treePath.getPath();
171 for (
int i = 0; i < treePath.getPathCount(); ++i) {
173 path = path +
"/" + tmpNode.toString();
176 path = path +
"/" + node.toString();
183 if (getRootNode(tree) != null) {
184 return getRootNode(tree);
191 if (getRootNode(tree) != null) {
192 return getRootNode(tree).getNXDLFile();
199 if (getRootNode(tree) != null) {
200 return getRootNode(tree).getReducedFile();
207 if (getRootNode(tree) != null) {
208 return getRootNode(tree).getReducedDoc();
215 if (getRootNode(tree) != null) {
216 return getRootNode(tree).getResultsDoc();
223 if (getRootNode(tree) != null) {
224 return getRootNode(tree).getResultsFile();
231 if (getRootNode(tree) != null) {
232 getRootNode(tree).setNXDLFile(file);
237 if (getRootNode(tree) != null) {
238 getRootNode(tree).setReducedFile(file);
243 if (getRootNode(tree) != null) {
244 getRootNode(tree).setReducedDoc(doc);
249 if (getRootNode(tree) != null) {
250 getRootNode(tree).setResultsDoc(doc);
255 if (getRootNode(tree) != null) {
256 getRootNode(tree).setResultsFile(file);
262 if (tmpNode != null) {
264 tmpNode.setValidatedNode(
true);
270 if (tree.isSelectionEmpty()) {
274 TreePath treePath = tree.getSelectionPath().getParentPath();
280 NXNodeMapper tmpNode = null;
281 Object[] nodes = treePath.getPath();
282 if (nodes.length > 1) {
283 tmpNode = (NXNodeMapper) nodes[1];
284 }
else if (nodes.length == 1) {
286 (NXNodeMapper) tree.getSelectionPath().getLastPathComponent();