public void run() {
		if (progressBar != null) {
			progressBar.setMinimum(0);
			progressBar.setMaximum(countClasses(0, ""));
		}
		readPackage(0, new HashMap(), "", 0);

		TreeModelListener[] ls;
		synchronized (listeners) {
			ls = (TreeModelListener[]) listeners
					.toArray(new TreeModelListener[listeners.size()]);
		}
		TreeModelEvent ev = new TreeModelEvent(this, new Object[] { root });
		for (int i = 0; i < ls.length; i++)
			ls[i].treeStructureChanged(ev);

		main.reselect();
	}