You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2014/09/11 18:46:18 UTC
svn commit: r1624334 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form:
PDChoice.java PDComboBox.java PDListBox.java
Author: lehmi
Date: Thu Sep 11 16:46:18 2014
New Revision: 1624334
URL: http://svn.apache.org/r1624334
Log:
PDFBOX-2261: move setValue to super class PDChoice
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java?rev=1624334&r1=1624333&r2=1624334&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java Thu Sep 11 16:46:18 2014
@@ -207,6 +207,50 @@ public abstract class PDChoice extends P
}
/**
+ * setValue sets the entry "V" to the given value.
+ *
+ * @param value the value
+ *
+ */
+ @Override
+ public void setValue(Object value)
+ {
+ if (value != null)
+ {
+ if (value instanceof String)
+ {
+ getDictionary().setString(COSName.V, (String)value);
+ int index = getSelectedIndex((String) value);
+ if (index == -1)
+ {
+ throw new IllegalArgumentException(
+ "The list box does not contain the given value.");
+ }
+ selectMultiple(index);
+ }
+ if (value instanceof String[])
+ {
+ if (!isMultiSelect())
+ {
+ throw new IllegalArgumentException("The list box does allow multiple selection.");
+ }
+ String[] stringValues = (String[])value;
+ COSArray stringArray = new COSArray();
+ for (int i =0; i<stringValues.length;i++)
+ {
+ stringArray.add(new COSString(stringValues[i]));
+ }
+ getDictionary().setItem(COSName.V, stringArray);
+ }
+ }
+ else
+ {
+ getDictionary().removeItem(COSName.V);
+ }
+ // TODO create/update appearance
+ }
+
+ /**
* getValue gets the value of the "V" entry.
*
* @return The value of this entry.
@@ -230,7 +274,7 @@ public abstract class PDChoice extends P
}
// returns the "Opt" index for the given string
- protected int getSelectedIndex(String optionValue)
+ private int getSelectedIndex(String optionValue)
{
int indexSelected = -1;
COSArray options = getOptions();
@@ -263,7 +307,7 @@ public abstract class PDChoice extends P
}
// implements "MultiSelect"
- protected void selectMultiple(int selectedIndex)
+ private void selectMultiple(int selectedIndex)
{
COSArray indexArray = getSelectedOptions();
if (indexArray != null)
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java?rev=1624334&r1=1624333&r2=1624334&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java Thu Sep 11 16:46:18 2014
@@ -16,10 +16,8 @@
*/
package org.apache.pdfbox.pdmodel.interactive.form;
-import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSString;
/**
* A combo box consisting of a drop-down list.
@@ -74,43 +72,11 @@ public final class PDComboBox extends PD
@Override
public void setValue(Object value)
{
- // TODO move to superclass PDCoice??
if ((getFieldFlags() & FLAG_EDIT) != 0)
{
throw new IllegalArgumentException("The combo box isn't editable.");
}
- if (value != null)
- {
- if (value instanceof String)
- {
- getDictionary().setString(COSName.V, (String)value);
- int index = getSelectedIndex((String)value);
- if (index == -1)
- {
- throw new IllegalArgumentException("The combo box does not contain the given value.");
- }
- selectMultiple(index);
- }
- if (value instanceof String[])
- {
- if (!isMultiSelect())
- {
- throw new IllegalArgumentException("The combo box does allow multiple selection.");
- }
- String[] stringValues = (String[])value;
- COSArray stringArray = new COSArray();
- for (int i =0; i<stringValues.length;i++)
- {
- stringArray.add(new COSString(stringValues[i]));
- }
- getDictionary().setItem(COSName.V, stringArray);
- }
- }
- else
- {
- getDictionary().removeItem(COSName.V);
- }
- // TODO create/update appearance
+ super.setValue(value);
}
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java?rev=1624334&r1=1624333&r2=1624334&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java Thu Sep 11 16:46:18 2014
@@ -16,10 +16,8 @@
*/
package org.apache.pdfbox.pdmodel.interactive.form;
-import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSString;
/**
* A scrollable list box. Contains several text items, one or more of which shall be selected as the field value.
@@ -41,51 +39,6 @@ public final class PDListBox extends PDC
}
/**
- * setValue sets the entry "V" to the given value.
- *
- * @param value the value
- *
- */
- @Override
- public void setValue(Object value)
- {
- // TODO move to superclass PDCoice??
- if (value != null)
- {
- if (value instanceof String)
- {
- getDictionary().setString(COSName.V, (String)value);
- int index = getSelectedIndex((String) value);
- if (index == -1)
- {
- throw new IllegalArgumentException(
- "The list box does not contain the given value.");
- }
- selectMultiple(index);
- }
- if (value instanceof String[])
- {
- if (!isMultiSelect())
- {
- throw new IllegalArgumentException("The list box does allow multiple selection.");
- }
- String[] stringValues = (String[])value;
- COSArray stringArray = new COSArray();
- for (int i =0; i<stringValues.length;i++)
- {
- stringArray.add(new COSString(stringValues[i]));
- }
- getDictionary().setItem(COSName.V, stringArray);
- }
- }
- else
- {
- getDictionary().removeItem(COSName.V);
- }
- // TODO create/update appearance
- }
-
- /**
* This will get the top index "TI" value.
*
* @return the top index, default value 0.