Esempio n. 1
0
    public string FullPath()
    {
        string    s      = this.Key;
        TreeNodeX parent = (TreeNodeX)this.Parent;

        while (parent != null && parent.Key != null)
        {
            s      = parent.Key + "\\" + s;
            parent = (TreeNodeX)parent.Parent;
        }
        return(s);
    }
Esempio n. 2
0
        private void RecursiveTreeTraversal(List <TreeNodeX> prefixes, TreeNode root, int sum)
        {
            //First procoess the current root and prefixes

            //if (root.val == sum)
            //    solutionCounter++;

            ////Epic Fail here
            ////int currentSum = prefixes.Count>0 ? prefixes[prefixes.Count - 1].sumFromRoot: 0  + root.val;
            int currentSum = (prefixes.Count > 0 ? prefixes[prefixes.Count - 1].sumFromRoot : 0) + root.val;

            if (currentSum == sum)
            {
                solutionCounter++;
            }

            foreach (var temp in prefixes)
            {
                if ((currentSum - temp.sumFromRoot) == sum)
                {
                    solutionCounter++;
                }
            }

            if (root.left == null && root.right == null)
            {
                return;
            }

            //Generate the prefix for further processing
            List <TreeNodeX> newPrefixes = new List <TreeNodeX>(prefixes);
            TreeNodeX        rootX       = new TreeNodeX()
            {
                node = root, sumFromRoot = currentSum
            };

            newPrefixes.Add(rootX);

            //Recursively Call the Left and Right
            if (root.left != null)
            {
                RecursiveTreeTraversal(newPrefixes, root.left, sum);
            }

            if (root.right != null)
            {
                RecursiveTreeTraversal(newPrefixes, root.right, sum);
            }
        }
Esempio n. 3
0
        private void preorderTravesal(TreeNode root, int x0, int y0)
        {
            if (root.left != null)
            {
                preorderTravesal(root.left, x0 - 1, y0 - 1);
            }

            TreeNodeX temp = new TreeNodeX()
            {
                node = root, x = x0, y = y0, v = root.val
            };

            preorderNodes.Add(temp);

            if (root.right != null)
            {
                preorderTravesal(root.right, x0 + 1, y0 - 1);
            }
        }
Esempio n. 4
0
        public void GetDrivesToNode(TreeNodeX nodeRoot)
        {
            DriveInfo[] drives = DriveInfo.GetDrives();
            TreeNode    driveItem;

            foreach (DriveInfo drive in drives)
            {
                driveItem          = nodeRoot.Nodes.Add(drive.Name.TrimEnd('\\').ToUpper(), drive.DriveType.ToString() + @" (" + drive.Name + @")");
                driveItem.Tag      = drive;
                driveItem.ImageKey = driveItem.SelectedImageKey = drive.DriveType.ToString();

                DirectoryInfo info = new DirectoryInfo(drive.Name);
                if (info.Exists)
                {
                    driveItem.Text = drive.VolumeLabel + @" (" + drive.Name + @")";
                    GetDirectoriesOfDriveToNode(drive, driveItem);
                }
            }
        }
Esempio n. 5
0
        private void DataFactory_NodeIndexingCompleted(object sender, EventArgs e)
        {
            Dispatcher.Invoke(() =>
            {
                var rootSchema = treeGrid.rootNode.RootSchemaNode;
                foreach (var firstLevelSchema in rootSchema.ChildNodes)
                {
                    var oldDataItem = treeGrid.rootNode.DataItems.FirstOrDefault(x => x.Name == firstLevelSchema.Name && x.Schema.XPath == firstLevelSchema.XPath);

                    if (oldDataItem != null)
                    {
                        oldDataItem.TotalRecordCount = DataFactory.GetNodeCount(firstLevelSchema.Name);

                        if (oldDataItem.IsDataNodeMissing)
                        {
                            var newDataItem = DataFactory.GetDataItemNode(1, oldDataItem.Name);

                            var childItem = newDataItem.Children.FirstOrDefault(x => x.Name == firstLevelSchema.Name);

                            if (childItem != null)
                            {
                                if (childItem.IsProperty)
                                {
                                    oldDataItem.ValueBlock.Text = childItem.Value;
                                    oldDataItem.Value           = childItem.Value;
                                }
                                else
                                {
                                    TreeNodeX treeNodeX = oldDataItem.VisualTreeNode as TreeNodeX;
                                    treeNodeX.LoadData(childItem);

                                    treeGrid.rootNode.RemoveDataItem(oldDataItem);
                                    oldDataItem.VisualTreeNode = null;
                                }
                            }
                        }
                    }
                }
            });
        }