Example #1
0
        private void SortNodes(TreeNodeSimulation tns)
        {
            if (tns.Nodes.Count == 0)
            {
                return;
            }

            tns.Nodes.Sort((p1, p2) => string.Compare(p1.Name, p2.Name, true));

            foreach (var t in tns.Nodes)
            {
                SortNodes(t);
            }
        }
Example #2
0
        private void BindTree(TreeNodeSimulation visual, TreeNodeCollection nodes)
        {
            var n = new TreeNode(visual.Name);
            n.Name = visual.Name;
            n.Tag = visual.Tag;
            n.SelectedImageIndex = 4;
            n.ImageIndex = visual.ImageIndex;

            nodes.Add(n);

            if (visual.Nodes.Count == 0)
                return;

            foreach (var child in visual.Nodes)
            {
                BindTree(child, n.Nodes);
            }
        }
Example #3
0
        private void IterateUiLayerFolder()
        {
            var basedPath = Path.GetDirectoryName(TxtSourceFolder.Text);

            var doc = new XmlDocument();
            try
            {
                doc.Load(TxtSourceFolder.Text);
            }
            catch
            {
                MessageBox.Show("Cant load project file");
                return;
            }


            _projNode = new TreeNodeSimulation(Path.GetFileName(TxtSourceFolder.Text), TxtSourceFolder.Text, 0);

            var nsmgr = new XmlNamespaceManager(doc.NameTable);
            nsmgr.AddNamespace("ms", "http://schemas.microsoft.com/developer/msbuild/2003");
            var includedFiles = doc.SelectNodes(@"//ms:Compile[@Include] | //ms:Content[@Include]", nsmgr);
            var total = includedFiles.Count;
            int index = 1;
            foreach (var f in includedFiles)
            {
                Invoke((MethodInvoker)delegate
                {
                    toolStripLabel1.Text = "Loading " + index++ + "/" + total + " files.";
                });

                var fnode = f as XmlNode;
                var n = fnode.Attributes.GetNamedItem("Include");
                var temp = n.Value;

                var segments = temp.Split(new[] { "\\" }, StringSplitOptions.None);
                if (Path.GetExtension(segments[segments.Length - 1]).ToLower() == ".vb" &&
                    (segments[segments.Length - 1].Substring(segments[segments.Length - 1].Length - 12, 12).ToLower() != ".designer.vb" &&
                    segments[segments.Length - 1].ToLower() != "assemblyinfo.vb"))
                {
                    if (segments.Length == 1)
                    {

                        var fNode = new TreeNodeSimulation(segments[0], Path.Combine(basedPath, temp), GetImageIndex(segments[0]));
                        _projNode.Nodes.Add(fNode);

                        ParseUiClassToGetMtClassesAndMtMethodNames(fNode.Tag);
                    }
                    else
                    {
                        var parN = _projNode;

                        for (var i = 0; i < segments.Length - 1; i++)
                        {
                            var curN = parN.Nodes.FirstOrDefault(p => p.Name == segments[i]);

                            if (curN == null)
                            {

                                var currPath = string.Empty;
                                for (var j = 0; j <= i; j++)
                                {
                                    currPath += segments[j] + "\\";
                                }

                                curN = new TreeNodeSimulation(segments[i], Path.Combine(basedPath, currPath), 1);
                                parN.Nodes.Add(curN);
                            }

                            parN = curN;
                        }

                        var fileName = segments[segments.Length - 1];
                        var leafN = new TreeNodeSimulation(fileName, Path.Combine(basedPath, temp), GetImageIndex(fileName));
                        parN.Nodes.Add(leafN);

                        ParseUiClassToGetMtClassesAndMtMethodNames(leafN.Tag);
                    }
                }
            }

            SortNodes(_projNode);

            Invoke((MethodInvoker)delegate
                    {
                        BindTree(_projNode, treeView1.Nodes);

                        if (treeView1.Nodes.Count > 0)
                            treeView1.Nodes[0].Expand();

                        toolStripProgressBar1.MarqueeAnimationSpeed = 0;
                        toolStripProgressBar1.Style = ProgressBarStyle.Blocks;
                        toolStripLabel1.Text = "Loaded files";
                    });
        }