private void finish() {
		if (!EventQueue.isDispatchThread())
			throw new RuntimeException("called by non-EDT thread");
		page.setReading(false);
		page.setReadingModel(false);
		loadingTime = System.currentTimeMillis() - loadingTime;
		if (page.getSaveReminder() != null)
			page.getSaveReminder().setChanged(false);
		ConnectionManager.sharedInstance().setCheckUpdate(true);
		if (page.getBackgroundSound() != null) {
			page.playSound(page.getBackgroundSound());
		}
		if (progressBar != null) {
			String sec = Modeler.getInternationalText("TimeSecond");
			progressBar.setValue(0);
			progressBar.setString(elementCounter + " XML elements read in " + formatter.format(loadingTime * 0.001)
					+ " " + (sec != null ? sec : "seconds") + ".");
			progressBar.setIndeterminate(false);
		}
	}