package cnp.ew.spin;

import cnp.ew.converter.*;
import cnp.ew.text.*;
import cnp.ew.util.*;
import java.util.*;
import java.awt.*;

public class CpIndexedModelNumericSpinFieldLc extends CpEditableSpinFieldLc
{
    int fieldIndex;
    int digitCount;

    public CpIndexedModelNumericSpinFieldLc(int index, int count)
    {
        fieldIndex = index;
        digitCount = count;
        // used to validate the input, not for converting.
        setOutputConverter(new CpIntegerFromStringConverter());
        setMaxChars(digitCount);
        setHorizontalAlignment(ALIGN_RIGHT);
    }


    public void update(CpObservable o, int facet, Object arg)
    {
        setText(getModel().getFieldValue(fieldIndex));
    }

    public void increment()
    {
    }

    public void decrement()
    {
    }


    CpFormattedStringModel getModel()
    {
        return (CpFormattedStringModel)getSpinEditor().getModel();
    }

    public boolean canIncrementAndDecrement()
    {
        return false;
    }

    public boolean lostFocus()
    {
        getModel().setFieldValue(fieldIndex, getText());
        return super.lostFocus();
    }
}



