public void run() { SearchTOCItem tocitem; Vector nodes = new Vector(); // Add all the children of the topnode to the Vector of nodes. Enumeration children = topNode.children(); while (children.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) children.nextElement(); nodes.addElement(node); } debug("items found"); HelpModel helpmodel = searchnav.getModel(); HelpSet hs = helpmodel.getHelpSet(); debug("hs:" + hs.toString()); Map map = hs.getCombinedMap(); Enumeration itemEnum = e.getSearchItems(); while (itemEnum.hasMoreElements()) { SearchItem item = (SearchItem) itemEnum.nextElement(); debug(" item: " + item); URL url; try { url = new URL(item.getBase(), item.getFilename()); } catch (MalformedURLException me) { System.err.println( "Failed to create URL from " + item.getBase() + "|" + item.getFilename()); continue; } boolean foundNode = false; DefaultMutableTreeNode node = null; Enumeration nodesEnum = nodes.elements(); while (nodesEnum.hasMoreElements()) { node = (DefaultMutableTreeNode) nodesEnum.nextElement(); tocitem = (SearchTOCItem) node.getUserObject(); URL testURL = tocitem.getURL(); if (testURL != null && url != null && url.sameFile(testURL)) { tocitem = (SearchTOCItem) node.getUserObject(); tocitem.addSearchHit( new SearchHit(item.getConfidence(), item.getBegin(), item.getEnd())); foundNode = true; break; } } if (!foundNode) { tocitem = new SearchTOCItem(item); node = new DefaultMutableTreeNode(tocitem); nodes.addElement(node); } } reorder(nodes); ((DefaultTreeModel) tree.getModel()).reload(); }