public Control GetConfigurationControl(
            AlteryxGuiToolkit.Document.Properties docProperties,
            XmlElement eConfig,
            XmlElement[] eIncomingMetaInfo,
            int nToolId,
            string strToolName)
        {
            // Call LoadFromConfiguration to get the xml file name and field information from eConfig.
            XmlInputConfiguration xmlConfig = XmlInputConfiguration.LoadFromConfiguration(eConfig);

            if (xmlConfig == null)
            {
                return(this);
            }

            // Populate the ComboBox with field names
            // If there is no incoming connection, use what is stored

            string selectedField = xmlConfig.SelectedField;

            if (eIncomingMetaInfo == null || eIncomingMetaInfo[0] == null)
            {
                string   fieldNames    = xmlConfig.FieldNames;
                string[] arrFieldNames = fieldNames.Split(',');

                comboboxFilenameField.Items.Clear();
                foreach (string fieldName in arrFieldNames)
                {
                    comboboxFilenameField.Items.Add(fieldName);
                }

                // Select the saved field
                if (!string.IsNullOrWhiteSpace(selectedField))
                {
                    int selectedIndex = comboboxFilenameField.FindStringExact(selectedField);
                    if (selectedIndex > 0)
                    {
                        comboboxFilenameField.SelectedIndex = selectedIndex;
                    }
                }
            }
            else
            {
                comboboxFilenameField.Items.Clear();

                var xmlElementMetaInfo   = eIncomingMetaInfo[0];
                var xmlElementRecordInfo = xmlElementMetaInfo.FirstChild;

                foreach (XmlElement elementChild in xmlElementRecordInfo)
                {
                    string fieldName = elementChild.GetAttribute("name");
                    string fieldType = elementChild.GetAttribute("type");

                    if (isStringType(fieldType))
                    {
                        comboboxFilenameField.Items.Add(fieldName);
                    }
                }

                // If the selectedField matches a possible field in the combo box,
                // make it the selected field.
                // If the selectedField does not match, do not select anything and
                // blank the selectedField.
                if (!string.IsNullOrWhiteSpace(selectedField))
                {
                    int selectedIndex = comboboxFilenameField.FindStringExact(selectedField);
                    if (selectedIndex == -1)
                    {
                        // Not Found
                        XmlElement xmlElementSelectedField = XmlHelpers.GetOrCreateChildNode(eConfig, Constants.SELECTEDFIELDKEY);
                        xmlElementSelectedField.InnerText = "";
                    }
                    else
                    {
                        // Found
                        comboboxFilenameField.SelectedIndex = selectedIndex;
                    }
                }
            } // end of "if (eIncomingMetaInfo == null || eIncomingMetaInfo[0] == null)"

            return(this);
        }