jProgress.setMinimum(data[currentLevel].minValue); jProgress.setMaximum(data[currentLevel].maxValue); jProgress.setValue(data[currentLevel].value); try { jProgress.setIndeterminate(data[currentLevel].undetermined); } catch (Throwable t) { }  jStatus.setText(data[currentLevel].message);
resetUIState();
	public void stopProgress(int level, String message) {		data[LEVEL_GENERIC].message = message;		if (level == currentLevel && data[level].active) {			if (data[level].undeterminedThread != null) {				data[level].undeterminedThread.interrupt();				data[level].undeterminedThread = null;			}			// find the next active level			currentLevel = level - 1;			while (currentLevel >= 0 && data[currentLevel].active == false) {				currentLevel--;			}			if (currentLevel == -1) {				jStatus.setText(message);				jProgress.setValue(jProgress.getMinimum());				try {					jProgress.setIndeterminate(false);				} catch (Throwable t) {				}			} else {				jProgress.setMinimum(data[currentLevel].minValue);				jProgress.setMaximum(data[currentLevel].maxValue);				jProgress.setValue(data[currentLevel].value);				try {					jProgress.setIndeterminate(data[currentLevel].undetermined);				} catch (Throwable t) {				}				jStatus.setText(data[currentLevel].message);			}		}		if (level > LEVEL_GENERIC) {			data[level].active = false;		}	}