package cnp.ew.spin;

import cnp.ew.converter.*;
import cnp.ew.text.*;
import cnp.ew.util.*;
import java.util.*;
import java.awt.*;

public class CpYearSpinFieldLc extends CpEditableSpinFieldLc
{

    public CpYearSpinFieldLc()
    {
        super();
        CpYearToString converter = new CpYearToString("yy");
        setInputConverter(converter);
        setOutputConverter(new CpIntegerFromStringConverter());
        setMaxChars(2);
    }

    public void update(CpObservable o, int facet, Object arg)
    {
        if (facet == CpDateModel.CHANGED_YEAR) {
            setObject(getModel().getDate());
        }
    }

    public void increment()
    {
        getModel().incrementYear();
    }

    public void decrement()
    {
        getModel().decrementYear();
    }


    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().setYear(((Integer)getObject()).intValue() /* + 1900 */);
        return super.lostFocus();
    }
}


