Ejemplo n.º 1
0
        private void addSubfolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var node = tvDirStructure.SelectedNode;

            if (node == null)
            {
                return;
            }

            var folder = new FolderEntryWrap("New Folder");

            folder.Parent = node.Tag as FolderEntryWrap;
        }
Ejemplo n.º 2
0
        private void addFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var folder = new FolderEntryWrap("New Folder");

            var node = tvDirStructure.SelectedNode;

            if (node == null || node.Parent == null)
            {
                tvDirStructure.Nodes.Add(folder.VisualNode);
            }
            else
            {
                folder.Parent = node.Parent.Tag as FolderEntryWrap;
            }
        }
Ejemplo n.º 3
0
        public void OpenBinplaceFile(string filename)
        {
            tvDirStructure.BeginUpdate();
            try
            {
                tvDirStructure.Nodes.Clear();

                //
                var dirHash = new Dictionary <string, FolderEntryWrap>();

                //
                var root = new FolderEntryWrap();
                tvDirStructure.Nodes.Add(root.VisualNode);
                dirHash.Add("<root>", root);

                using (var sr = new StreamReader(filename))
                {
                    var line = string.Empty;

                    while ((line = sr.ReadLine()) != null)
                    {
                        if (string.IsNullOrEmpty(line))
                        {
                            continue;
                        }

                        if (line[0] == ';')
                        {
                            continue;
                        }

                        var row = line.Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
                        if (row.Length < 1 || row.Length > 2)
                        {
                            // TODO: report warning
                            continue;
                        }

                        var name = row[0];
                        if (row.Length == 2)
                        {
                            var path = row[1];
                            if (path.EndsWith("\\"))
                            {
                                path = path.Remove(path.Length - 1, 1);
                            }

                            if (!dirHash.ContainsKey(path))
                            {
                                var pathParts    = path.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
                                var tmpPath      = string.Empty;
                                var parentFolder = root;
                                for (var i = 0; i < pathParts.Length; i++)
                                {
                                    if (tmpPath.Length > 0)
                                    {
                                        tmpPath += "\\";
                                    }

                                    tmpPath += pathParts[i];

                                    if (!dirHash.ContainsKey(tmpPath))
                                    {
                                        var folder = dirHash[tmpPath] = new FolderEntryWrap(pathParts[i]);
                                        folder.Parent = parentFolder;
                                    }

                                    parentFolder = dirHash[tmpPath];
                                }
                            }

                            dirHash[path].Modules.Add(name);
                        }
                        else
                        {
                            // add it to root
                            root.Modules.Add(name);
                        }
                    }
                }
            }
            finally
            {
                tvDirStructure.EndUpdate();
            }
        }