public TreeMenu(ITreeSource treeSource, TreeDirectoryListItem item) { Verify.Argument.IsNotNull(item, "item"); Items.Add(GuiItemFactory.GetExpandAllItem <ToolStripMenuItem>(item)); Items.Add(GuiItemFactory.GetCollapseAllItem <ToolStripMenuItem>(item)); if (treeSource != null) { Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(treeSource.Revision, item.DataContext)); Items.Add(new ToolStripSeparator()); Items.Add(GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(treeSource.Revision, item.DataContext)); } }
private static TreeDirectoryListItem FindDirectoryEntry(TreeDirectoryListItem root, TreeDirectory folder) { if (root.DataContext == folder) { return(root); } foreach (TreeDirectoryListItem item in root.Items) { var subSearch = FindDirectoryEntry(item, folder); if (subSearch != null) { return(subSearch); } } return(null); }
private void OnDirectoryAdded(object sender, TreeDirectoryEventArgs e) { var item = new TreeDirectoryListItem(e.Folder, OnSubItemActivated, OnItemContextMenuRequested); item.Activated += OnItemActivated; item.ContextMenuRequested += OnItemContextMenuRequested; _itemHost.AddSafe(item); }
private void InitTree(bool oneLevel) { _itemHost.Clear(); _itemHost.Comparison = TreeItemListItem.CompareByName; foreach(var folder in _root.Directories) { var item = new TreeDirectoryListItem( folder, oneLevel ? TreeDirectoryListItemType.ShowNothing : TreeDirectoryListItemType.ShowFilesAndFolders, OnSubItemActivated, OnItemContextMenuRequested); item.Activated += OnItemActivated; item.ContextMenuRequested += OnItemContextMenuRequested; _itemHost.Add(item); } foreach(var commit in _root.Commits) { var item = new TreeCommitListItem(commit, false); item.Activated += OnItemActivated; item.ContextMenuRequested += OnItemContextMenuRequested; _itemHost.Add(item); } foreach(var file in _root.Files) { var item = new TreeFileListItem(file, false); item.Activated += OnItemActivated; item.ContextMenuRequested += OnItemContextMenuRequested; _itemHost.Add(item); } _root.DirectoryAdded += OnDirectoryAdded; _root.CommitAdded += OnCommitAdded; _root.FileAdded += OnFileAdded; }
private void InitTree(bool showRoot) { _itemHost.Clear(); _itemHost.Comparison = TreeItemListItem.CompareByName; if(showRoot) { _rootItem = new TreeDirectoryListItem( _root, TreeDirectoryListItemType.ShowNothing, OnSubItemActivated); _rootItem.Expand(); foreach(var folder in _root.Directories) { var item = new TreeDirectoryListItem( folder, TreeDirectoryListItemType.ShowFoldersOnly, OnSubItemActivated); item.Activated += OnItemActivated; _rootItem.Items.Add(item); } _itemHost.Add(_rootItem); _root.DirectoryAdded += OnNewFolderAddedRooted; } else { foreach(var folder in _root.Directories) { var item = new TreeDirectoryListItem( folder, TreeDirectoryListItemType.ShowFoldersOnly, OnSubItemActivated); item.Activated += OnItemActivated; _itemHost.Add(item); } _root.DirectoryAdded += OnNewFolderAdded; } }
private void OnNewFolderAddedRooted(object sender, TreeDirectoryEventArgs e) { var item = new TreeDirectoryListItem(e.Folder, TreeDirectoryListItemType.ShowFoldersOnly); _rootItem.Items.AddSafe(item); item.Activated += OnItemActivated; }