public abstract class PDChoice extends PDVariableText
Modifier and Type | Field and Description |
---|---|
(package private) static int |
FLAG_COMBO |
private static int |
FLAG_COMMIT_ON_SEL_CHANGE |
private static int |
FLAG_DO_NOT_SPELL_CHECK |
private static int |
FLAG_MULTI_SELECT |
private static int |
FLAG_SORT |
QUADDING_CENTERED, QUADDING_LEFT, QUADDING_RIGHT
Constructor and Description |
---|
PDChoice(PDAcroForm acroForm) |
PDChoice(PDAcroForm acroForm,
COSDictionary field,
PDNonTerminalField parent)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
(package private) abstract void |
constructAppearances()
Constructs appearance streams and appearance dictionaries for all widget annotations.
|
java.util.List<java.lang.String> |
getDefaultValue()
Returns the default values, or an empty List.
|
java.util.List<java.lang.String> |
getOptions()
This will get the option values "Opt".
|
java.util.List<java.lang.String> |
getOptionsDisplayValues()
This will get the display values from the options.
|
java.util.List<java.lang.String> |
getOptionsExportValues()
This will get the export values from the options.
|
java.util.List<java.lang.Integer> |
getSelectedOptionsIndex()
This will get the indices of the selected options - the 'I' key.
|
java.util.List<java.lang.String> |
getValue()
Returns the selected values, or an empty List.
|
java.lang.String |
getValueAsString()
Returns a string representation of the "V" entry, or an empty string.
|
private java.util.List<java.lang.String> |
getValueFor(COSName name)
Returns the selected values, or an empty List, for the given key.
|
boolean |
isCombo()
Determines if Combo is set.
|
boolean |
isCommitOnSelChange()
Determines if CommitOnSelChange is set.
|
boolean |
isDoNotSpellCheck()
Determines if DoNotSpellCheck is set.
|
boolean |
isMultiSelect()
Determines if MultiSelect is set.
|
boolean |
isSort()
Determines if Sort is set.
|
void |
setCombo(boolean combo)
Set the Combo bit.
|
void |
setCommitOnSelChange(boolean commitOnSelChange)
Set the CommitOnSelChange bit.
|
void |
setDefaultValue(java.lang.String value)
Sets the default value of this field.
|
void |
setDoNotSpellCheck(boolean doNotSpellCheck)
Set the DoNotSpellCheck bit.
|
void |
setMultiSelect(boolean multiSelect)
Set the MultiSelect bit.
|
void |
setOptions(java.util.List<java.lang.String> displayValues)
This will set the display values - the 'Opt' key.
|
void |
setOptions(java.util.List<java.lang.String> exportValues,
java.util.List<java.lang.String> displayValues)
This will set the display and export values - the 'Opt' key.
|
void |
setSelectedOptionsIndex(java.util.List<java.lang.Integer> values)
This will set the indices of the selected options - the 'I' key.
|
void |
setSort(boolean sort)
Set the Sort bit.
|
void |
setValue(java.util.List<java.lang.String> values)
Sets the entry "V" to the given values.
|
void |
setValue(java.lang.String value)
Sets the selected value of this field.
|
private void |
updateSelectedOptionsIndex(java.util.List<java.lang.String> values)
Update the 'I' key based on values set.
|
getDefaultAppearance, getDefaultAppearanceString, getDefaultStyleString, getQ, getRichTextValue, getStringOrStream, setDefaultAppearance, setDefaultStyleString, setQ, setRichTextValue
applyChange, exportFDF, getFieldFlags, getFieldType, getWidget, getWidgets, importFDF, setActions, setWidgets
findKid, fromDictionary, getAcroForm, getActions, getAlternateFieldName, getCOSObject, getFullyQualifiedName, getInheritableAttribute, getMappingName, getParent, getPartialName, isNoExport, isReadOnly, isRequired, setAlternateFieldName, setFieldFlags, setMappingName, setNoExport, setPartialName, setReadOnly, setRequired, toString
static final int FLAG_COMBO
private static final int FLAG_SORT
private static final int FLAG_MULTI_SELECT
private static final int FLAG_DO_NOT_SPELL_CHECK
private static final int FLAG_COMMIT_ON_SEL_CHANGE
public PDChoice(PDAcroForm acroForm)
acroForm
- The acroform.PDField.PDField(PDAcroForm)
PDChoice(PDAcroForm acroForm, COSDictionary field, PDNonTerminalField parent)
acroForm
- The form that this field is part of.field
- the PDF object to represent as a field.parent
- the parent node of the nodepublic java.util.List<java.lang.String> getOptions()
For a choice field the options array can either be an array
of text strings or an array of a two-element arrays.
The method always only returns either the text strings or,
in case of two-element arrays, an array of the first element of
the two-element arrays
Use getOptionsExportValues()
and getOptionsDisplayValues()
to get the entries of two-element arrays.
public void setOptions(java.util.List<java.lang.String> displayValues)
The Opt array specifies the list of options in the choice field either as an array of text strings representing the display value or as an array of a two-element array where the first element is the export value and the second the display value.
To set both the export and the display value use setOptions(List, List)
displayValues
- List containing all possible options.public void setOptions(java.util.List<java.lang.String> exportValues, java.util.List<java.lang.String> displayValues)
This will set both, the export value and the display value of the choice field. If either one of the parameters is null or an empty list is supplied the options will be removed.
An IllegalArgumentException
will be thrown if the
number of items in the list differ.
exportValues
- List containing all possible export values.displayValues
- List containing all possible display values.setOptions(List)
public java.util.List<java.lang.String> getOptionsDisplayValues()
For options with an array of text strings the display value and export value
are the same.
For options with an array of two-element arrays the display value is the
second entry in the two-element array.
public java.util.List<java.lang.String> getOptionsExportValues()
For options with an array of text strings the display value and export value
are the same.
For options with an array of two-element arrays the export value is the
first entry in the two-element array.
public java.util.List<java.lang.Integer> getSelectedOptionsIndex()
This is only needed if a choice field allows multiple selections and two different items have the same export value or more than one values is selected.
The indices are zero-based
public void setSelectedOptionsIndex(java.util.List<java.lang.Integer> values)
This method is preferred over setValue(List)
for choice fields which
Setting the index will set the value too.
values
- List containing the indices of all selected options.public boolean isSort()
If set, the field’s option items shall be sorted alphabetically. The sorting has to be done when writing the PDF. PDF Readers are supposed to display the options in the order in which they occur in the Opt array.
public void setSort(boolean sort)
sort
- The value for Sort.isSort()
public boolean isMultiSelect()
public void setMultiSelect(boolean multiSelect)
multiSelect
- The value for MultiSelect.public boolean isDoNotSpellCheck()
public void setDoNotSpellCheck(boolean doNotSpellCheck)
doNotSpellCheck
- The value for DoNotSpellCheck.public boolean isCommitOnSelChange()
public void setCommitOnSelChange(boolean commitOnSelChange)
commitOnSelChange
- The value for CommitOnSelChange.public boolean isCombo()
public void setCombo(boolean combo)
combo
- The value for Combo.public void setValue(java.lang.String value) throws java.io.IOException
PDAcroForm.getNeedAppearances()
is true.public void setDefaultValue(java.lang.String value) throws java.io.IOException
value
- The name of the selected item.java.io.IOException
- if the value could not be setpublic void setValue(java.util.List<java.lang.String> values) throws java.io.IOException
isMultiSelect()
to be true.values
- the list of valuesjava.io.IOException
- if the appearance couldn't be generated.public java.util.List<java.lang.String> getValue()
isMultiSelect()
is true.public java.util.List<java.lang.String> getDefaultValue()
isMultiSelect()
is true.private java.util.List<java.lang.String> getValueFor(COSName name)
public java.lang.String getValueAsString()
PDField
getValueAsString
in class PDField
private void updateSelectedOptionsIndex(java.util.List<java.lang.String> values)
abstract void constructAppearances() throws java.io.IOException
PDTerminalField
PDTerminalField.applyChange()
.constructAppearances
in class PDTerminalField
java.io.IOException
- if the appearance couldn't be generated