/*
 * @(#)IndicatorLabel.java
 */
package ereinionbw;

import java.awt.*;

/*
 * classe di package : IndicatorLabel
 *
 * Classe che mostra una indicatore oltre ad una etichetta di testo.
 */
class IndicatorLabel extends Canvas
{

	private final static int SEED_M = 100;

	public int value, seed, seedMultiplier;

	private Color indColor;

	public IndicatorLabel(Color c, int sm)
	{
		seed = sm;
		indColor = c;
		setValue(0);
		seedMultiplier = sm;
	}

	public void setValue(int v)
	{
		if (v>0)
			value = v;
		else
			value = 0;
		while (seed<value)
			seed*=seedMultiplier;
		repaint();
	}

	public int getValue() { return value; }

	public void reset()
	{
		seed = seedMultiplier;
		setValue(0);
	}

	public void paint(Graphics g)
	{
		int dis = 2;
		int dX = getSize().width;
		int dY = getSize().height;
		g.clearRect(0,0,dX,dY);
		int size = (dX*value/seed);
		dX = dX-dis;
		dY = dY-dis;
		g.setColor(indColor);
		g.fillRect(dis,dY-dY/4,size-dis,dY/4);
		g.setColor(getForeground());
		g.drawRect(dis,dY-dY/4,dX/4-dis,dY/4);
		g.drawRect(dis,dY-dY/4,dX/2-dis,dY/4);
		g.drawRect(dis,dY-dY/4,dX/4*3-dis,dY/4);
		g.drawRect(dis,dY-dY/4,dX-dis,dY/4);
		FontMetrics fm = getFontMetrics(getFont());
		int fH = fm.getHeight();
		g.drawString(""+value+"/"+seed,(dX-fm.stringWidth(""+value+"/"+seed))/2,fH);
	}

}
