public void function renderStandard(required string fieldName, required string fieldDomID, required string value, required string description, required boolean isRequired, required string displayMode) { var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); inputParameters = setDefaultParameters(argumentCollection=arguments); if ( inputParameters.renderFieldLabelAbove OR inputParameters.hideFieldLabelContainer ) { writeOutput('
'); renderFieldContainerStart(argumentCollection=arguments); if ( !inputParameters.hideFieldLabelContainer ) { renderLabelContainerStart(argumentCollection=arguments); renderLabelWrapper(argumentCollection=arguments); renderLabelContainerEnd(argumentCollection=arguments); } renderControlContainerStart(argumentCollection=arguments); renderControlWrapper(argumentCollection=arguments); // handles control UI itself, required indicator, validation js, and field permission renderControlContainerEnd(argumentCollection=arguments); renderFieldContainerEnd(argumentCollection=arguments); if (arguments.description != "" && useDescription()) { renderDescrContainerStart(argumentCollection=arguments); // descr container is analogous to fieldContainer, w empty label and control container w descr text inside renderLabelContainerStart(noLabelTag=true); // empty, to keep layout consistent w control rendering renderLabelContainerEnd(noLabelTag=true); renderControlContainerStart(className=getComponentClasses("Description")); renderDescriptionWrapper(argumentCollection=arguments); renderControlContainerEnd(); renderDescrContainerEnd(); } writeOutput('
'); } else { // Use the Standard CFT Rendering super.renderStandard(argumentCollection=arguments); } } // Overriding renderLabelContainerStart public void function renderLabelContainerStart(boolean isRequired=0, string id="", string labelClass="", string fieldDomID="", boolean noLabelTag=0) { var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); inputParameters = setDefaultParameters(argumentCollection=arguments); if ( !inputParameters.renderFieldLabelAbove ) super.renderLabelContainerStart(argumentCollection=arguments); else { var _labelClass = (arguments.labelClass != "") ? " #arguments.labelClass#" : ""; var containerClass = getComponentClasses("FormFieldLabelContainer"); var idHTML = (arguments.fieldDomID != "") ? ' id="#arguments.fieldDomID#_label"': ''; var forHTML = (useLabelFor() && arguments.fieldDomID != "") ? ' for="#arguments.fieldDomID#"' : ''; var labelTagHTML = (arguments.noLabelTag || arguments.fieldDomID == "") ? "" : ""; if (containerClass != "") containerClass = " " & containerClass; writeOutput('#labelTagHTML#'); //original - writeOutput('#labelTagHTML#'); } } public void function renderLabelContainerEnd(boolean noLabelTag=0) { var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); inputParameters = setDefaultParameters(argumentCollection=arguments); super.renderLabelContainerEnd(argumentCollection=arguments); if ( inputParameters.renderFieldLabelAbove ) { // add the clear:both writeOutput('
'); } }
var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); var currentValue = arguments.value; // the field's current value var readOnly = (arguments.displayMode EQ 'readonly') ? true : false; var initArgs = StructNew(); var selectionArgs = StructNew(); var cftGCheaderCSS = ""; inputParameters = setDefaultParameters(argumentCollection=arguments); if ( readOnly ) inputParameters.loadAvailable = 0; // init the cftArgs struct to pass to getInitArgs() and getSelectionsArgs() cftArgs = StructNew(); cftArgs.fieldName = arguments.fieldName; cftArgs.formname = arguments.formname; cftArgs.currentValue = arguments.value; cftArgs.readOnly = readOnly; cftArgs.rendertabindex = arguments.rendertabindex; cftArgs.inputParameters = inputParameters; // init the initArgs struct initArgs = application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="getInitArgs", args=cftArgs, appName=inputParameters.chooserAppName); // Build the argument structure to pass into the getSelections calls selectionArgs = application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="getSelectionArgs", args=cftArgs, appName=inputParameters.chooserAppName); // Load the General Chooser Styles from the loadStyles function as a string cftGCheaderCSS = application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="loadStyles", args=initArgs, appName=inputParameters.chooserAppName); // Load the HeaderCSS application.ADF.scripts.addHeaderCSS(cftGCheaderCSS,"TERTIARY"); // Load the General Chooser JavaScript functions application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="renderChooserJS", args=initArgs, appName=inputParameters.chooserAppName);
#TRIM(application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="loadChooserInstructions", args=initArgs, appName=inputParameters.chooserAppName))#
#application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="loadSearchBox", args=initArgs, appName=inputParameters.chooserAppName)#
#application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="loadAddNewLink", args=initArgs, appName=inputParameters.chooserAppName)#
#TRIM(application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="loadAvailableLabel", args=initArgs, appName=inputParameters.chooserAppName))#
#TRIM(application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="loadSelectedLabel", args=initArgs, appName=inputParameters.chooserAppName))#
    // Set the query type flag before running the command selectionArgs.queryType = 'notselected'; #application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="getSelections", args=selectionArgs, appName=inputParameters.chooserAppName)#
    // Set the query type flag before running the command selectionArgs.queryType = 'selected'; #application.ADF.utils.runCommand(beanName=inputParameters.chooserCFCName, methodName="getSelections", args=selectionArgs, appName=inputParameters.chooserAppName)#
var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); // overwrite the field ID to be unique inputParameters.fieldID = arguments.fieldName; // Set the defaults if( StructKeyExists(inputParameters, "forceScripts") AND (inputParameters.forceScripts EQ "1") ) inputParameters.forceScripts = true; else inputParameters.forceScripts = false; if( NOT StructKeyExists(inputParameters, "minSelections") ) inputParameters.minSelections = "0"; // 0 = selections are optional if( NOT StructKeyExists(inputParameters, "maxSelections") ) inputParameters.maxSelections = "0"; // 0 = infinite selections are possible if( NOT StructKeyExists(inputParameters, "loadAvailable") ) inputParameters.loadAvailable = "0"; // 0 = boolean - 0/1 if( NOT StructKeyExists(inputParameters, "loadAvailableOption") ) inputParameters.loadAvailableOption = "useServerSide"; // useServerSide or useJavascript if ( NOT StructKeyExists(inputParameters,"chooserCFCName") ) inputParameters.chooserCFCName = ""; else inputParameters.chooserCFCName = TRIM(inputParameters.chooserCFCName); if ( NOT StructKeyExists(inputParameters,"chooserAppName") ) inputParameters.chooserAppName = ""; else inputParameters.chooserAppName = TRIM(inputParameters.chooserAppName); if ( NOT StructKeyExists(inputParameters,"uiTheme") OR LEN(inputParameters.uiTheme) LTE 0 ) inputParameters.uiTheme = "ui-lightness"; if ( NOT StructKeyExists(inputParameters,"renderFieldLabelAbove") OR LEN(inputParameters.renderFieldLabelAbove) LTE 0 ) inputParameters.renderFieldLabelAbove = false; // 0 = boolean - 0/1 if ( NOT StructKeyExists(inputParameters,"hideFieldLabelContainer") OR LEN(inputParameters.hideFieldLabelContainer) LTE 0 ) inputParameters.hideFieldLabelContainer = false; // 0 = boolean - 0/1 return inputParameters; private any function getValidationJS(required string formName, required string fieldName, required boolean isRequired) { return "#arguments.fieldName#_validate()"; } private string function getValidationMsg() { return ''; // validator does alert itself dynamically, this keeps the default alert from happening too } private boolean function isMultiline() { return true; } private boolean function useDescription() { return false; } /* 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() { var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); inputParameters = setDefaultParameters(argumentCollection=arguments); // Load registered Resources via the ADF scripts_2_0 application.ADF.scripts.loadJQuery(noConflict=true); application.ADF.scripts.loadJQueryUI(); application.ADF.scripts.loadADFLightbox(); } public string function getResourceDependencies() { return "jQuery,jQueryUI,ADFLightbox,jQueryUIDefaultTheme"; }