private void LoadTreeIntoView(BookmarksTree tree) { foreach (IModelType item in tree.Bookmarks) { LoadNode(item); } }
private void FilterTree(object sender, FilterTreeEventArgs e) { if (string.IsNullOrWhiteSpace(e.SearchText)) { _view.ClearTree(); LoadTreeIntoView(_bookmarksTree); return; } BookmarksTree filterdTree = (BookmarksTree)_bookmarksTree.Clone(); foreach (IModelType node in filterdTree.Bookmarks.ToList()) { FilterChildren(e.SearchText, node, ref filterdTree); } _view.ClearTree(); LoadTreeIntoView(filterdTree); }
private IModelType GetModelTypeById(string id, BookmarksTree tree) { if (id == null) { return(null); } foreach (IModelType type in tree.Bookmarks) { IModelType t = GetModelTypeById(type, id); if (t != null) { return(t); } } return(null); }
public ClientPresenter(IClientView view, IDialogService dialogService) { _view = view; _dialogService = dialogService; _view.AddNewFolder += AddNewFolder; _view.AddNewBookmark += AddNewBookmark; _view.OpenBookmark += OpenBookmarkInBrowser; _view.RemoveNode += RemoveNode; _view.FilterTree += FilterTree; _view.SearchFocusLost += FocusTextBoxLost; _bookmarksTree = new BookmarksTree(); string filename = "bookmarks.xml"; _bookmarksTree.Read(filename); LoadTreeIntoView(_bookmarksTree); }
private void FilterChildren(string query, IModelType node, ref BookmarksTree tree) { bool isFolder = node.GetType() == typeof(Folder); if (isFolder) { if (node.Label.ToLower().Contains(query.ToLower())) { return; } Folder folder = (Folder)node; foreach (IModelType child in folder.Children.ToList()) { FilterChildren(query, child, ref tree); } if (folder.Children.Count != 0) { return; } } if (!node.Label.ToLower().Contains(query.ToLower())) { if (string.IsNullOrEmpty(node.ParentId)) { tree.Bookmarks.Remove(node); } else { Folder parentFolder = (Folder)GetModelTypeById(node.ParentId, tree); parentFolder.Children.Remove(node); } } }