package cnp.ew.spin;

import cnp.ew.text.*;
import java.awt.*;
import cnp.ew.converter.*;
import cnp.ew.util.*;


abstract public class CpEditableSpinFieldLc extends CpEntryFieldLc
implements CpSpinFieldLc
{

    CpFromStringConverter outConverter;


    public CpSpinEditorLc getSpinEditor()
    {
        return (CpSpinEditorLc)getParent();
    }

    public CpEditableSpinFieldLc()
    {
        setHideSelectionOnFocusLoss(true);
        setSelectAllOnGettingFocus(true);
        setFont(CpFonts.dialogPlainTwelve());
        setSelectionBackColor(new Color(0, 0, 128));
        setHorizontalAlignment(ALIGN_RIGHT);
    }

    public boolean gotFocus()
    {
        getSpinEditor().setSelectedField(this);
        return super.gotFocus();
    }

    public boolean keyDown(Event e, int key)
    {
        super.keyDown(e, key);
        if (getText().length() == getMaxChars()) {
            shiftFocusForwardWithinGroup();
        }
        return true;
    }

    public boolean wantsLeftAndRightArrows()
    {
        return false;
    }

    abstract public void increment();
    abstract public void decrement();
    abstract public boolean canIncrementAndDecrement();
}

