private void UpdateDropdown <T>( List <T> items, CustomDropdown dropdown, ItemNameDelegate <T> itemName, Sprite icon, OnSelectDelegate <T> onSelect, int selectedItemIndex) { List <CustomDropdown.Item> dropdownItems = new List <CustomDropdown.Item>(items.Count); for (int i = 0; i < items.Count; i++) { var currIndex = i; T currItem = (T)items[currIndex]; var onSelectEvent = new UnityEvent(); onSelectEvent.AddListener(() => { onSelect(currItem, currIndex); }); CustomDropdown.Item newItem = new CustomDropdown.Item() { itemName = itemName(currItem, currIndex), itemIcon = icon, OnItemSelection = onSelectEvent, }; dropdownItems.Add(newItem); } dropdown.dropdownItems = dropdownItems; dropdown.selectedItemIndex = selectedItemIndex < dropdownItems.Count ? selectedItemIndex : 0; dropdown.enabled = false; dropdown.enabled = true; }
private void Start() { _dropdown.dropdownItems.Clear(); foreach (var formula in _formulaContainer.Formulas) { formula.OnCalculate.AddListener(() => CreateResults(formula)); var item = new CustomDropdown.Item(); item.itemName = formula.name; if (item.OnItemSelection == null) { item.OnItemSelection = new UnityEvent(); } item.OnItemSelection.AddListener(() => { _formulaSliderBehaviour.SetFormula(formula); CreateResults(formula); CreateConstants(formula); }); _dropdown.dropdownItems.Add(item); } _dropdown.SetupDropdown(); }
public void Init(List <string> robotNames, UnityAction <string> callback, string selectedRobotName = null) { Dropdown.Dropdown.dropdownItems.Clear(); int selectedItemIndex = 0; foreach (string robotName in robotNames) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = robotName }; if (robotName == selectedRobotName) { selectedItemIndex = Dropdown.Dropdown.dropdownItems.Count; } if (callback != null) { if (item.OnItemSelection == null) { item.OnItemSelection = new UnityEvent(); } item.OnItemSelection.AddListener(() => callback(robotName)); } Dropdown.Dropdown.dropdownItems.Add(item); } if (Dropdown.Dropdown.dropdownItems.Count > 0) { Dropdown.Dropdown.selectedItemIndex = selectedItemIndex; Dropdown.Dropdown.SetupDropdown(); } }
public void PutData(List <string> data, UnityAction <string> onChangeCallback) { foreach (string ee in data) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = ee }; if (onChangeCallback != null) { if (item.OnItemSelection == null) { item.OnItemSelection = new UnityEvent(); } item.OnItemSelection.AddListener(() => onChangeCallback(ee)); } Dropdown.Dropdown.dropdownItems.Add(item); } if (Dropdown.Dropdown.dropdownItems.Count > 0) { if (Dropdown.Dropdown.selectedItemIndex >= Dropdown.Dropdown.dropdownItems.Count) { Dropdown.Dropdown.selectedItemIndex = 0; } Dropdown.Dropdown.SetupDropdown(); gameObject.SetActive(true); } else { gameObject.SetActive(false); } }
public void UpdateOrientations() { CustomDropdown orientationDropdown = OrientationsList.Dropdown; orientationDropdown.dropdownItems.Clear(); foreach (IO.Swagger.Model.NamedOrientation orientation in CurrentActionPoint.GetNamedOrientations()) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = orientation.Name }; orientationDropdown.dropdownItems.Add(item); } if (orientationDropdown.dropdownItems.Count == 0) { OrientationsList.gameObject.SetActive(false); NoOrientation.gameObject.SetActive(true); UpdateOrientationBtn.interactable = false; } else { NoOrientation.gameObject.SetActive(false); OrientationsList.gameObject.SetActive(true); orientationDropdown.enabled = true; orientationDropdown.SetupDropdown(); UpdateOrientationBtn.interactable = true; } }
public void Init(List <string> robotNames, UnityAction <string> callback) { Dropdown.Dropdown.dropdownItems.Clear(); foreach (string robotName in robotNames) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = robotName }; string robot_id = SceneManager.Instance.RobotNameToId(robotName); if (callback != null) { if (item.OnItemSelection == null) { item.OnItemSelection = new UnityEvent(); } item.OnItemSelection.AddListener(() => callback(robot_id)); } Dropdown.Dropdown.dropdownItems.Add(item); } if (Dropdown.Dropdown.dropdownItems.Count > 0) { Dropdown.Dropdown.SetupDropdown(); } }
public virtual void PutData(List <string> data, string selectedItem, UnityAction callback) { List <CustomDropdown.Item> items = new List <CustomDropdown.Item>(); foreach (string d in data) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = d }; items.Add(item); } PutData(items, selectedItem, callback); }
public void PutData(Dictionary <string, bool> data, string selectedItem, UnityAction <string> callback) { List <CustomDropdown.Item> items = new List <CustomDropdown.Item>(); foreach (KeyValuePair <string, bool> d in data) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = d.Key }; items.Add(item); } PutData(items, selectedItem, callback); }
public virtual void PutData(List <string> data, string selectedItem, UnityAction <string> callback, List <string> labels = null) { Debug.Assert(labels == null || labels.Count == data.Count); List <CustomDropdown.Item> items = new List <CustomDropdown.Item>(); for (int i = 0; i < data.Count; ++i) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = labels == null ? data[i] : labels[i] }; items.Add(item); } PutData(items, selectedItem, callback); }
//Converts data to Item object, and adds it to dropdownItems List. public virtual void DataToItem(string name, Sprite sprite) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = name, itemIcon = sprite, OnItemSelection = new UnityEngine.Events.UnityEvent() }; customDropdown.dropdownItems.Add(item); item.OnItemSelection.AddListener(delegate() { customDropdown.ChangeDropdownInfo(customDropdown.dropdownItems.IndexOf(item)); }); }
protected override void UpdateUI() { var enumValues = System.Enum.GetNames(propertyInfo.PropertyType); for (int i = 0; i < enumValues.Length; i++) { CustomDropdown.Item item = new CustomDropdown.Item(); item.itemName = enumValues[i]; item.OnItemSelection = new UnityEngine.Events.UnityEvent(); item.OnItemSelection.AddListener(delegate { OnEndEdit(i); }); customDropdown.InstantiateDropdownItem(item); } UpdateValue(); }
public void PutData(List <string> data) { foreach (string ee in data) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = ee }; Dropdown.Dropdown.dropdownItems.Add(item); } if (Dropdown.Dropdown.dropdownItems.Count > 0) { Dropdown.Dropdown.SetupDropdown(); gameObject.SetActive(true); } else { gameObject.SetActive(false); } }
private List <CustomDropdown.Item> _CreateItemList(List <Transform> list) { List <CustomDropdown.Item> _list = new List <CustomDropdown.Item>(); for (int i = 0; i < list.Count; i++) { var l = list[i]; if (l == null) { continue; } var item = new CustomDropdown.Item { itemName = l.gameObject.name, itemIcon = m_LocationMark, }; _list.Add(item); } return(_list); }
public void PutData(List <IO.Swagger.Model.ProjectRobotJoints> robotJoints, string selectedItem, UnityAction callback) { List <CustomDropdown.Item> items = new List <CustomDropdown.Item>(); foreach (IO.Swagger.Model.ProjectRobotJoints joints in robotJoints) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = joints.Name }; if (joints.IsValid) { item.itemIcon = ValidIcon; } else { item.itemIcon = InvalidIcon; } items.Add(item); } PutData(items, selectedItem, callback); }
private bool cancelCallbackInvoked; //flag: only cancel callback should be invoked if canceled /// <summary> /// /// </summary> /// <param name="projectParameter"></param> public async Task <bool> Init(System.Action <string> onCloseCallback, System.Action onCancelCallback, ProjectParameter projectParameter = null, string ofType = null) { this.projectParameter = projectParameter; isNewConstant = projectParameter == null; this.onCloseCallback = onCloseCallback; this.onCancelCallback = onCancelCallback; cancelCallbackInvoked = false; dropdown.Dropdown.dropdownItems.Clear(); foreach (string type in Enum.GetNames(typeof(ProjectParameterTypes))) { CustomDropdown.Item item = new CustomDropdown.Item { itemName = type, OnItemSelection = new UnityEvent() }; item.OnItemSelection.AddListener(() => OnTypeSelected(type)); dropdown.Dropdown.dropdownItems.Add(item); } if (isNewConstant) { Title.text = "New project parameter"; removeButton.SetActive(false); nameInput.SetValue(""); valueInput.SetValue(""); OnTypeSelected(ofType == null ? ProjectParameterTypes.integer : ProjectParametersHelper.ConvertStringParameterTypeToEnum(ofType)); dropdown.Dropdown.selectedItemIndex = (int)selectedType; dropdown.Dropdown.SetupDropdown(); dropdown.Dropdown.GetComponent <Button>().interactable = ofType == null; } else //editing constant { try { await WebsocketManager.Instance.WriteLock(projectParameter.Id, false); Title.text = "Edit project parameter"; removeButton.SetActive(true); nameInput.SetValue(projectParameter.Name); OnTypeSelected(projectParameter.Type); dropdown.Dropdown.selectedItemIndex = (int)selectedType; dropdown.Dropdown.SetupDropdown(); dropdown.Dropdown.GetComponent <Button>().interactable = false; object value = ProjectParametersHelper.GetValue(projectParameter.Value, selectedType); if (selectedType == ProjectParameterTypes.boolean) { trueToggle.isOn = (bool)value; } else { valueInput.SetValue(value); } } catch (RequestFailedException e) { Notifications.Instance.ShowNotification("Failed to lock " + projectParameter.Name, e.Message); this.projectParameter = null; return(false); } } return(true); }