private void SelectClosestItem() { if (ItemBuilderCount > 0) { UIFieldBuilder anotherFieldBuilder = (SelectionIndex < itemFieldBuilders.Count) ? itemFieldBuilders[SelectionIndex] : itemFieldBuilders[SelectionIndex - 1]; ISelectableField anotherSelectableItem = anotherFieldBuilder != null?anotherFieldBuilder.GetComponentInChildren <ISelectableField>(true) : null; if (anotherSelectableItem != null) { anotherSelectableItem.SelectField(); } } else { SelectionIndex = -1; } }
private UIFieldBuilder AddItemBuilder(UIField itemField, bool selectItem) { int fieldCount = ItemBuilderCount; if (itemFieldBuilders != null && itemFieldBuilders.Count > 0) { UIFieldBuilder newItemFieldBuilder; if (fieldCount == 0) { newItemFieldBuilder = itemFieldBuilders[0]; if (newItemFieldBuilder == null) { return(null); } newItemFieldBuilder.gameObject.SetActive(true); } else { newItemFieldBuilder = Instantiate(itemFieldBuilders[0], arrayRoot); if (newItemFieldBuilder == null) { return(null); } itemFieldBuilders.Add(newItemFieldBuilder); } newItemFieldBuilder.CurrentField = itemField; ISelectableField newSelectableItem = newItemFieldBuilder.GetComponentInChildren <ISelectableField>(true); if (newSelectableItem != null) { newSelectableItem.AddSelectListener(SelectField); if (selectItem) { newSelectableItem.SelectField(); } } UpdateScrollBar(); return(newItemFieldBuilder); } return(null); }
private void SelectField(ISelectableField target, bool select) { if (itemFieldBuilders == null) { return; } if (clearSelectionCoroutine != null) { StopCoroutine(clearSelectionCoroutine); } if (select == true) { SelectionIndex = itemFieldBuilders.FindIndex(b => b != null && b.GetComponentInChildren <ISelectableField>(true) == target); if (SelectionIndex != -1) { if (removeItemButton != null) { removeItemButton.interactable = true; } if (downButton != null) { downButton.interactable = SelectionIndex < ItemBuilderCount - 1; } if (upButton != null) { upButton.interactable = SelectionIndex > 0; } UpdateScrollBar(); KeepFocusOnSelection(); } } else { ClearSelection(); } }
public bool MoveField(int fromIndex, int toIndex) { if (CurrentField != null && CurrentField is UIArrayField) { bool move = (CurrentField as UIArrayField).MoveField(fromIndex, toIndex); if (move == false) { return(false); } UIField swapField = itemFieldBuilders[fromIndex].CurrentField; itemFieldBuilders[fromIndex].CurrentField = itemFieldBuilders[toIndex].CurrentField; itemFieldBuilders[toIndex].CurrentField = swapField; ISelectableField selectable = itemFieldBuilders[toIndex].GetComponentInChildren <ISelectableField>(true); if (selectable != null) { selectable.SelectField(); } return(true); } else { return(false); } }