Browse Source

Added repository selection and filtering in AddIn update view.

pull/32/head
Andreas Weizel 13 years ago
parent
commit
3749b7d793
  1. 21
      src/AddIns/Misc/AddInManager2/Project/Src/Model/Interfaces/IPackageRepositories.cs
  2. 16
      src/AddIns/Misc/AddInManager2/Project/Src/Model/PackageRepositories.cs
  3. 25
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInsViewModelBase.cs
  4. 2
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AvailableAddInsViewModel.cs
  5. 3
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/UpdatedAddInsViewModel.cs

21
src/AddIns/Misc/AddInManager2/Project/Src/Model/Interfaces/IPackageRepositories.cs

@ -14,20 +14,23 @@ namespace ICSharpCode.AddInManager2.Model @@ -14,20 +14,23 @@ namespace ICSharpCode.AddInManager2.Model
get;
}
IPackageRepository Active
{
get;
}
// IPackageRepository Active
// {
// get;
// }
//
// PackageSource ActiveSource
// {
// get;
// set;
// }
PackageSource ActiveSource
{
get;
set;
}
IEnumerable<PackageSource> RegisteredPackageSources
{
get;
set;
}
IPackageRepository GetRepositoryFromSource(PackageSource packageSource);
}
}

16
src/AddIns/Misc/AddInManager2/Project/Src/Model/PackageRepositories.cs

@ -83,6 +83,22 @@ namespace ICSharpCode.AddInManager2.Model @@ -83,6 +83,22 @@ namespace ICSharpCode.AddInManager2.Model
}
}
public IPackageRepository GetRepositoryFromSource(PackageSource packageSource)
{
IPackageRepository resultRepository = null;
if (packageSource != null)
{
resultRepository = PackageRepositoryFactory.Default.CreateRepository(packageSource.Source);
}
else
{
// If no active repository is set, get packages from all repositories
resultRepository = _currentRepository;
}
return resultRepository;
}
private void LoadPackageSources()
{
_registeredPackageSources.Clear();

25
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInsViewModelBase.cs

@ -9,6 +9,7 @@ using System.Linq; @@ -9,6 +9,7 @@ using System.Linq;
using System.Text;
using System.Windows.Input;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.SharpDevelop;
using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel
@ -18,6 +19,8 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -18,6 +19,8 @@ namespace ICSharpCode.AddInManager2.ViewModel
private Pages _pages;
private int _highlightCount;
private string _title;
private PackageSource _activePackageSource;
private IPackageRepository _activePackageRepository;
private ObservableCollection<PackageSource> _packageSources;
@ -35,6 +38,8 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -35,6 +38,8 @@ namespace ICSharpCode.AddInManager2.ViewModel
private void Initialize()
{
_activePackageRepository = null;
// Initialization of internal lists
_pages = new Pages();
_highlightCount = 0;
@ -249,7 +254,7 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -249,7 +254,7 @@ namespace ICSharpCode.AddInManager2.ViewModel
protected void UpdatePackageViewModels(IEnumerable<AddInPackageViewModelBase> newPackageViewModels)
{
ClearPackages();
AddInPackages.AddRange(newPackageViewModels);
NuGet.CollectionExtensions.AddRange(AddInPackages, newPackageViewModels);
UpdateInstallationState();
}
@ -426,22 +431,36 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -426,22 +431,36 @@ namespace ICSharpCode.AddInManager2.ViewModel
{
SelectedPackageSource = oldValue;
}
else
{
// Select first source
SelectedPackageSource = _packageSources.FirstOrDefault();
}
}
public PackageSource SelectedPackageSource
{
get
{
return AddInManager.Repositories.ActiveSource;
return _activePackageSource;
}
set
{
AddInManager.Repositories.ActiveSource = value;
_activePackageSource = value;
_activePackageRepository = AddInManager.Repositories.GetRepositoryFromSource(_activePackageSource);
ReadPackages();
OnPropertyChanged(m => m.SelectedPackageSource);
}
}
public IPackageRepository ActiveRepository
{
get
{
return _activePackageRepository;
}
}
public bool ShowPreinstalledAddIns
{
get;

2
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AvailableAddInsViewModel.cs

@ -49,7 +49,7 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -49,7 +49,7 @@ namespace ICSharpCode.AddInManager2.ViewModel
protected override IQueryable<IPackage> GetAllPackages()
{
return AddInManager.Repositories.Active.GetPackages();
return (ActiveRepository ?? AddInManager.Repositories.Registered).GetPackages();
}
protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults(IQueryable<IPackage> allPackages)

3
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/UpdatedAddInsViewModel.cs

@ -36,6 +36,7 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -36,6 +36,7 @@ namespace ICSharpCode.AddInManager2.ViewModel
private void Initialize()
{
IsSearchable = true;
ShowPackageSources = true;
HasFilterForPrereleases = true;
Title = SD.ResourceService.GetString("AddInManager2.Views.Updates");
@ -84,7 +85,7 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -84,7 +85,7 @@ namespace ICSharpCode.AddInManager2.ViewModel
{
IQueryable<IPackage> localPackages = installedPackages;
localPackages = FilterPackages(localPackages);
var updatedPackages = GetUpdatedPackages(AddInManager.Repositories.Registered, localPackages);
var updatedPackages = GetUpdatedPackages(ActiveRepository ?? AddInManager.Repositories.Registered, localPackages);
HighlightCount = updatedPackages.Count();
return updatedPackages.AsQueryable();
}

Loading…
Cancel
Save