/*
Copyright 2008 Stefano Chizzolini. http://clown.stefanochizzolini.it
Contributors:
* Stefano Chizzolini (original code developer, http://www.stefanochizzolini.it)
This file should be part of the source code distribution of "PDF Clown library"
(the Program): see the accompanying README files for more info.
This Program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later version.
This Program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY, either expressed or implied; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more details.
You should have received a copy of the GNU General Public License along with this
Program (see README files); if not, go to the GNU website (http://www.gnu.org/).
Redistribution and use, with or without modification, are permitted provided that such
redistributions retain the above copyright notice, license and disclaimer, along with
this list of conditions.
*/
using it.stefanochizzolini.clown.bytes;
using it.stefanochizzolini.clown.documents;
using it.stefanochizzolini.clown.documents.interaction.actions;
using it.stefanochizzolini.clown.documents.interaction.annotations;
using it.stefanochizzolini.clown.objects;
using System;
namespace it.stefanochizzolini.clown.documents.interaction.forms{
/**
<summary>Form field actions [PDF:1.6:8.5.2].</summary>
*/
public class FieldActions
: PdfObjectWrapper<PdfDictionary>
{
#region dynamic
#region constructors
public FieldActions(
Document context
) : base(
context.File,
new PdfDictionary()
)
{}
public FieldActions(
PdfDirectObject baseObject,
PdfIndirectObject container
) : base(baseObject,container)
{}
#endregion
#region interface
#region public
public override object Clone(
Document context
)
{throw new NotImplementedException();}
/**
<summary>Gets/Sets a JavaScript action to be performed to recalculate the value
of this field when that of another field changes.</summary>
*/
public JavaScript OnCalculate
{
get
{
/*
NOTE: 'C' entry may be undefined.
*/
PdfDirectObject onCalculateObject = BaseDataObject[PdfName.C];
if(onCalculateObject == null)
return null;
return (JavaScript)Action.Wrap(onCalculateObject,Container);
}
set
{BaseDataObject[PdfName.C] = value.BaseObject;}
}
/**
<summary>Gets/Sets a JavaScript action to be performed when the user types a keystroke
into a text field or combo box or modifies the selection in a scrollable list box.</summary>
*/
public JavaScript OnChange
{
get
{
/*
NOTE: 'K' entry may be undefined.
*/
PdfDirectObject onChangeObject = BaseDataObject[PdfName.K];
if(onChangeObject == null)
return null;
return (JavaScript)Action.Wrap(onChangeObject,Container);
}
set
{BaseDataObject[PdfName.K] = value.BaseObject;}
}
/**
<summary>Gets/Sets a JavaScript action to be performed before the field is formatted
to display its current value.</summary>
<remarks>This action can modify the field's value before formatting.</remarks>
*/
public JavaScript OnFormat
{
get
{
/*
NOTE: 'F' entry may be undefined.
*/
PdfDirectObject onFormatObject = BaseDataObject[PdfName.F];
if(onFormatObject == null)
return null;
return (JavaScript)Action.Wrap(onFormatObject,Container);
}
set
{BaseDataObject[PdfName.F] = value.BaseObject;}
}
/**
<summary>Gets/Sets a JavaScript action to be performed when the field's value is changed.</summary>
<remarks>This action can check the new value for validity.</remarks>
*/
public JavaScript OnValidate
{
get
{
/*
NOTE: 'V' entry may be undefined.
*/
PdfDirectObject onValidateObject = BaseDataObject[PdfName.V];
if(onValidateObject == null)
return null;
return (JavaScript)Action.Wrap(onValidateObject,Container);
}
set
{BaseDataObject[PdfName.V] = value.BaseObject;}
}
#endregion
#endregion
#endregion
}
}
|