/// <summary> /// Gets the items from file. /// </summary> /// <param name="sourceFile">Source file.</param> /// <returns>Items list.</returns> public ObservableList <string> GetItemsFromFile(TextAsset sourceFile) { var result = new ObservableList <string>(); if (file == null) { result.Comparison = ListView.ItemsComparison; return(result); } foreach (var str in sourceFile.text.Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.None)) { var item = str.TrimEnd(); if (Unique && result.Contains(item)) { continue; } if (!AllowEmptyItems && string.IsNullOrEmpty(item)) { continue; } if (IsComment(item)) { continue; } result.Add(item); } result.Comparison = ListView.ItemsComparison; return(result); }
/// <summary> /// Convert nodes tree to list. /// </summary> /// <returns>The list.</returns> /// <param name="sourceNodes">Source nodes.</param> /// <param name="depth">Depth.</param> /// <param name="list">List.</param> protected virtual int Nodes2List(IObservableList <TreeNode <TItem> > sourceNodes, int depth, ObservableList <ListNode <TItem> > list) { var added_nodes = 0; foreach (var node in sourceNodes) { if (!node.IsVisible) { continue; } list.Add(new ListNode <TItem>(node, depth)); if ((node.IsExpanded) && (node.Nodes != null) && (node.Nodes.Count > 0)) { var used = Nodes2List(node.Nodes, depth + 1, list); node.UsedNodesCount = used; } else { node.UsedNodesCount = 0; } added_nodes += 1; } return(added_nodes); }
/// <summary> /// Ger drives. /// </summary> /// <returns>Drives list.</returns> public virtual ObservableList <TreeNode <FileSystemEntry> > GetDrives() { var nodes = new ObservableList <TreeNode <FileSystemEntry> >(); ExceptionsView.Execute(() => { /* * DriveInfo.GetDrives().ForEach(drive => { * var format = !string.IsNullOrEmpty(drive.VolumeLabel) ? "{1} ({0})" : "{0}"; * var label = String.Format(format, drive.Name, drive.VolumeLabel); * var item = new FileSystemEntry(drive.Name, label, false); * nodes.Add(new TreeNode<FileSystemEntry>(item, null)); * }); */ #if !NETFX_CORE var drives = Directory.GetLogicalDrives(); drives.ForEach(drive => { var item = new FileSystemEntry(drive, drive, false); nodes.Add(new TreeNode <FileSystemEntry>(item, null)); }); #endif }); return(nodes); }