158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotpackage junit.swingui;
258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport java.awt.Color;
458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport javax.swing.JProgressBar;
658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot/**
858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * A progress bar showing the green/red status
958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */
1058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotclass ProgressBar extends JProgressBar {
1158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	boolean fError= false;
1258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
1358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public ProgressBar() {
1458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		super();
1558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		setForeground(getStatusColor());
1658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
1758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
1858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	protected Color getStatusColor() {
1958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		if (fError)
2058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot			return Color.red;
2158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		return Color.green;
2258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
2358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
2458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public void reset() {
2558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		fError= false;
2658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		updateBarColor();
2758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		setValue(0);
2858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
2958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
3058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public void start(int total) {
3158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		setMaximum(total);
3258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		reset();
3358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
3458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
3558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	public void step(int value, boolean successful) {
3658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		setValue(value);
3758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		if (!fError && !successful) {
3858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot			fError= true;
3958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot			updateBarColor();
4058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		}
4158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		}
4258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot
4358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	protected void updateBarColor() {
4458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot		setForeground(getStatusColor());
4558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot	}
4658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot}
47