var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters);
var currentValue = arguments.value; // the field's current value
var units = '';
var top = '';
var right = '';
var bottom = '';
var left = '';
var unitsOptions = 'px,%,em,rem,vw,vh,vmin,vmax,none';
var unitsHints = ArrayNew(1);
var unitsHintsList = '';
unitsHints[1] = 'Spacing in pixels';
unitsHints[2] = 'Spacing relative to the percentage of the parent';
unitsHints[3] = 'Spacing relative to the font-size of the element (2em = 2 times the size of the current font)';
unitsHints[4] = 'Spacing relative to font-size of the root element';
unitsHints[5] = 'Spacing relative to 1% of the width of the viewport';
unitsHints[6] = 'Spacing relative to 1% of the height of the viewport';
unitsHints[7] = "Spacing relative to 1% of viewport's smaller dimension";
unitsHints[8] = "Spacing relative to 1% of viewport's larger dimension";
unitsHints[9] = "Don't set spacing";
unitsHintsList = ArrayToList(unitsHints);
inputParameters = setDefaultParameters(argumentCollection=arguments);
if( currentValue eq '' )
{
top = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=inputParameters.top);
right = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=inputParameters.right);
bottom = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=inputParameters.bottom);
left = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=inputParameters.left);
units = inputParameters.units;
}
else
{
top = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=ListGetAt( currentValue, 1, ' ' ) );
right = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=ListGetAt( currentValue, 2, ' ' ) );
bottom = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=ListGetAt( currentValue, 3, ' ' ) );
left = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=ListGetAt( currentValue, 4, ' ' ) );
units = reReplace(listFirst(currentValue, " "), "[0-9]", "", "ALL");
if (units == '')
units = 'none';
}
currentValue = top & '#units# ' & right & '#units# ' & bottom & '#units# ' & left & '#units#'; // overwritten by js, which takes into account whether field is hidden, by reading form field value, hidden ones are always 0
// TODO: make sure each value in the possible values string is numeric
renderJSFunctions(argumentCollection=arguments,fieldParameters=inputParameters);
var inputParameters = application.ADF.data.duplicateStruct(arguments.fieldParameters);
var cftFooterJS = '';
application.ADF.scripts.addFooterJS(cftFooterJS,"TERTIARY");
var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters);
// Validate if the property field has been defined
if ( NOT StructKeyExists(inputParameters, "fldID") OR LEN(inputParameters.fldID) LTE 0 )
inputParameters.fldID = arguments.fieldName;
if ( NOT StructKeyExists(inputParameters, "fieldID") )
inputParameters.fieldID = arguments.fieldName;
if ( (NOT StructKeyExists(inputParameters, "fieldClass")) OR ( LEN(TRIM(inputParameters.fieldClass)) LTE 0) )
inputParameters.fieldClass = "";
// Remove any labels from the possibleValues String
if ( StructKeyExists(inputParameters, "possibleValues") AND LEN(TRIM(inputParameters.possibleValues)) )
inputParameters.possibleValues = application.ADF.paddingSettings.normalizePaddingValues(PaddingValues=inputParameters.possibleValues);
else
inputParameters.possibleValues = "";
if( NOT StructKeyExists( inputParameters, 'ShowTop' ) )
inputParameters.ShowTop = 0;
if( NOT StructKeyExists( inputParameters, 'ShowRight' ) )
inputParameters.ShowRight = 0;
if( NOT StructKeyExists( inputParameters, 'ShowBottom' ) )
inputParameters.ShowBottom = 0;
if( NOT StructKeyExists( inputParameters, 'ShowLeft' ) )
inputParameters.ShowLeft = 0;
if( NOT StructKeyExists( inputParameters, 'Units' ) )
inputParameters.Units = 'px';
return inputParameters;
/*
IMPORTANT: Since loadResourceDependencies() is using ADF.scripts loadResources methods, getResourceDependencies() and
loadResourceDependencies() must stay in sync by accounting for all of required resources for this Custom Field Type.
*/
public void function loadResourceDependencies()
{
// Load registered Resources via the ADF scripts_2_0
application.ADF.scripts.loadJQuery(noConflict=true);
}
public string function getResourceDependencies()
{
return "jQuery";
}
public numeric function getMinWidth()
{
return 800;
}