public synchronized void valueChanged(TreeSelectionEvent e) {
		if (decompileThread != null)
			return;
		TreePath path = e.getNewLeadSelectionPath();
		if (path == null)
			return;
		Object node = path.getLastPathComponent();
		if (node != null) {
			if (hierarchyTree && hierModel.isValidClass(node))
				lastClassName = hierModel.getFullName(node);
			else if (!hierarchyTree && packModel.isValidClass(node))
				lastClassName = packModel.getFullName(node);
			else
				return;

			startDecompiler();
		}
	}