You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/09/17 20:03:38 UTC

svn commit: r1703662 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/

Author: tilman
Date: Thu Sep 17 18:03:37 2015
New Revision: 1703662

URL: http://svn.apache.org/viewvc?rev=1703662&view=rev
Log:
PDFBOX-2973: added missing actions, by Evgeniy Muravitskiy; use COSName for some existing names

Added:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionHide.java   (with props)
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionImportData.java   (with props)
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionMovie.java   (with props)
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionResetForm.java   (with props)
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSound.java   (with props)
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSubmitForm.java   (with props)
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionThread.java   (with props)
Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionFactory.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionRemoteGoTo.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionURI.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAdditionalActions.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAnnotationAdditionalActions.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDPageAdditionalActions.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDWindowsLaunchParams.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionFactory.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionFactory.java?rev=1703662&r1=1703661&r2=1703662&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionFactory.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionFactory.java Thu Sep 17 18:03:37 2015
@@ -17,6 +17,7 @@
 package org.apache.pdfbox.pdmodel.interactive.action;
 
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 
 /**
  * This class will take a dictionary and determine which type of action to create.
@@ -47,7 +48,7 @@ public final class PDActionFactory
         PDAction retval = null;
         if( action != null )
         {
-            String type = action.getNameAsString( "S" );
+            String type = action.getNameAsString( COSName.S );
             if( PDActionJavaScript.SUB_TYPE.equals( type ) )
             {
                 retval = new PDActionJavaScript( action );
@@ -72,6 +73,34 @@ public final class PDActionFactory
             {
                 retval = new PDActionNamed(action);
             }
+            else if (PDActionSound.SUB_TYPE.equals(type))
+            {
+                retval = new PDActionSound(action);
+            }
+            else if (PDActionMovie.SUB_TYPE.equals(type))
+            {
+                retval = new PDActionMovie(action);
+            }
+            else if (PDActionImportData.SUB_TYPE.equals(type))
+            {
+                retval = new PDActionImportData(action);
+            }
+            else if (PDActionResetForm.SUB_TYPE.equals(type))
+            {
+                retval = new PDActionResetForm(action);
+            }
+            else if (PDActionHide.SUB_TYPE.equals(type))
+            {
+                retval = new PDActionHide(action);
+            }
+            else if (PDActionSubmitForm.SUB_TYPE.equals(type))
+            {
+                retval = new PDActionSubmitForm(action);
+            }
+            else if (PDActionThread.SUB_TYPE.equals(type))
+            {
+                retval = new PDActionThread(action);
+            }
         }
         return retval;
     }

Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionHide.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionHide.java?rev=1703662&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionHide.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionHide.java Thu Sep 17 18:03:37 2015
@@ -0,0 +1,76 @@
+package org.apache.pdfbox.pdmodel.interactive.action;
+
+import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSBoolean;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+
+/**
+ * This represents a thread action that can be executed in a PDF document.
+ *
+ * @author Evgeniy Muravitskiy
+ */
+public class PDActionHide extends PDAction
+{
+
+    /**
+     * This type of action this object represents.
+     */
+    public static final String SUB_TYPE = "Hide";
+
+    /**
+     * Default Constructor
+     */
+    public PDActionHide()
+    {
+        setSubType(SUB_TYPE);
+    }
+
+    /**
+     * Constructor
+     *
+     * @param a the action dictionary
+     */
+    public PDActionHide(COSDictionary a)
+    {
+        super(a);
+    }
+
+    /**
+     * The annotation or annotations to be hidden or shown
+     *
+     * @return The T entry of the specific thread action dictionary.
+     */
+    public COSBase getT()
+    {
+        // Dictionary, String or Array
+        return this.action.getDictionaryObject(COSName.T);
+    }
+
+    /**
+     * @param t annotation or annotations
+     */
+    public void setT(COSBase t)
+    {
+        this.action.setItem(COSName.T, t);
+    }
+
+    /**
+     * A flag indicating whether to hide the annotation or show it
+     *
+     * @return true if annotation is hidden
+     */
+    public boolean getH()
+    {
+        return this.action.getBoolean(COSName.H, true);
+    }
+
+    /**
+     * @param h hide flag
+     */
+    public void setH(boolean h)
+    {
+        this.action.setItem(COSName.H, COSBoolean.getBoolean(h));
+    }
+
+}

Propchange: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionHide.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionImportData.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionImportData.java?rev=1703662&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionImportData.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionImportData.java Thu Sep 17 18:03:37 2015
@@ -0,0 +1,60 @@
+package org.apache.pdfbox.pdmodel.interactive.action;
+
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification;
+
+import java.io.IOException;
+import org.apache.pdfbox.cos.COSName;
+
+/**
+ * @author Timur Kamalov
+ */
+public class PDActionImportData extends PDAction
+{
+
+    /**
+     * This type of action this object represents.
+     */
+    public static final String SUB_TYPE = "ImportData";
+
+    /**
+     * Default constructor.
+     */
+    public PDActionImportData()
+    {
+        action = new COSDictionary();
+        setSubType(SUB_TYPE);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param a The action dictionary.
+     */
+    public PDActionImportData(COSDictionary a)
+    {
+        super(a);
+    }
+
+    /**
+     * This will get the file in which the destination is located.
+     *
+     * @return The F entry of the specific Submit-From action dictionary.
+     * @throws IOException If there is an error creating the file spec.
+     */
+    public PDFileSpecification getFile() throws IOException
+    {
+        return PDFileSpecification.createFS(action.getDictionaryObject(COSName.F));
+    }
+
+    /**
+     * This will set the file in which the destination is located.
+     *
+     * @param fs The file specification.
+     */
+    public void setFile(PDFileSpecification fs)
+    {
+        action.setItem(COSName.F, fs);
+    }
+
+}

Propchange: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionImportData.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionMovie.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionMovie.java?rev=1703662&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionMovie.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionMovie.java Thu Sep 17 18:03:37 2015
@@ -0,0 +1,58 @@
+package org.apache.pdfbox.pdmodel.interactive.action;
+
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+
+/**
+ * @author Timur Kamalov
+ */
+public class PDActionMovie extends PDAction
+{
+
+    /**
+     * This type of action this object represents.
+     */
+    public static final String SUB_TYPE = "Movie";
+
+    /**
+     * Default constructor.
+     */
+    public PDActionMovie()
+    {
+        action = new COSDictionary();
+        setSubType(SUB_TYPE);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param a The action dictionary.
+     */
+    public PDActionMovie(COSDictionary a)
+    {
+        super(a);
+    }
+
+    /**
+     * This will get the type of action that the actions dictionary describes. It must be Movie for
+     * a Movie action.
+     *
+     * @return The S entry of the specific Movie action dictionary.
+     */
+    public String getS()
+    {
+        return action.getNameAsString(COSName.S);
+    }
+
+    /**
+     * This will set the type of action that the actions dictionary describes. It must be Movie for
+     * a Movie action.
+     *
+     * @param s The Movie action.
+     */
+    public void setS(String s)
+    {
+        action.setName(COSName.S, s);
+    }
+
+}

Propchange: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionMovie.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionRemoteGoTo.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionRemoteGoTo.java?rev=1703662&r1=1703661&r2=1703662&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionRemoteGoTo.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionRemoteGoTo.java Thu Sep 17 18:03:37 2015
@@ -20,6 +20,7 @@ import java.io.IOException;
 
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 
 import org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification;
 
@@ -63,7 +64,7 @@ public class PDActionRemoteGoTo extends
      */
     public String getS()
     {
-       return action.getNameAsString( "S" );
+       return action.getNameAsString( COSName.S );
     }
 
     /**
@@ -74,7 +75,7 @@ public class PDActionRemoteGoTo extends
      */
     public void setS( String s )
     {
-       action.setName( "S", s );
+       action.setName( COSName.S, s );
     }
 
     /**
@@ -86,7 +87,7 @@ public class PDActionRemoteGoTo extends
      */
     public PDFileSpecification getFile() throws IOException
     {
-        return PDFileSpecification.createFS( action.getDictionaryObject( "F" ) );
+        return PDFileSpecification.createFS( action.getDictionaryObject( COSName.F ) );
     }
 
     /**
@@ -96,7 +97,7 @@ public class PDActionRemoteGoTo extends
      */
     public void setFile( PDFileSpecification fs )
     {
-        action.setItem( "F", fs );
+        action.setItem( COSName.F, fs );
     }
 
     /**
@@ -112,7 +113,7 @@ public class PDActionRemoteGoTo extends
     // Array or String.
     public COSBase getD()
     {
-        return action.getDictionaryObject( "D" );
+        return action.getDictionaryObject( COSName.D );
     }
 
     /**
@@ -128,7 +129,7 @@ public class PDActionRemoteGoTo extends
     // In case the value is an array.
     public void setD( COSBase d )
     {
-        action.setItem( "D", d );
+        action.setItem( COSName.D, d );
     }
 
     /**

Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionResetForm.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionResetForm.java?rev=1703662&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionResetForm.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionResetForm.java Thu Sep 17 18:03:37 2015
@@ -0,0 +1,76 @@
+package org.apache.pdfbox.pdmodel.interactive.action;
+
+import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+
+/**
+ * @author Timur Kamalov
+ */
+public class PDActionResetForm extends PDAction
+{
+
+    /**
+     * This type of action this object represents.
+     */
+    public static final String SUB_TYPE = "ResetForm";
+
+    /**
+     * Default constructor.
+     */
+    public PDActionResetForm()
+    {
+        action = new COSDictionary();
+        setSubType(SUB_TYPE);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param a The action dictionary.
+     */
+    public PDActionResetForm(COSDictionary a)
+    {
+        super(a);
+    }
+
+    /**
+     * An array identifying which fields to include in the submission or which to exclude, depending
+     * on the setting of the Include/Exclude flag in the Flags entry
+     *
+     * @return the array of fields
+     */
+    public COSArray getFields()
+    {
+        COSBase retval = this.action.getDictionaryObject(COSName.FIELDS);
+        return retval instanceof COSArray ? (COSArray) retval : null;
+    }
+
+    /**
+     * @param array the array of fields
+     */
+    public void setFields(COSArray array)
+    {
+        this.action.setItem(COSName.FIELDS, array);
+    }
+
+    /**
+     * A set of flags specifying various characteristics of the action
+     *
+     * @return the flags
+     */
+    public int getFlags()
+    {
+        return this.action.getInt(COSName.FLAGS, 0);
+    }
+
+    /**
+     * @param flags the flags
+     */
+    public void setFlags(int flags)
+    {
+        this.action.setInt(COSName.FLAGS, flags);
+    }
+
+}

Propchange: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionResetForm.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSound.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSound.java?rev=1703662&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSound.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSound.java Thu Sep 17 18:03:37 2015
@@ -0,0 +1,60 @@
+package org.apache.pdfbox.pdmodel.interactive.action;
+
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+
+/**
+ * This represents a Sound action that can be executed in a PDF document
+ *
+ * @author Timur Kamalov
+ */
+public class PDActionSound extends PDAction
+{
+
+    /**
+     * This type of action this object represents.
+     */
+    public static final String SUB_TYPE = "Sound";
+
+    /**
+     * Default constructor.
+     */
+    public PDActionSound()
+    {
+        action = new COSDictionary();
+        setSubType(SUB_TYPE);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param a The action dictionary.
+     */
+    public PDActionSound(COSDictionary a)
+    {
+        super(a);
+    }
+
+    /**
+     * This will get the type of action that the actions dictionary describes. It must be Sound for
+     * a Sound action.
+     *
+     * @return The S entry of the specific Sound action dictionary.
+     */
+    public String getS()
+    {
+        return action.getNameAsString(COSName.S);
+    }
+
+    /**
+     * This will set the type of action that the actions dictionary describes. It must be Sound for
+     * a Sound action.
+     *
+     * @param s The Sound action.
+     */
+    public void setS(String s)
+    {
+        action.setName(COSName.S, s);
+    }
+
+}

Propchange: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSound.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSubmitForm.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSubmitForm.java?rev=1703662&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSubmitForm.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSubmitForm.java Thu Sep 17 18:03:37 2015
@@ -0,0 +1,101 @@
+package org.apache.pdfbox.pdmodel.interactive.action;
+
+import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification;
+
+import java.io.IOException;
+
+/**
+ * This represents a Submit-Form action that can be executed in a PDF document.
+ *
+ * @author Evgeniy Muravitskiy
+ */
+public class PDActionSubmitForm extends PDAction
+{
+
+    /**
+     * This type of action this object represents.
+     */
+    public static final String SUB_TYPE = "SubmitForm";
+
+    /**
+     * Default Constructor
+     */
+    public PDActionSubmitForm()
+    {
+        setSubType(SUB_TYPE);
+    }
+
+    /**
+     * Constructor
+     *
+     * @param a the action dictionary
+     */
+    public PDActionSubmitForm(COSDictionary a)
+    {
+        super(a);
+    }
+
+    /**
+     * This will get the file in which the destination is located.
+     *
+     * @return The F entry of the specific Submit-From action dictionary.
+     * @throws IOException If there is an error creating the file spec.
+     */
+    public PDFileSpecification getFile() throws IOException
+    {
+        return PDFileSpecification.createFS(action.getDictionaryObject(COSName.F));
+    }
+
+    /**
+     * This will set the file in which the destination is located.
+     *
+     * @param fs The file specification.
+     */
+    public void setFile(PDFileSpecification fs)
+    {
+        action.setItem(COSName.F, fs);
+    }
+
+    /**
+     * An array identifying which fields to include in the submission or which to exclude, depending
+     * on the setting of the Include/Exclude flag in the Flags entry
+     *
+     * @return the array of fields
+     */
+    public COSArray getFields()
+    {
+        COSBase retval = this.action.getDictionaryObject(COSName.FIELDS);
+        return retval instanceof COSArray ? (COSArray) retval : null;
+    }
+
+    /**
+     * @param array the array of fields
+     */
+    public void setFields(COSArray array)
+    {
+        this.action.setItem(COSName.FIELDS, array);
+    }
+
+    /**
+     * A set of flags specifying various characteristics of the action
+     *
+     * @return the flags
+     */
+    public int getFlags()
+    {
+        return this.action.getInt(COSName.FLAGS, 0);
+    }
+
+    /**
+     * @param flags the flags
+     */
+    public void setFlags(int flags)
+    {
+        this.action.setInt(COSName.FLAGS, flags);
+    }
+
+}

Propchange: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionSubmitForm.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionThread.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionThread.java?rev=1703662&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionThread.java (added)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionThread.java Thu Sep 17 18:03:37 2015
@@ -0,0 +1,97 @@
+package org.apache.pdfbox.pdmodel.interactive.action;
+
+import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification;
+
+import java.io.IOException;
+import org.apache.pdfbox.cos.COSName;
+
+/**
+ *
+ * This represents a thread action that can be executed in a PDF document.
+ *
+ * @author Evgeniy Muravitskiy
+ */
+public class PDActionThread extends PDAction
+{
+
+    /**
+     * This type of action this object represents.
+     */
+    public static final String SUB_TYPE = "Thread";
+
+    /**
+     * Default constructor.
+     */
+    public PDActionThread()
+    {
+        setSubType(SUB_TYPE);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param a The action dictionary.
+     */
+    public PDActionThread(COSDictionary a)
+    {
+        super(a);
+    }
+
+    /**
+     * @return The D entry of the specific thread action dictionary.
+     */
+    // Dictionary, Integer or String.
+    public COSBase getD()
+    {
+        return action.getDictionaryObject(COSName.D);
+    }
+
+    /**
+     * @param d The destination.
+     */
+    public void setD(COSBase d)
+    {
+        action.setItem(COSName.D, d);
+    }
+
+    /**
+     * This will get the file in which the destination is located.
+     *
+     * @return The F entry of the specific thread action dictionary.
+     * @throws IOException If there is an error creating the file spec.
+     */
+    public PDFileSpecification getFile() throws IOException
+    {
+        return PDFileSpecification.createFS(action.getDictionaryObject(COSName.F));
+    }
+
+    /**
+     * This will set the file in which the destination is located.
+     *
+     * @param fs The file specification.
+     */
+    public void setFile(PDFileSpecification fs)
+    {
+        action.setItem(COSName.F, fs);
+    }
+
+    /**
+     * @return The B entry of the specific thread action dictionary.
+     */
+    // Dictionary or Integer.
+    public COSBase getB()
+    {
+        return action.getDictionaryObject(COSName.B);
+    }
+
+    /**
+     * @param b The destination.
+     */
+    public void setB(COSBase b)
+    {
+        action.setItem(COSName.B, b);
+    }
+
+}

Propchange: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionThread.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionURI.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionURI.java?rev=1703662&r1=1703661&r2=1703662&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionURI.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDActionURI.java Thu Sep 17 18:03:37 2015
@@ -17,6 +17,7 @@
 package org.apache.pdfbox.pdmodel.interactive.action;
 
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 
 /**
  * This represents a URI action that can be executed in a PDF document.
@@ -58,7 +59,7 @@ public class PDActionURI extends PDActio
      */
     public String getS()
     {
-        return action.getNameAsString("S");
+        return action.getNameAsString(COSName.S);
     }
 
     /**
@@ -69,7 +70,7 @@ public class PDActionURI extends PDActio
      */
     public void setS(String s)
     {
-        action.setName("S", s);
+        action.setName(COSName.S, s);
     }
 
     /**
@@ -80,7 +81,7 @@ public class PDActionURI extends PDActio
      */
     public String getURI()
     {
-        return action.getString("URI");
+        return action.getString(COSName.URI);
     }
 
     /**
@@ -91,7 +92,7 @@ public class PDActionURI extends PDActio
      */
     public void setURI(String uri)
     {
-        action.setString("URI", uri);
+        action.setString(COSName.URI, uri);
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAdditionalActions.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAdditionalActions.java?rev=1703662&r1=1703661&r2=1703662&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAdditionalActions.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAdditionalActions.java Thu Sep 17 18:03:37 2015
@@ -17,6 +17,7 @@
 package org.apache.pdfbox.pdmodel.interactive.action;
 
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.common.COSObjectable;
 
 /**
@@ -64,7 +65,7 @@ public class PDAdditionalActions impleme
      */
     public PDAction getF()
     {
-        return PDActionFactory.createAction( (COSDictionary)actions.getDictionaryObject("F" ) );
+        return PDActionFactory.createAction( (COSDictionary)actions.getDictionaryObject(COSName.F ) );
     }
 
     /**
@@ -74,6 +75,6 @@ public class PDAdditionalActions impleme
      */
     public void setF( PDAction action )
     {
-        actions.setItem( "F", action );
+        actions.setItem( COSName.F, action );
     }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAnnotationAdditionalActions.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAnnotationAdditionalActions.java?rev=1703662&r1=1703661&r2=1703662&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAnnotationAdditionalActions.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAnnotationAdditionalActions.java Thu Sep 17 18:03:37 2015
@@ -17,6 +17,7 @@
 package org.apache.pdfbox.pdmodel.interactive.action;
 
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.common.COSObjectable;
 
 /**
@@ -124,7 +125,7 @@ public class PDAnnotationAdditionalActio
      */
     public PDAction getD()
     {
-        COSDictionary d = (COSDictionary)actions.getDictionaryObject( "D" );
+        COSDictionary d = (COSDictionary)actions.getDictionaryObject( COSName.D );
         PDAction retval = null;
         if( d != null )
         {
@@ -142,7 +143,7 @@ public class PDAnnotationAdditionalActio
      */
     public void setD( PDAction d )
     {
-        actions.setItem( "D", d );
+        actions.setItem( COSName.D, d );
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDPageAdditionalActions.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDPageAdditionalActions.java?rev=1703662&r1=1703661&r2=1703662&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDPageAdditionalActions.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDPageAdditionalActions.java Thu Sep 17 18:03:37 2015
@@ -17,6 +17,7 @@
 package org.apache.pdfbox.pdmodel.interactive.action;
 
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.common.COSObjectable;
 
 /**
@@ -69,7 +70,7 @@ public class PDPageAdditionalActions imp
      */
     public PDAction getO()
     {
-        COSDictionary o = (COSDictionary)actions.getDictionaryObject( "O" );
+        COSDictionary o = (COSDictionary) actions.getDictionaryObject(COSName.O);
         PDAction retval = null;
         if( o != null )
         {
@@ -88,7 +89,7 @@ public class PDPageAdditionalActions imp
      */
     public void setO( PDAction o )
     {
-        actions.setItem( "O", o );
+        actions.setItem(COSName.O, o);
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDWindowsLaunchParams.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDWindowsLaunchParams.java?rev=1703662&r1=1703661&r2=1703662&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDWindowsLaunchParams.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDWindowsLaunchParams.java Thu Sep 17 18:03:37 2015
@@ -17,6 +17,7 @@
 package org.apache.pdfbox.pdmodel.interactive.action;
 
 import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
 
 import org.apache.pdfbox.pdmodel.common.COSObjectable;
 
@@ -77,7 +78,7 @@ public class PDWindowsLaunchParams imple
      */
     public String getFilename()
     {
-        return params.getString( "F" );
+        return params.getString( COSName.F );
     }
 
     /**
@@ -87,7 +88,7 @@ public class PDWindowsLaunchParams imple
      */
     public void setFilename( String file )
     {
-        params.setString( "F", file );
+        params.setString( COSName.F, file );
     }
 
     /**
@@ -97,7 +98,7 @@ public class PDWindowsLaunchParams imple
      */
     public String getDirectory()
     {
-        return params.getString( "D" );
+        return params.getString( COSName.D );
     }
 
     /**
@@ -107,7 +108,7 @@ public class PDWindowsLaunchParams imple
      */
     public void setDirectory( String dir )
     {
-        params.setString( "D", dir );
+        params.setString( COSName.D, dir );
     }
 
     /**
@@ -120,7 +121,7 @@ public class PDWindowsLaunchParams imple
      */
     public String getOperation()
     {
-        return params.getString( "O", OPERATION_OPEN );
+        return params.getString(COSName.O, OPERATION_OPEN);
     }
 
     /**
@@ -130,7 +131,7 @@ public class PDWindowsLaunchParams imple
      */
     public void setOperation( String op )
     {
-        params.setString( "D", op );
+        params.setString( COSName.D, op );
     }
 
     /**
@@ -140,7 +141,7 @@ public class PDWindowsLaunchParams imple
      */
     public String getExecuteParam()
     {
-        return params.getString( "P" );
+        return params.getString( COSName.P );
     }
 
     /**
@@ -150,6 +151,6 @@ public class PDWindowsLaunchParams imple
      */
     public void setExecuteParam( String param )
     {
-        params.setString( "P", param );
+        params.setString( COSName.P, param );
     }
 }