internal void AddFilesAsNodes(FolderNode parentNode, List <string> files, List <string> invalidFileNames)
        {
            foreach (string fileName in files)
            {
                var fi  = new FileInfo(fileName);
                var ext = fi.Extension;
                if (ext.Length > 0)
                {
                    ext = ext.Remove(0, 1);
                }

                //Test valid characters
                if (Webresource.IsNameValid(fi.Name, OrganizationMajorVersion) && Webresource.IsValidExtension(ext, Settings))
                {
                    var name = $"{parentNode.ResourceFullPath}/{fi.Name}";

                    var resource = new Webresource(name, fi.FullName, WebresourceType.Auto, mainControl, Settings);
                    if (mainControl.WebresourcesCache.All(w => w.Name != resource.Name))
                    {
                        mainControl.WebresourcesCache.Add(resource);
                    }

                    AddSingleNode(resource, resource.Name.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries),
                                  parentNode);
                    parentNode.Expand();
                }
                else
                {
                    invalidFileNames?.Add(fileName);
                }
            }

            tv.Sort();
        }
Ejemplo n.º 2
0
        void ICallbackEventHandler.RaiseCallbackEvent(string eventArgs)
        {
            int        index = eventArgs.IndexOf('|');
            FolderNode node  = new FolderNode(this);

            node.ValuePath = eventArgs.Substring(index + 1);

            node.Expand();
            int num = node.ChildNodes.Count;

            if (num == 0)
            {
                callbackResult = "*";
                return;
            }

            ArrayList levelLines = new ArrayList();

            for (int i = 0; i < index; i++)
            {
                levelLines.Add(eventArgs[i] == '1' ? this : null);
            }

            StringBuilder  sb     = new StringBuilder();
            HtmlTextWriter writer = new HtmlTextWriter(new StringWriter(sb));

            EnsureStylesPrepared();

            for (int n = 0; n < num; n++)
            {
                RenderNode(writer, node.ChildNodes[n], index, levelLines, true, n < num - 1);
            }

            callbackResult = sb.ToString();
        }
Ejemplo n.º 3
0
        void ExpandRecursive(FolderNode treeNode, int dept)
        {
            if (dept == 0)
            {
                return;
            }

            treeNode.Expand();
            foreach (FolderNode child in treeNode.ChildNodes)
            {
                ExpandRecursive(child, dept - 1);
            }
        }
Ejemplo n.º 4
0
        public void ShowDirectory(string path)
        {
            string[] Folders = path.Split('\\');

            FolderNode Node = new FolderNode(Folders[0]);

            folderTree.Nodes.Add(Node);
            Node.Expand();

            for (int i = 1; i < Folders.Length; i++)
            {
                ExpandQueue.Enqueue(Folders[i]);
            }
        }
Ejemplo n.º 5
0
        private void AddChildNodesR(TreeNode parentNode, Folder <FileInfo> fileTree)
        {
            foreach (var file in fileTree.Items)
            {
                parentNode.Nodes.Add(new FileNode(file, imlSmallIcons));
            }

            foreach (var child in fileTree.Folders)
            {
                var node = new FolderNode(child.Name);
                parentNode.Nodes.Add(node);
                AddChildNodesR(node, child);
                node.Expand();
            }
        }
        internal void AddNewWebresource(FolderNode parentNode, WebresourceType type)
        {
            var map = WebresourceMapper.Instance.Items.First(i => i.Type == type);

            var nwrDialog = new NewWebResourceDialog(map.Extension, OrganizationMajorVersion);

            if (nwrDialog.ShowDialog(mainControl) == DialogResult.OK)
            {
                var name = $"{parentNode.ResourceFullPath}/{nwrDialog.WebresourceName}";

                var resource = new Webresource(name, null, type, mainControl);
                mainControl.WebresourcesCache.Add(resource);

                AddSingleNode(resource, name.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries), parentNode);

                parentNode.Expand();
            }
        }
Ejemplo n.º 7
0
        private void LoadObjects(DbObjectSearch search = null)
        {
            try
            {
                pbLoading.Visible = true;
                OperationStarted?.Invoke(this, "Loading objects...");

                tvwObjects.BeginUpdate();
                tvwObjects.Nodes.Clear();

                var schemas = _objects
                              .Where(obj => !string.IsNullOrEmpty(obj.Schema) && (search?.IsIncluded(obj) ?? true))
                              .GroupBy(obj => obj.Schema).OrderBy(grp => grp.Key);

                FolderNode folderNode = null;

                foreach (var schemaGrp in schemas)
                {
                    var schemaNode = new SchemaNode(schemaGrp.Key, schemaGrp.Count());
                    tvwObjects.Nodes.Add(schemaNode);

                    var tables = schemaGrp.OfType <Table>().OrderBy(obj => obj.Name);
                    if (tables.Any())
                    {
                        folderNode = new FolderNode("Tables", tables.Count());
                        schemaNode.Nodes.Add(folderNode);

                        foreach (var table in tables)
                        {
                            var tableNode = new TableNode(table);
                            if (_aliasManager.ContainsTable(table.ToString(), out string alias))
                            {
                                tableNode.Alias = alias;
                            }
                            folderNode.Nodes.Add(tableNode);

                            var foreignKeys = table.GetParentForeignKeys(_objects);
                            tableNode.Columns.AddRange(table.Columns.Select(col =>
                            {
                                var node = new ColumnNode(col, foreignKeys, table.IdentityColumn);
                                if (IsUniqueMultiColumn(table, col))
                                {
                                    node.NodeFont = new Font(tvwObjects.Font, FontStyle.Bold);
                                }
                                return(node);
                            }));

                            var childFKs = table.GetChildForeignKeys(_objects);
                            if (childFKs.Any())
                            {
                                var childFolderNode = new TreeNode($"Child Tables ({childFKs.Count()})")
                                {
                                    ImageKey = "join", SelectedImageKey = "join"
                                };
                                tableNode.Nodes.Add(childFolderNode);

                                foreach (var childFK in childFKs)
                                {
                                    var fkNode = new TableNode(childFK);
                                    childFolderNode.Nodes.Add(fkNode);
                                }
                            }
                        }
                        folderNode.Expand();
                    }

                    var views = schemaGrp.OfType <SqlSchema.Library.Models.View>().OrderBy(obj => obj.Name);
                    if (views.Any())
                    {
                        folderNode = new FolderNode("Views", views.Count());
                        schemaNode.Nodes.Add(folderNode);

                        foreach (var view in views)
                        {
                            var viewNode = new ViewNode(view);
                            folderNode.Nodes.Add(viewNode);
                        }
                    }

                    var functions = schemaGrp.OfType <TableFunction>().OrderBy(obj => obj.Name);
                    if (functions.Any())
                    {
                        folderNode = new FolderNode("Functions", functions.Count());
                        schemaNode.Nodes.Add(folderNode);

                        foreach (var func in functions)
                        {
                            var functionNode = new FunctionNode(func);
                            folderNode.Nodes.Add(functionNode);
                        }
                    }

                    var procs = schemaGrp.OfType <Procedure>().OrderBy(obj => obj.Name);
                    if (procs.Any())
                    {
                        folderNode = new FolderNode("Procedures", procs.Count());
                        schemaNode.Nodes.Add(folderNode);
                        foreach (var proc in procs)
                        {
                            var procNode = new ProcedureNode(proc);
                            folderNode.Nodes.Add(procNode);
                        }
                    }

                    schemaNode.Expand();
                }
            }
            finally
            {
                tvwObjects.EndUpdate();
                pbLoading.Visible = false;
                OperationEnded?.Invoke(this, new EventArgs());
            }
        }
Ejemplo n.º 8
0
        private void RecurseFileSystem(TreeNodeCollection nodes, DirectoryInfo dir)
        {
            List <FileSystemNode>       list       = new List <FileSystemNode>();
            IEnumerable <DirectoryInfo> enumerable = new DirectoryInfo[0];

            try
            {
                enumerable = from d in dir.GetDirectories()
                             orderby ImportedSampleQuery.Get3rdPartySort(d.Name.ToUpperInvariant())
                             select d;
            }
            catch
            {
            }
            foreach (DirectoryInfo info in enumerable)
            {
                if ((info.Attributes & FileAttributes.Hidden) == 0)
                {
                    FolderNode item = new FolderNode(info);
                    if (this._expandedPaths.Contains(info.FullName))
                    {
                        this.RecurseFileSystem(item.Nodes, info);
                        item.Expand();
                    }
                    else
                    {
                        item.Nodes.Add("");
                    }
                    if (item.FilePath == this._lastSelectedFilePath)
                    {
                        base.SelectedNode = item;
                    }
                    list.Add(item);
                }
            }
            IEnumerable <FileInfo> enumerable2 = new FileInfo[0];

            try
            {
                enumerable2 = from f in dir.GetFiles("*.linq")
                              orderby ImportedSampleQuery.Get3rdPartySort(f.Name.ToUpperInvariant())
                              select f;
            }
            catch
            {
            }
            foreach (FileInfo info2 in enumerable2)
            {
                if ((info2.Attributes & FileAttributes.Hidden) == 0)
                {
                    FileNode node2 = new FileNode(info2.FullName);
                    list.Add(node2);
                    this._fileNodes[info2.FullName] = node2;
                    if (info2.FullName == this._lastSelectedFilePath)
                    {
                        base.SelectedNode = node2;
                    }
                }
            }
            this._addingNodes = true;
            try
            {
                nodes.AddRange(list.ToArray());
            }
            finally
            {
                this._addingNodes = false;
            }
        }