Browse Source

PackageManagement: cleanup

pull/374/head
Dragan 12 years ago
parent
commit
b7de9efbb8
  1. 15
      src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs
  2. 43
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  3. 22
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs
  4. 8
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModels.cs
  5. 24
      src/AddIns/Misc/PackageManagement/Project/Src/RecentPackagesViewModel.cs

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

@ -48,17 +48,16 @@ namespace ICSharpCode.PackageManagement @@ -48,17 +48,16 @@ namespace ICSharpCode.PackageManagement
void RegisterEvents()
{
packageManagementEvents.ParentPackageInstalled += PackagesChanged;
packageManagementEvents.ParentPackageUninstalled += PackagesChanged;
packageManagementEvents.ParentPackagesUpdated += PackagesChanged;
packageManagementEvents.ParentPackageInstalled += OnPackageChanged;
packageManagementEvents.ParentPackageUninstalled += OnPackageChanged;
packageManagementEvents.ParentPackagesUpdated += OnPackageChanged;
}
void PackagesChanged(object sender, EventArgs e)
protected override void OnDispose()
{
foreach (var found in this.PackageViewModels) {
found.OnPropertyChanged(model => model.IsAdded);
found.OnPropertyChanged(model => model.IsManaged);
}
packageManagementEvents.ParentPackageInstalled -= OnPackageChanged;
packageManagementEvents.ParentPackageUninstalled -= OnPackageChanged;
packageManagementEvents.ParentPackagesUpdated -= OnPackageChanged;
}
protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()

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

@ -127,9 +127,7 @@ namespace ICSharpCode.PackageManagement @@ -127,9 +127,7 @@ namespace ICSharpCode.PackageManagement
protected bool IsPackageInstalled()
{
return selectedProjects.IsPackageInstalled(package)
|| selectedProjects.IsPackageInstalledInSolution(package);
return selectedProjects.IsPackageInstalledInSolution(package);
}
public IEnumerable<PackageDependencySet> Dependencies {
@ -200,6 +198,11 @@ namespace ICSharpCode.PackageManagement @@ -200,6 +198,11 @@ namespace ICSharpCode.PackageManagement
get { return package.Published.HasValue; }
}
public void OnPackagePropertyChanged() {
OnPropertyChanged(model => model.IsAdded);
OnPropertyChanged(model => model.IsManaged);
}
public void AddOrManagePackage() {
if (selectedProjects.HasMultipleProjects()) {
if (package.HasProjectContent()) {
@ -229,8 +232,7 @@ namespace ICSharpCode.PackageManagement @@ -229,8 +232,7 @@ namespace ICSharpCode.PackageManagement
}
logger.LogAfterPackageOperationCompletes();
OnPropertyChanged(model => model.IsAdded);
OnPropertyChanged(model => model.IsManaged);
OnPackagePropertyChanged();
}
protected virtual IDisposable StartOperation(IPackageFromRepository package)
@ -390,8 +392,7 @@ namespace ICSharpCode.PackageManagement @@ -390,8 +392,7 @@ namespace ICSharpCode.PackageManagement
}
logger.LogAfterPackageOperationCompletes();
OnPropertyChanged(model => model.IsAdded);
OnPropertyChanged(model => model.IsManaged);
OnPackagePropertyChanged();
}
void LogRemovingPackage()
@ -428,11 +429,12 @@ namespace ICSharpCode.PackageManagement @@ -428,11 +429,12 @@ namespace ICSharpCode.PackageManagement
public bool IsManaged {
get {
if (selectedProjects.HasSingleProjectSelected()) {
// Project-level Package Management / Single Project Solution
// Single Project selected
// Project-level Package Management
return false; // [Add]/[Remove]
}
// Multi Project Solution
// or Solution-level package management
// Solution selected
// Project-level/Solution-level Package Management
if (IsAdded) {
if (package.HasProjectContent()) {
return true; // [Manage] Button
@ -473,8 +475,7 @@ namespace ICSharpCode.PackageManagement @@ -473,8 +475,7 @@ namespace ICSharpCode.PackageManagement
}
logger.LogAfterPackageOperationCompletes();
OnPropertyChanged(model => model.IsAdded);
OnPropertyChanged(model => model.IsManaged);
OnPackagePropertyChanged();
}
void TryManagePackagesForSelectedProjects(IList<IPackageManagementSelectedProject> projects)
@ -541,24 +542,6 @@ namespace ICSharpCode.PackageManagement @@ -541,24 +542,6 @@ namespace ICSharpCode.PackageManagement
return null;
}
bool LicensesAccepted(IList<IPackageManagementSelectedProject> projects)
{
IPackageManagementSelectedProject project = projects.FirstOrDefault();
if (project != null) {
return LicensesAccepted(project);
}
return false;
}
bool LicensesAccepted(IPackageManagementSelectedProject selectedProject)
{
IEnumerable<IPackage> licensedPackages = GetPackagesRequiringLicenseAcceptance(selectedProject);
if (licensedPackages.Any()) {
return packageManagementEvents.OnAcceptLicenses(licensedPackages);
}
return true;
}
bool LicensesAccepted()
{
IEnumerable<IPackage> licensedPackages = GetPackagesRequiringLicenseAcceptance();

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

@ -92,6 +92,28 @@ namespace ICSharpCode.PackageManagement @@ -92,6 +92,28 @@ namespace ICSharpCode.PackageManagement
}
public bool IsReadingPackages { get; private set; }
protected void OnPackageChanged(object sender, EventArgs e)
{
if (IsReadingPackages) return;
if (PackageViewModels == null) return;
var operation = e as ParentPackageOperationEventArgs;
if (operation != null && operation.Package != null) {
foreach (var found in PackageViewModels) {
if (found.Id == operation.Package.Id) {
// Do not compare package.Version here
// On update, two packages are changed
found.OnPackagePropertyChanged();
}
}
}
else {
// Unknown operation/package -> refresh all items
foreach (var found in this.PackageViewModels) {
found.OnPackagePropertyChanged();
}
}
}
public void ReadPackages()
{
allPackages = null;

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

@ -59,13 +59,5 @@ namespace ICSharpCode.PackageManagement @@ -59,13 +59,5 @@ namespace ICSharpCode.PackageManagement
UpdatedPackagesViewModel.Dispose();
}
public System.Collections.Generic.IEnumerable<PackagesViewModel> GetPackagesViewModels {
get {
yield return AvailablePackagesViewModel;
yield return InstalledPackagesViewModel;
yield return UpdatedPackagesViewModel;
yield return RecentPackagesViewModel;
}
}
}
}

24
src/AddIns/Misc/PackageManagement/Project/Src/RecentPackagesViewModel.cs

@ -35,28 +35,30 @@ namespace ICSharpCode.PackageManagement @@ -35,28 +35,30 @@ namespace ICSharpCode.PackageManagement
ITaskFactory taskFactory)
: base(packagesViewModelParent, registeredPackageRepositories, packageViewModelFactory, taskFactory)
{
this.packageManagementEvents = packageManagementEvents;
recentPackageRepository = registeredPackageRepositories.RecentPackageRepository;
packageManagementEvents.ParentPackageInstalled += ParentPackageInstalled;
packageManagementEvents.ParentPackageUninstalled += ParentPackageUninstalled;
// disable once CSharpWarnings::CS1717
this.packageManagementEvents = packageManagementEvents;
RegisterEvents();
}
void ParentPackageInstalled(object sender, EventArgs e)
void RegisterEvents()
{
ReadPackages();
packageManagementEvents.ParentPackageInstalled += OnNewRecentPackage;
packageManagementEvents.ParentPackageUninstalled += OnPackageChanged;
packageManagementEvents.ParentPackagesUpdated += OnNewRecentPackage;
}
void ParentPackageUninstalled(object sender, EventArgs e)
protected override void OnDispose()
{
ReadPackages();
packageManagementEvents.ParentPackageInstalled -= OnNewRecentPackage;
packageManagementEvents.ParentPackageUninstalled -= OnPackageChanged;
packageManagementEvents.ParentPackagesUpdated -= OnNewRecentPackage;
}
protected override void OnDispose()
void OnNewRecentPackage(object sender, EventArgs e)
{
packageManagementEvents.ParentPackageInstalled -= ParentPackageInstalled;
packageManagementEvents.ParentPackageUninstalled -= ParentPackageUninstalled;
ReadPackages();
}
protected override IQueryable<IPackage> GetAllPackages()

Loading…
Cancel
Save