示例#1
0
        void DeleteSelected()
        {
            foreach (var group in _view.GetSelected().GroupBy(x => x.ListType))
            {
                switch (group.Key)
                {
                case DragListTypes.AssetItem:
                {
                    foreach (var entry in group)
                    {
                        _model.RemoveAssetItem((string)entry.Model);
                    }
                    break;
                }

                case DragListTypes.PluginItem:
                {
                    foreach (var entry in group)
                    {
                        _model.RemovePluginItem((string)entry.Model);
                    }
                    break;
                }

                case DragListTypes.Package:
                {
                    _asyncProcessor.Process(
                        _packageHandler.DeletePackages(group.Select(x => (PackageInfo)x.Model).ToList()), true, "Deleting Packages");
                    break;
                }
                }
            }
        }
示例#2
0
        void OnContextMenuDeleteSelected()
        {
            var selected = GetSelectedItems();

            foreach (var name in selected)
            {
                if (_model.HasAssetItem(name))
                {
                    _model.RemoveAssetItem(name);
                }
                else
                {
                    Assert.That(_model.HasPluginItem(name));
                    _model.RemovePluginItem(name);
                }
            }
        }
示例#3
0
        void OnDraggedDroppedListEntries(DragListTypes sourceType, DragListTypes dropType, List <DragListEntry> entries)
        {
            switch (dropType)
            {
            case DragListTypes.Package:
            {
                switch (sourceType)
                {
                case DragListTypes.PluginItem:
                {
                    foreach (var entry in entries)
                    {
                        var name = (string)entry.Model;
                        _model.RemovePluginItem(name);
                    }
                    break;
                }

                case DragListTypes.AssetItem:
                {
                    foreach (var entry in entries)
                    {
                        var name = (string)entry.Model;
                        _model.RemoveAssetItem(name);
                    }
                    break;
                }

                case DragListTypes.Release:
                {
                    _asyncProcessor.Process(
                        InstallReleasesAsync(
                            entries.Select(x => (ReleaseInfo)x.Model).ToList()), true, "Installing Releases");
                    break;
                }

                default:
                {
                    Assert.Throw();
                    break;
                }
                }

                break;
            }

            case DragListTypes.PluginItem:
            {
                switch (sourceType)
                {
                case DragListTypes.AssetItem:
                {
                    foreach (var entry in entries)
                    {
                        var name = (string)entry.Model;
                        _model.RemoveAssetItem(name);
                        _model.AddPluginItem(name);
                    }

                    break;
                }

                case DragListTypes.PluginItem:
                {
                    // Do nothing
                    break;
                }

                case DragListTypes.Package:
                {
                    foreach (var entry in entries)
                    {
                        var info = (PackageInfo)entry.Model;

                        if (!_model.HasPluginItem(info.Name))
                        {
                            if (_model.HasAssetItem(info.Name))
                            {
                                _model.RemoveAssetItem(info.Name);
                            }

                            _model.AddPluginItem(info.Name);
                        }
                    }

                    break;
                }

                default:
                {
                    Assert.Throw();
                    break;
                }
                }

                break;
            }

            case DragListTypes.AssetItem:
            {
                switch (sourceType)
                {
                case DragListTypes.AssetItem:
                {
                    // Do nothing
                    break;
                }

                case DragListTypes.PluginItem:
                {
                    foreach (var entry in entries)
                    {
                        var name = (string)entry.Model;

                        _model.RemovePluginItem(name);
                        _model.AddAssetItem(name);
                    }

                    break;
                }

                case DragListTypes.Package:
                {
                    foreach (var entry in entries)
                    {
                        var info = (PackageInfo)entry.Model;

                        if (!_model.HasAssetItem(info.Name))
                        {
                            if (_model.HasPluginItem(info.Name))
                            {
                                _model.RemovePluginItem(info.Name);
                            }

                            _model.AddAssetItem(info.Name);
                        }
                    }

                    break;
                }

                default:
                {
                    Assert.Throw();
                    break;
                }
                }

                break;
            }

            case DragListTypes.Release:
            {
                // nothing can drag to releases
                break;
            }

            case DragListTypes.VsSolution:
            {
                if (sourceType == DragListTypes.AssetItem || sourceType == DragListTypes.PluginItem)
                {
                    foreach (var entry in entries)
                    {
                        var name = (string)entry.Model;

                        if (!_model.HasVsProject(name))
                        {
                            _model.AddVsProject(name);
                        }
                    }
                }

                break;
            }

            default:
            {
                Assert.Throw();
                break;
            }
            }
        }