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.