Beispiel #1
0
        public void BuildParentNode()
        {
            DirectoryInfo DIR = new DirectoryInfo(GlobalVariable.objMainWindowVM.SavedData.DriveLetter);

            LsRootTreeViewItem = new ObservableCollection <RootTreeViewItem>();

            RootTreeViewItem Parent = new RootTreeViewItem();

            Parent.Header     = DIR.Name;
            Parent.Path       = DIR.FullName;
            Parent.Type       = DIR.GetType().Name;
            Parent.IsExpanded = false;
            LsRootTreeViewItem.Add(Parent);

            Parent.LsChildrenNode = new ObservableCollection <RootTreeViewItem>();
            foreach (DirectoryInfo DR in DIR.GetDirectories())
            {
                if (!DR.Attributes.ToString().Contains("Hidden"))
                {
                    RootTreeViewItem ParenNode = new RootTreeViewItem();
                    ParenNode.Header     = DR.Name;
                    ParenNode.Path       = DR.FullName;
                    ParenNode.Type       = DR.GetType().Name;
                    ParenNode.IsExpanded = false;
                    Parent.LsChildrenNode.Add(ParenNode);

                    ParenNode.LsChildrenNode = new ObservableCollection <RootTreeViewItem>();
                    foreach (DirectoryInfo CDIR in DR.GetDirectories())
                    {
                        RootTreeViewItem ChildrenNode = new RootTreeViewItem();
                        ChildrenNode.IsExpanded = false;
                        ChildrenNode.Header     = CDIR.Name;
                        ChildrenNode.Path       = CDIR.FullName;
                        ChildrenNode.Type       = CDIR.GetType().Name;
                        ParenNode.LsChildrenNode.Add(ChildrenNode);
                    }
                }
            }
            foreach (FileInfo DR in DIR.GetFiles())
            {
                if (!DR.Attributes.ToString().Contains("Hidden"))
                {
                    RootTreeViewItem ParenNode = new RootTreeViewItem();
                    ParenNode.Header     = DR.Name;
                    ParenNode.Path       = DR.FullName;
                    ParenNode.Type       = DR.GetType().Name;
                    ParenNode.IsExpanded = false;
                    Parent.LsChildrenNode.Add(ParenNode);
                }
            }
        }
        protected override IList <TreeViewItem> BuildRows(TreeViewItem root)
        {
            //Debug.Log(sortCol + " " + sortColumn.sortedAscending);
            profilerState.lastFrame = profilerState.profilerWindow.GetActiveVisibleFrameIndex();

            var rows = new List <TreeViewItem>();

            if (property == null || !property.frameDataReady)
            {
                return(rows);
            }
            m_AllCanvasesItem = new RootTreeViewItem();
            SetExpanded(m_AllCanvasesItem.id, true);
            root.AddChild(m_AllCanvasesItem);
            UISystemProfilerInfo[] UISystemData = property.GetUISystemProfilerInfo();
            int[] allBatchesInstanceIDs         = property.GetUISystemBatchInstanceIDs();

            if (UISystemData != null)
            {
                Dictionary <int, TreeViewItem> map = new Dictionary <int, TreeViewItem>();
                int batchIndex = 0;
                foreach (var data in UISystemData)
                {
                    TreeViewItem parent;
                    if (!map.TryGetValue(data.parentId, out parent))
                    {
                        parent = m_AllCanvasesItem;
                        m_AllCanvasesItem.totalBatchCount  += data.totalBatchCount;
                        m_AllCanvasesItem.totalVertexCount += data.totalVertexCount;
                        m_AllCanvasesItem.gameObjectCount  += data.instanceIDsCount;
                    }
                    string           name;
                    BaseTreeViewItem canvasTreeViewItem;
                    if (data.isBatch)
                    {
                        name = "Batch " + batchIndex++;
                        canvasTreeViewItem = new BatchTreeViewItem(data, parent.depth + 1, name, allBatchesInstanceIDs);
                    }
                    else
                    {
                        name = property.GetUISystemProfilerNameByOffset(data.objectNameOffset);
                        canvasTreeViewItem         = new CanvasTreeViewItem(data, parent.depth + 1, name);
                        batchIndex                 = 0;
                        map[data.objectInstanceId] = canvasTreeViewItem;
                    }
                    if (!IsExpanded(parent.id))
                    {
                        if (!parent.hasChildren)
                        {
                            parent.children = CreateChildListForCollapsedParent();
                        }
                        continue;
                    }
                    parent.AddChild(canvasTreeViewItem);
                }

                m_Comparer.Col = Column.Element;
                if (multiColumnHeader.sortedColumnIndex != -1)
                {
                    m_Comparer.Col = (Column)multiColumnHeader.sortedColumnIndex;
                }
                m_Comparer.isAscending = multiColumnHeader.GetColumn((int)m_Comparer.Col).sortedAscending;

                SetupRows(m_AllCanvasesItem, rows);
            }
            return(rows);
        }