示例#1
0
文件: TreeView.cs 项目: oqewok/gitter
            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));
                }
            }
示例#2
0
文件: TreeView.cs 项目: oqewok/gitter
 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);
 }
示例#3
0
 private void OnDirectoryAdded(object sender, TreeDirectoryEventArgs e)
 {
     var item = new TreeDirectoryListItem(e.Folder, OnSubItemActivated, OnItemContextMenuRequested);
     item.Activated += OnItemActivated;
     item.ContextMenuRequested += OnItemContextMenuRequested;
     _itemHost.AddSafe(item);
 }
示例#4
0
 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;
 }
示例#5
0
 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;
     }
 }
示例#6
0
 private void OnNewFolderAddedRooted(object sender, TreeDirectoryEventArgs e)
 {
     var item = new TreeDirectoryListItem(e.Folder, TreeDirectoryListItemType.ShowFoldersOnly);
     _rootItem.Items.AddSafe(item);
     item.Activated += OnItemActivated;
 }