Пример #1
0
            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
        public TreeEntryMenu(ITreeSource treeSource, TreeItem treeItem)
        {
            if (treeSource == null)
            {
                throw new ArgumentNullException("treeSource");
            }
            if (treeItem == null)
            {
                throw new ArgumentNullException("treeItem");
            }

            _treeSource = treeSource;
            _treeItem   = treeItem;

            // save as
            // checkout

            Items.Add(GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(treeSource, treeItem.RelativePath));
        }
Пример #3
0
        private void OnContextMenuRequested(object sender, ItemContextMenuRequestEventArgs e)
        {
            var vm  = ViewModel as TreeViewModel;
            var rts = vm != null ? vm.TreeSource : null;

            if (rts != null)
            {
                var item = ((ITreeItemListItem)e.Item);
                var file = item.TreeItem as TreeFile;
                if (file != null)
                {
                    var menu = new ContextMenuStrip();
                    menu.Items.AddRange(
                        new ToolStripItem[]
                    {
                        GuiItemFactory.GetExtractAndOpenFileItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath),
                        GuiItemFactory.GetExtractAndOpenFileWithItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath),
                        GuiItemFactory.GetSaveAsItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath),
                        new ToolStripSeparator(),
                        new ToolStripMenuItem(Resources.StrCopyToClipboard, null,
                                              new ToolStripItem[]
                        {
                            GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFileName, file.Name),
                            GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, file.RelativePath),
                            GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, file.FullPath),
                        }),
                        new ToolStripSeparator(),
                        GuiItemFactory.GetBlameItem <ToolStripMenuItem>(rts.Revision, file),
                        GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, file),
                        new ToolStripSeparator(),
                        GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, file),
                    });
                    Utility.MarkDropDownForAutoDispose(menu);
                    e.ContextMenu         = menu;
                    e.OverrideDefaultMenu = true;
                    return;
                }
                var directory = item.TreeItem as TreeDirectory;
                if (directory != null)
                {
                    var menu = new ContextMenuStrip();
                    menu.Items.AddRange(
                        new ToolStripItem[]
                    {
                        new ToolStripMenuItem(Resources.StrOpen, null, (s, args) => e.Item.Activate()),
                        GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, directory),
                        new ToolStripSeparator(),
                        GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, directory),
                    });
                    Utility.MarkDropDownForAutoDispose(menu);
                    e.ContextMenu         = menu;
                    e.OverrideDefaultMenu = true;
                    return;
                }
                var commit = ((ITreeItemListItem)e.Item).TreeItem as TreeCommit;
                if (commit != null)
                {
                    var menu = new ContextMenuStrip();
                    menu.Items.AddRange(
                        new ToolStripItem[]
                    {
                        GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, commit),
                        new ToolStripSeparator(),
                        new ToolStripMenuItem(Resources.StrCopyToClipboard, null,
                                              new ToolStripItem[]
                        {
                            GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, commit.Name),
                            GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, commit.RelativePath),
                            GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, commit.FullPath),
                        }),
                        new ToolStripSeparator(),
                        GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, commit),
                    });
                    Utility.MarkDropDownForAutoDispose(menu);
                    e.ContextMenu         = menu;
                    e.OverrideDefaultMenu = true;
                    return;
                }
            }
        }