예제 #1
0
        // this gets called whenever someone issues a reload() call to the parent
        protected override IList <TreeViewItem> BuildRows(TreeViewItem root)
        {
            if (m_Items == null)
            {
                var rawData = m_DataStore.GetElements();
                m_Items = new List <TreeViewItem>(rawData.Length);

                for (int i = 0; i < rawData.Length; i++)
                {
                    var item = new SerializedPropertyItem(rawData[i].objectId, 0, rawData[i]);
                    m_Items.Add(item);
                }
            }

            // filtering
            IEnumerable <TreeViewItem> tmprows = m_Items;

            if (!m_ShowInactiveObjects && m_ShowFilterGUI)
            {
                tmprows = m_Items.Where((TreeViewItem item) => { return(((SerializedPropertyItem)item).GetData().activeInHierarchy); });
            }

            if (m_bFilterSelection && m_ShowFilterGUI)
            {
                if (m_SelectionFilter == null)
                {
                    m_SelectionFilter = Selection.instanceIDs;
                }
                tmprows = m_Items.Where((TreeViewItem item) => { return(m_SelectionFilter.Contains(item.id)); });
            }
            else
            {
                m_SelectionFilter = null;
            }

            tmprows = Filter(tmprows);

            var rows = tmprows.ToList();

            if (multiColumnHeader.sortedColumnIndex >= 0)
            {
                Sort(rows, multiColumnHeader.sortedColumnIndex);
            }

            m_ChangedId = 0;

            // We still need to setup the child parent information for the rows since this
            // information is used by the TreeView internal logic (navigation, dragging etc)
            TreeViewUtility.SetParentAndChildrenForItems(rows, root);

            return(rows);
        }
예제 #2
0
        protected override IList <TreeViewItem> BuildRows(TreeViewItem root)
        {
            if (this.m_Items == null)
            {
                SerializedPropertyDataStore.Data[] elements = this.m_DataStore.GetElements();
                this.m_Items = new List <TreeViewItem>(elements.Length);
                for (int i = 0; i < elements.Length; i++)
                {
                    SerializedPropertyTreeView.SerializedPropertyItem item2 = new SerializedPropertyTreeView.SerializedPropertyItem(elements[i].objectId, 0, elements[i]);
                    this.m_Items.Add(item2);
                }
            }
            IEnumerable <TreeViewItem> enumerable = this.m_Items;

            if (this.m_bFilterSelection)
            {
                if (this.m_SelectionFilter == null)
                {
                    this.m_SelectionFilter = Selection.instanceIDs;
                }
                enumerable = from item in this.m_Items
                             where this.m_SelectionFilter.Contains(item.id)
                             select item;
            }
            else
            {
                this.m_SelectionFilter = null;
            }
            enumerable = this.Filter(enumerable);
            List <TreeViewItem> list = enumerable.ToList <TreeViewItem>();

            if (base.multiColumnHeader.sortedColumnIndex >= 0)
            {
                this.Sort(list, base.multiColumnHeader.sortedColumnIndex);
            }
            this.m_ChangedId = 0;
            TreeViewUtility.SetParentAndChildrenForItems(list, root);
            return(list);
        }