MonoDevelop.VersionControl.TFS.GUI.VersionControl.SourceControlExplorerView.BuildPopupMenu C# (CSharp) Method

BuildPopupMenu() private method

private BuildPopupMenu ( ) : Gtk.Menu
return Gtk.Menu
        private Menu BuildPopupMenu()
        {
            Menu menu = new Menu();
            var items = new List<ExtendedItem>();
            foreach (var path in _listView.Selection.GetSelectedRows())
            {
                TreeIter iter;
                _listStore.GetIter(out iter, path);
                items.Add((ExtendedItem)_listStore.GetValue(iter, 0));
            }
        
            if (items.All(i => IsMapped(i.ServerPath)))
            {
                foreach (var item in GetGroup(items))
                {
                    menu.Add(item);
                }
                var editGroup = EditGroup(items);
                if (editGroup.Any())
                {
                    menu.Add(new SeparatorMenuItem());
                    foreach (var item in editGroup)
                    {
                        menu.Add(item);
                    }
                }
                if (items.Count == 1 && items[0].ItemType == ItemType.Folder)
                {
                    menu.Add(CreateAddFileMenuItem(items[0]));
                    menu.Add(new SeparatorMenuItem());
                    menu.Add(CreateOpenFolderMenuItem(items[0]));
                }
            }
            else
            {
                foreach (var item in NotMappedMenu(items))
                {
                    menu.Add(item);
                }
            }
            menu.ShowAll();
            return menu;
        }