class PDComboBox extends PDChoice
{
    private static final int FLAG_EDIT = 1 << 18;
    
    /**
     * @see PDField#PDField(PDAcroForm)
     *
     * @param acroForm The acroform.
     */
    public PDComboBox(PDAcroForm acroForm)
    {
        super(acroForm);
        setCombo(true);
    }    

    /**
     * Constructor.
     * 
     * @param acroForm The form that this field is part of.
     * @param field the PDF object to represent as a field.
     * @param parent the parent node of the node
     */
    PDComboBox(PDAcroForm acroForm, COSDictionary field, PDNonTerminalField parent)
    {
        super(acroForm, field, parent);
    }

    /**
     * Determines if Edit is set.
     * 
     * @return true if the combo box shall include an editable text box as well as a drop-down list.
     */
    public boolean isEdit()
    {
        return getCOSObject().getFlag(COSName.FF, FLAG_EDIT);
    }

    /**
     * Set the Edit bit.
     *
     * @param edit The value for Edit.
     */
    public void setEdit(boolean edit)
    {
        getCOSObject().setFlag(COSName.FF, FLAG_EDIT, edit);
    }
    
    @Override
    void constructAppearances() throws IOException
    {<FILL_FUNCTION_BODY>}
}

        AppearanceGeneratorHelper apHelper;
        apHelper = new AppearanceGeneratorHelper(this);
        List<String> values = getValue();
        
        if (!values.isEmpty())
        {
            apHelper.setAppearanceValue(values.get(0));
        }
        else
        {
            apHelper.setAppearanceValue("");
        }
    
<methods>public void <init>(org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm) ,public List<java.lang.String> getDefaultValue() ,public List<java.lang.String> getOptions() ,public List<java.lang.String> getOptionsDisplayValues() ,public List<java.lang.String> getOptionsExportValues() ,public List<java.lang.Integer> getSelectedOptionsIndex() ,public List<java.lang.String> getValue() ,public java.lang.String getValueAsString() ,public boolean isCombo() ,public boolean isCommitOnSelChange() ,public boolean isDoNotSpellCheck() ,public boolean isMultiSelect() ,public boolean isSort() ,public void setCombo(boolean) ,public void setCommitOnSelChange(boolean) ,public void setDefaultValue(java.lang.String) ,public void setDoNotSpellCheck(boolean) ,public void setMultiSelect(boolean) ,public void setOptions(List<java.lang.String>) ,public void setOptions(List<java.lang.String>, List<java.lang.String>) ,public void setSelectedOptionsIndex(List<java.lang.Integer>) ,public void setSort(boolean) ,public void setValue(java.lang.String) throws java.io.IOException,public void setValue(List<java.lang.String>) throws java.io.IOException<variables>static final int FLAG_COMBO,private static final int FLAG_COMMIT_ON_SEL_CHANGE,private static final int FLAG_DO_NOT_SPELL_CHECK,private static final int FLAG_MULTI_SELECT,private static final int FLAG_SORT