package ArrayDemos;

/**
 * StatisticsGenerator.java
 *
 *
 * Created: Tue Apr 10 13:12:20 2001
 *
 * @author Stuart C. Shapiro
 */

public class StatisticsGenerator {
    private NGP.Containers.Row _row;
    private Bar[] _bars;
    private NGP.Components.Label _minLabel, _meanLabel, _maxLabel;
    private int _min=0, _max=0;
    private float _mean=0F;

    public StatisticsGenerator (NGP.Containers.Row row, Bar[] bars){
	_row = row;
	_bars = bars;
	_minLabel = new NGP.Components.Label(_row, "Min: 0");
	_meanLabel = new NGP.Components.Label(_row, "Mean: 0");
	_maxLabel = new NGP.Components.Label(_row, "Max: 0");

    }

    public void increment(Bar bar) {
	_min = minimum();
	_minLabel.setText("Min: " + _min);

	_mean += 1F/_bars.length;
	_meanLabel.setText("Mean: " + _mean);

	if (bar.getCount()>_max) _max++;
	_maxLabel.setText("Max: " + _max);
    }

    private int minimum(){
	int min = _bars[0].getCount();
	for (int i=1; i < _bars.length; i++)
	    if (_bars[i].getCount() < min) min = _bars[i].getCount();
	return min;
    }
}// StatisticsGenerator
