package cnp.ew.spin;

import cnp.ew.converter.*;
import cnp.ew.text.*;
import cnp.ew.util.*;
import java.util.*;
import java.awt.*;

public class CpMonthSpinFieldLc extends CpEditableSpinFieldLc
{

    public CpMonthSpinFieldLc()
    {
        super();
        CpMonthToString converter = new CpMonthToString("mm");
        setInputConverter(converter);
        setOutputConverter(new CpIntegerFromStringConverter());
        setMaxChars(2);
    }

    public void update(CpObservable o, int facet, Object arg)
    {
        if (facet == CpDateModel.CHANGED_MONTH) {
            setObject(getModel().getDate());
        }
    }

    public void increment()
    {
        getModel().incrementMonth();
    }

    public void decrement()
    {
        getModel().decrementMonth();
    }


    CpDateModel getModel()
    {
        return (CpDateModel)getSpinEditor().getModel();
    }

    public boolean canIncrementAndDecrement()
    {
        return true;
    }

    public boolean lostFocus()
    {
            // TBD: This should use an output converter that is set to the appropriate format
        getModel().setMonth(((Integer)getObject()).intValue() - 1);
        return super.lostFocus();
    }


}


