Esempio n. 1
0
            /// <summary>
            /// Calculate and sets the width of the items.
            /// </summary>
            /// <param name="items">Items.</param>
            /// <param name="forceUpdate">If set to <c>true</c> force update.</param>
            public override void CalculateItemsSizes(ObservableList <TItem> items, bool forceUpdate = true)
            {
                RemoveOldItems(items);

                if (Owner.PrecalculateItemSizes)
                {
                    Owner.DefaultItemCopy.gameObject.SetActive(true);

                    if (Owner.DefaultItemLayout == null)
                    {
                        Owner.DefaultItemLayout = Owner.DefaultItemCopy.GetComponent <LayoutGroup>();

                        Owner.DefaultItemNestedLayouts = Owner.DefaultItemCopy.GetComponentsInChildren <LayoutGroup>();
                        Array.Reverse(Owner.DefaultItemNestedLayouts);
                    }

                    if (forceUpdate)
                    {
                        items.ForEach(x =>
                        {
                            ItemSizes[x] = CalculateComponentSize(x);
                        });
                    }
                    else
                    {
                        foreach (var item in items)
                        {
                            if (!ItemSizes.ContainsKey(item))
                            {
                                ItemSizes[item] = CalculateComponentSize(item);
                            }
                        }
                    }

                    Owner.DefaultItemCopy.gameObject.SetActive(false);
                }
                else
                {
                    if (forceUpdate)
                    {
                        items.ForEach(x =>
                        {
                            ItemSizes[x] = Owner.ItemSize;
                        });
                    }
                    else
                    {
                        foreach (var item in items)
                        {
                            if (!ItemSizes.ContainsKey(item))
                            {
                                ItemSizes[item] = Owner.ItemSize;
                            }
                        }
                    }
                }
            }
Esempio n. 2
0
        /// <summary>
        /// Calculated selected indicies of new items .
        /// </summary>
        /// <returns>The selected indicies.</returns>
        /// <param name="newItems">New items.</param>
        List <int> NewSelectedIndicies(ObservableList <string> newItems)
        {
            var selected_indicies = new List <int>();

            if (newItems.Count == 0)
            {
                return(selected_indicies);
            }

            //duplicated items should not be selected more than at start
            var new_items_copy = new List <string>(newItems);

            var selected_items = SelectedIndicies.Convert <int, string>(GetDataItem);

            selected_items = selected_items.Where(x => {
                var is_valid_item = newItems.Contains(x);
                if (is_valid_item)
                {
                    new_items_copy.Remove(x);
                }
                return(is_valid_item);
            }).ToList();

            newItems.ForEach((item, index) => {
                if (selected_items.Contains(item))
                {
                    selected_items.Remove(item);
                    selected_indicies.Add(index);
                }
            });

            return(selected_indicies);
        }
Esempio n. 3
0
        /// <summary>
        /// Calculate and sets the height of the items.
        /// </summary>
        /// <param name="items">Items.</param>
        /// <param name="forceUpdate">If set to <c>true</c> force update.</param>
        void CalculateItemsSizes(ObservableList <TItem> items, bool forceUpdate = true)
        {
            // remove old items
            ItemSizes.Keys.Except(items).ToArray().ForEach(x => ItemSizes.Remove(x));

            if (defaultItemLayoutGroup == null)
            {
                DefaultItemCopy.gameObject.SetActive(true);

                defaultItemLayoutGroup = DefaultItemCopy.GetComponent <LayoutGroup>();
            }

            if (forceUpdate)
            {
                DefaultItemCopy.gameObject.SetActive(true);

                items.ForEach(x => {
                    ItemSizes[x] = CalculateComponentSize(x);
                });

                DefaultItemCopy.gameObject.SetActive(false);
            }
            else
            {
                items.Except(ItemSizes.Keys).ForEach(x => {
                    ItemSizes[x] = CalculateComponentSize(x);
                });
            }
        }
Esempio n. 4
0
 void CollectionChanged()
 {
     if (nodes == null)
     {
         return;
     }
     nodes.ForEach(SetParent);
 }
Esempio n. 5
0
 /// <summary>
 /// Calculate and sets the height of the items.
 /// </summary>
 /// <param name="items">Items.</param>
 /// <param name="forceUpdate">If set to <c>true</c> force update.</param>
 void SetItemsHeight(ObservableList <TItem> items, bool forceUpdate = true)
 {
     items.ForEach(x => {
         if ((x.Height == 0) || forceUpdate)
         {
             x.Height = CalculateItemHeight(x);
         }
     });
 }
Esempio n. 6
0
 /// <summary>
 /// Calculate and sets the width of the items.
 /// </summary>
 /// <param name="items">Items.</param>
 /// <param name="forceUpdate">If set to <c>true</c> force update.</param>
 void SetItemsWidth(ObservableList <TItem> items, bool forceUpdate = true)
 {
     items.ForEach(x => {
         if ((x.Width == 0) || forceUpdate)
         {
             x.Width = CalculateItemWidth(x);
         }
     });
 }
        /// <summary>
        /// Load subnodes data for specified nodes.
        /// </summary>
        /// <param name="nodes">Nodes.</param>
        public virtual void LoadNodes(ObservableList <TreeNode <FileSystemEntry> > nodes)
        {
            nodes.BeginUpdate();

            try
            {
                nodes.ForEach(LoadNode);
            }
            finally
            {
                nodes.EndUpdate();
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Calculate and sets the height of the items.
        /// </summary>
        /// <param name="items">Items.</param>
        /// <param name="forceUpdate">If set to <c>true</c> force update.</param>
        void SetItemsHeight(ObservableList <TItem> items, bool forceUpdate = true)
        {
            if (defaultItemLayoutGroup == null)
            {
                DefaultItemCopy.gameObject.SetActive(true);

                defaultItemLayoutGroup = DefaultItemCopy.GetComponent <LayoutGroup>();
            }

            DefaultItemCopy.gameObject.SetActive(true);

            items.ForEach(x => {
                if ((x.Height == 0) || forceUpdate)
                {
                    x.Height = CalculateItemHeight(x);
                }
            });

            DefaultItemCopy.gameObject.SetActive(false);
        }