Browse Source

PackageManagement: Refresh AvailablePackages

pull/374/head
Dragan 12 years ago
parent
commit
6142cf9b4d
  1. 20
      src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs
  2. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs
  3. 1
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageViewModelParent.cs
  4. 8
      src/AddIns/Misc/PackageManagement/Project/Src/ManagePackagesViewModel.cs
  5. 3
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  6. 23
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs
  7. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModels.cs
  8. 5
      src/AddIns/Misc/PackageManagement/Project/Src/SelectedProjectsForUpdatedPackages.cs

20
src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs

@ -27,10 +27,12 @@ namespace ICSharpCode.PackageManagement
public class AvailablePackagesViewModel : PackagesViewModel public class AvailablePackagesViewModel : PackagesViewModel
{ {
IPackageRepository repository; IPackageRepository repository;
IPackageManagementEvents packageManagementEvents;
string errorMessage; string errorMessage;
public AvailablePackagesViewModel( public AvailablePackagesViewModel(
PackagesViewModels packagesViewModelParent, PackagesViewModels packagesViewModelParent,
IPackageManagementEvents packageManagementEvents,
IRegisteredPackageRepositories registeredPackageRepositories, IRegisteredPackageRepositories registeredPackageRepositories,
IPackageViewModelFactory packageViewModelFactory, IPackageViewModelFactory packageViewModelFactory,
ITaskFactory taskFactory) ITaskFactory taskFactory)
@ -39,6 +41,24 @@ namespace ICSharpCode.PackageManagement
IsSearchable = true; IsSearchable = true;
ShowPackageSources = true; ShowPackageSources = true;
ShowPrerelease = true; ShowPrerelease = true;
this.packageManagementEvents = packageManagementEvents;
RegisterEvents();
}
void RegisterEvents()
{
packageManagementEvents.ParentPackageInstalled += PackagesChanged;
packageManagementEvents.ParentPackageUninstalled += PackagesChanged;
packageManagementEvents.ParentPackagesUpdated += PackagesChanged;
}
void PackagesChanged(object sender, EventArgs e)
{
foreach (var found in this.PackageViewModels) {
found.OnPropertyChanged(model => model.IsAdded);
found.OnPropertyChanged(model => model.IsManaged);
}
} }
protected override void UpdateRepositoryBeforeReadPackagesTaskStarts() protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()

2
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs

@ -19,9 +19,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using ICSharpCode.Core;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Scripting;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using NuGet; using NuGet;

1
src/AddIns/Misc/PackageManagement/Project/Src/IPackageViewModelParent.cs

@ -23,6 +23,5 @@ namespace ICSharpCode.PackageManagement
public interface IPackageViewModelParent public interface IPackageViewModelParent
{ {
bool IncludePrerelease { get; } bool IncludePrerelease { get; }
void OnPackageManaged (IPackageFromRepository package);
} }
} }

8
src/AddIns/Misc/PackageManagement/Project/Src/ManagePackagesViewModel.cs

@ -59,14 +59,14 @@ namespace ICSharpCode.PackageManagement
get { return packagesViewModels.InstalledPackagesViewModel; } get { return packagesViewModels.InstalledPackagesViewModel; }
} }
public RecentPackagesViewModel RecentPackagesViewModel {
get { return packagesViewModels.RecentPackagesViewModel; }
}
public UpdatedPackagesViewModel UpdatedPackagesViewModel { public UpdatedPackagesViewModel UpdatedPackagesViewModel {
get { return packagesViewModels.UpdatedPackagesViewModel; } get { return packagesViewModels.UpdatedPackagesViewModel; }
} }
public RecentPackagesViewModel RecentPackagesViewModel {
get { return packagesViewModels.RecentPackagesViewModel; }
}
public string Title { public string Title {
get { return viewTitle.Title; } get { return viewTitle.Title; }
} }

3
src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs

@ -231,7 +231,6 @@ namespace ICSharpCode.PackageManagement
logger.LogAfterPackageOperationCompletes(); logger.LogAfterPackageOperationCompletes();
OnPropertyChanged(model => model.IsAdded); OnPropertyChanged(model => model.IsAdded);
OnPropertyChanged(model => model.IsManaged); OnPropertyChanged(model => model.IsManaged);
parent.OnPackageManaged (package);
} }
protected virtual IDisposable StartOperation(IPackageFromRepository package) protected virtual IDisposable StartOperation(IPackageFromRepository package)
@ -393,7 +392,6 @@ namespace ICSharpCode.PackageManagement
logger.LogAfterPackageOperationCompletes(); logger.LogAfterPackageOperationCompletes();
OnPropertyChanged(model => model.IsAdded); OnPropertyChanged(model => model.IsAdded);
OnPropertyChanged(model => model.IsManaged); OnPropertyChanged(model => model.IsManaged);
parent.OnPackageManaged (package);
} }
void LogRemovingPackage() void LogRemovingPackage()
@ -477,7 +475,6 @@ namespace ICSharpCode.PackageManagement
logger.LogAfterPackageOperationCompletes(); logger.LogAfterPackageOperationCompletes();
OnPropertyChanged(model => model.IsAdded); OnPropertyChanged(model => model.IsAdded);
OnPropertyChanged(model => model.IsManaged); OnPropertyChanged(model => model.IsManaged);
parent.OnPackageManaged (package);
} }
void TryManagePackagesForSelectedProjects(IList<IPackageManagementSelectedProject> projects) void TryManagePackagesForSelectedProjects(IList<IPackageManagementSelectedProject> projects)

23
src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs

@ -21,9 +21,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Collections.Specialized; using System.Collections.Specialized;
using System.Linq; using System.Linq;
using System.Text;
using System.Windows.Input; using System.Windows.Input;
using NuGet; using NuGet;
namespace ICSharpCode.PackageManagement namespace ICSharpCode.PackageManagement
@ -92,7 +90,6 @@ namespace ICSharpCode.PackageManagement
public IRegisteredPackageRepositories RegisteredPackageRepositories { public IRegisteredPackageRepositories RegisteredPackageRepositories {
get { return registeredPackageRepositories; } get { return registeredPackageRepositories; }
} }
public bool IsReadingPackages { get; private set; } public bool IsReadingPackages { get; private set; }
public void ReadPackages() public void ReadPackages()
@ -131,26 +128,6 @@ namespace ICSharpCode.PackageManagement
OnPackagesReadForSelectedPage); OnPackagesReadForSelectedPage);
} }
public void OnPackageManaged (IPackageFromRepository package) {
if (packagesViewModelParent != null) { // it is null at design time
foreach (PackagesViewModel packagesViewModel in packagesViewModelParent.GetPackagesViewModels) {
if (packagesViewModel != this) {
OnPackageManaged(packagesViewModel, package);
}
}
}
}
static void OnPackageManaged (PackagesViewModel packagesViewModel, IPackageName package) {
foreach (var found in packagesViewModel.PackageViewModels) {
if (found.Id == package.Id && found.Version == package.Version) {
found.OnPropertyChanged(model => model.IsAdded);
found.OnPropertyChanged(model => model.IsManaged);
break;
}
}
}
PackagesForSelectedPageResult GetPackagesForSelectedPageResult() PackagesForSelectedPageResult GetPackagesForSelectedPageResult()
{ {
IEnumerable<IPackage> packages = GetPackagesForSelectedPage(); IEnumerable<IPackage> packages = GetPackagesForSelectedPage();

2
src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModels.cs

@ -32,7 +32,7 @@ namespace ICSharpCode.PackageManagement
var packageViewModelFactory = new PackageViewModelFactory(solution, packageManagementEvents, actionRunner); var packageViewModelFactory = new PackageViewModelFactory(solution, packageManagementEvents, actionRunner);
var updatedPackageViewModelFactory = new UpdatedPackageViewModelFactory(packageViewModelFactory); var updatedPackageViewModelFactory = new UpdatedPackageViewModelFactory(packageViewModelFactory);
AvailablePackagesViewModel = new AvailablePackagesViewModel(this, registeredPackageRepositories, packageViewModelFactory, taskFactory); AvailablePackagesViewModel = new AvailablePackagesViewModel(this, packageManagementEvents, registeredPackageRepositories, packageViewModelFactory, taskFactory);
InstalledPackagesViewModel = new InstalledPackagesViewModel(this, solution, packageManagementEvents, registeredPackageRepositories, packageViewModelFactory, taskFactory); InstalledPackagesViewModel = new InstalledPackagesViewModel(this, solution, packageManagementEvents, registeredPackageRepositories, packageViewModelFactory, taskFactory);
UpdatedPackagesViewModel = new UpdatedPackagesViewModel(this, solution, registeredPackageRepositories, updatedPackageViewModelFactory, taskFactory); UpdatedPackagesViewModel = new UpdatedPackagesViewModel(this, solution, registeredPackageRepositories, updatedPackageViewModelFactory, taskFactory);
RecentPackagesViewModel = new RecentPackagesViewModel(this, packageManagementEvents, registeredPackageRepositories, packageViewModelFactory, taskFactory); RecentPackagesViewModel = new RecentPackagesViewModel(this, packageManagementEvents, registeredPackageRepositories, packageViewModelFactory, taskFactory);

5
src/AddIns/Misc/PackageManagement/Project/Src/SelectedProjectsForUpdatedPackages.cs

@ -29,11 +29,6 @@ namespace ICSharpCode.PackageManagement
{ {
} }
// protected override bool IsProjectSelected(IPackageManagementProject project, IPackageFromRepository package)
// {
// return base.IsProjectSelected(project, package) && IsProjectEnabled(project, package);
// }
protected override bool IsProjectEnabled(IPackageManagementProject project, IPackageFromRepository package) protected override bool IsProjectEnabled(IPackageManagementProject project, IPackageFromRepository package)
{ {
return project.GetPackages() return project.GetPackages()

Loading…
Cancel
Save