You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2015/01/27 20:46:05 UTC
svn commit: r1655137 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java
Author: msahyoun
Date: Tue Jan 27 19:46:05 2015
New Revision: 1655137
URL: http://svn.apache.org/r1655137
Log:
PDFBOX-2333 update appearance when value has been set
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java?rev=1655137&r1=1655136&r2=1655137&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java Tue Jan 27 19:46:05 2015
@@ -23,6 +23,8 @@ import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.common.COSObjectable;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceEntry;
/**
* Radio button fields contain a set of related buttons that can each be on or off.
@@ -166,20 +168,23 @@ public final class PDRadioButton extends
}
else
{
- setInheritableAttribute(COSName.V, COSName.getPDFName(fieldValue));
+ COSName nameForValue = COSName.getPDFName(fieldValue);
+ setInheritableAttribute(COSName.V, nameForValue);
List<COSObjectable> kids = getKids();
for (COSObjectable kid : kids)
{
- if (kid instanceof PDCheckbox)
+ if (kid instanceof PDAnnotationWidget)
{
- PDCheckbox btn = (PDCheckbox) kid;
- if (btn.getOnValue().equals(fieldValue))
+ PDAppearanceEntry appearanceEntry = ((PDAnnotationWidget) kid).getAppearance()
+ .getNormalAppearance();
+
+ if (((COSDictionary) appearanceEntry.getCOSObject()).containsKey(nameForValue))
{
- btn.check();
+ ((COSDictionary) kid.getCOSObject()).setName(COSName.AS, fieldValue);
}
else
{
- btn.unCheck();
+ ((COSDictionary) kid.getCOSObject()).setName(COSName.AS, "Off");
}
}
}