public void progressReported(final ProgressEvent e) {
		Runnable r = new Runnable() {
			public void run() {
				JProgressBar pb = encoder.getProgressBar();
				if (pb == null)
					return;
				pb.setMinimum(e.getMinimum());
				pb.setMaximum(e.getMaximum());
				pb.setValue(e.getPercent());
				pb.setString(e.getDescription());
			}
		};
		if (EventQueue.isDispatchThread()) {
			r.run();
		} else {
			EventQueue.invokeLater(r);
		}
	}