Exemplo n.º 1
0
    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;
        }
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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();
        }
    }
Exemplo n.º 4
0
 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);
     }
 }