package cnp.ew.displayer;

import java.awt.*;
import cnp.ew.lightweight.*;

abstract public class CpAbstractValueDisplayer implements CpValueDisplayable
{
    int value=100;
    int min=0;
    int max=100;

    public void setMin(int newMin)
    {
        min = newMin;
        value = inBounds(value);
    }

    public int getMin()
    {
        return min;
    }

    public void setMax(int newMax)
    {
        max = newMax;
        value = inBounds(value);
    }

    public int getMax()
    {
        return max;
    }

    public void setValue(int newValue)
    {
        value = inBounds(newValue);
    }

    public int inBounds(int num)
    {
        return Math.min(Math.max(min, num), max);
    }

    public int getValue()
    {
        return value;
    }

    public float getValuePercentage()
    {
        return ((float)value) / ((float)(max - min));
    }

    public void paintIn(CpLightweightComponent c, Graphics g, Rectangle r)
    {
        paintIn(c, g, r.x, r.y, r.width, r.height);
    }
}

