public override GameObject CreateObject(Transform parent)
        {
            LabelAndValueDropdownWithTableView dropdown = MonoBehaviour.Instantiate(safePrefab, parent, false);

            dropdown.gameObject.SetActive(false);
            dropdown.name = "BSMLDropDownList";
            TextMeshProUGUI text = dropdown.GetField <TextMeshProUGUI, LabelAndValueDropdownWithTableView>("_labelText");

            text.fontSize = 5;
            dropdown.gameObject.AddComponent <ExternalComponents>().components.Add(text);

            LayoutElement layoutElement = dropdown.gameObject.AddComponent <LayoutElement>();

            layoutElement.preferredHeight = 8;
            layoutElement.preferredWidth  = 90;
            dropdown.SetLabelText("Default Text");
            dropdown.SetValueText("Default Text");

            DropDownListSetting dropDownListSetting = dropdown.gameObject.AddComponent <DropDownListSetting>();

            dropDownListSetting.tableView            = dropdown.GetField <TableView, DropdownWithTableView>("_tableView");
            dropDownListSetting.dropdown             = dropdown;
            dropDownListSetting.tableView.dataSource = dropDownListSetting;

            return(dropdown.gameObject);
        }
        public override GameObject CreateObject(Transform parent)
        {
            LabelAndValueDropdownWithTableView dropdown = MonoBehaviour.Instantiate(safePrefab, parent, false);

            dropdown.gameObject.SetActive(false);
            dropdown.name = "BSMLDropDownList";
            TextMeshProUGUI text = dropdown.GetPrivateField <TextMeshProUGUI>("_labelText");

            text.fontSize = 5;
            dropdown.gameObject.AddComponent <ExternalComponents>().components.Add(text);

            LayoutElement layoutElement = dropdown.gameObject.AddComponent <LayoutElement>();

            layoutElement.preferredHeight = 8;
            layoutElement.preferredWidth  = 90;
            dropdown.SetLabelText("Default Text");
            dropdown.SetValueText("Default Text");

            DropDownListSetting dropDownListSetting = dropdown.gameObject.AddComponent <DropDownListSetting>();
            //dropDownListSetting.tableView = dropdown.GetPrivateField<TableView>("_tableView");
            //temp
            FieldInfo fieldInfo = typeof(DropdownWithTableView).GetField("_tableView", BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);

            dropDownListSetting.tableView = fieldInfo.GetValue(dropdown) as TableView;
            //
            dropDownListSetting.dropdown             = dropdown;
            dropDownListSetting.tableView.dataSource = dropDownListSetting;

            return(dropdown.gameObject);
        }
 public override void Setup()
 {
     safePrefab = MonoBehaviour.Instantiate(Resources.FindObjectsOfTypeAll <LabelAndValueDropdownWithTableView>().First(x => x.name == "NormalLevels"), BSMLParser.instance.transform, false);
     safePrefab.gameObject.SetActive(false);
     safePrefab.name = "BSMLDropDownListPrefab";
 }