Browse Source

Basis for UpdateNotifier in AddInManager2, some refactoring, fixed resource warning on startup.

addin-manager-package-subdirectories
Andreas Weizel 12 years ago
parent
commit
6ca27d8a1f
  1. 1
      src/AddIns/Misc/AddInManager2/Project/AddInManager2.csproj
  2. 6
      src/AddIns/Misc/AddInManager2/Project/Src/Commands.cs
  3. 70
      src/AddIns/Misc/AddInManager2/Project/Src/UpdateNotifier.cs
  4. 3
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInManagerViewModel.cs
  5. 8
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInPackageViewModelBase.cs
  6. 3
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInsViewModelBase.cs
  7. 5
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AvailableAddInsViewModel.cs
  8. 8
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/InstalledAddInsViewModel.cs
  9. 21
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs
  10. 3
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetPackageViewModel.cs
  11. 3
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/OfflineAddInViewModel.cs
  12. 2
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/PackageRepositoriesViewModel.cs
  13. 5
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/UpdatedAddInsViewModel.cs

1
src/AddIns/Misc/AddInManager2/Project/AddInManager2.csproj

@ -124,6 +124,7 @@ @@ -124,6 +124,7 @@
<Compile Include="Src\Model\Model.cs" />
<Compile Include="Src\Model\ReadPackagesResult.cs" />
<Compile Include="Src\Model\SDAddInManagement.cs" />
<Compile Include="Src\UpdateNotifier.cs" />
<Compile Include="Src\ViewModel\AddInManagerViewModel.cs" />
<Compile Include="Src\ViewModel\AddInPackageViewModelBase.cs" />
<Compile Include="Src\ViewModel\AddInsViewModelBase.cs" />

6
src/AddIns/Misc/AddInManager2/Project/Src/Commands.cs

@ -2,10 +2,7 @@ @@ -2,10 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.AddInManager2.View;
namespace ICSharpCode.AddInManager2
@ -34,9 +31,6 @@ namespace ICSharpCode.AddInManager2 @@ -34,9 +31,6 @@ namespace ICSharpCode.AddInManager2
{
public override void Execute(object parameter)
{
// Load string resources needed by AddInManager2
SD.ResourceService.RegisterStrings("ICSharpCode.AddInManager2.Resources.StringResources", GetType().Assembly);
// Remove all unreferenced NuGet packages
AddInManagerServices.Setup.RemoveUnreferencedNuGetPackages();
}

70
src/AddIns/Misc/AddInManager2/Project/Src/UpdateNotifier.cs

@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Linq;
using ICSharpCode.SharpDevelop;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.AddInManager2.ViewModel;
namespace ICSharpCode.AddInManager2
{
/// <summary>
/// Checks configured repositories for updates and shows a user notification.
/// </summary>
public class UpdateNotifier
{
private IAddInManagerServices _services;
private UpdatedAddInsViewModel _updatedAddInViewModel;
private bool _isDetached;
public UpdateNotifier()
: this(AddInManagerServices.Services)
{
}
public UpdateNotifier(IAddInManagerServices services)
{
_isDetached = false;
_services = services;
_updatedAddInViewModel = new UpdatedAddInsViewModel(services);
_updatedAddInViewModel.PackageListDownloadEnded += UpdatedAddInViewModel_PackageListDownloadEnded;
}
public void Detach()
{
if (!_isDetached)
{
_updatedAddInViewModel.PackageListDownloadEnded -= UpdatedAddInViewModel_PackageListDownloadEnded;
_isDetached = true;
}
}
public void StartUpdateLookup()
{
if (!_isDetached)
{
// Start getting updates
_updatedAddInViewModel.ReadPackages();
}
}
public void UpdatedAddInViewModel_PackageListDownloadEnded(object sender, EventArgs e)
{
// Do we have any new updates? Collect this information from all configured repositories
var allRepositories = _updatedAddInViewModel.PackageRepositories;
if (allRepositories != null)
{
if (allRepositories.Any(rep => rep.HasHighlightCount))
{
// TODO There must be updates, show an update notification
Detach();
SD.MessageService.ShowWarning("There are updates!");
return;
}
}
Detach();
}
}
}

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

@ -5,14 +5,11 @@ using System; @@ -5,14 +5,11 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.AddInManager2.View;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel

8
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInPackageViewModelBase.cs

@ -6,10 +6,12 @@ using System.Collections.Generic; @@ -6,10 +6,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows.Input;
using ICSharpCode.AddInManager2.Model;
using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel
{
/// <summary>
/// Base class for view models of AddIn list entries.
/// </summary>
public abstract class AddInPackageViewModelBase : Model<AddInPackageViewModelBase>, IAddInPackage
{
private DelegateCommand addPackageCommand;
@ -21,13 +23,13 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -21,13 +23,13 @@ namespace ICSharpCode.AddInManager2.ViewModel
private DelegateCommand cancelUninstallationCommand;
private DelegateCommand optionsCommand;
public AddInPackageViewModelBase()
protected AddInPackageViewModelBase()
: base()
{
CreateCommands();
}
public AddInPackageViewModelBase(IAddInManagerServices services)
protected AddInPackageViewModelBase(IAddInManagerServices services)
: base(services)
{
CreateCommands();

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

@ -4,7 +4,6 @@ @@ -4,7 +4,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Windows.Input;
@ -72,7 +71,7 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -72,7 +71,7 @@ namespace ICSharpCode.AddInManager2.ViewModel
InstallFromArchiveCommand = new DelegateCommand(param => InstallFromArchive());
}
private void OnAddInsListUpdated()
private void OnAddInsListUpdated()
{
if (AddInsListUpdated != null)
{

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

@ -3,13 +3,8 @@ @@ -3,13 +3,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Windows.Input;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using NuGet;

8
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/InstalledAddInsViewModel.cs

@ -3,19 +3,17 @@ @@ -3,19 +3,17 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Windows.Input;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using Microsoft.Win32;
using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel
{
/// <summary>
/// Model for view of installed SharpDevelop AddIns.
/// </summary>
public class InstalledAddInsViewModel : NuGetAddInsViewModelBase
{
public InstalledAddInsViewModel()

21
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs

@ -3,22 +3,23 @@ @@ -3,22 +3,23 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Windows.Input;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.SharpDevelop;
using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel
{
/// <summary>
/// Base class for view models displaying NuGet
/// </summary>
public class NuGetAddInsViewModelBase : AddInsViewModelBase
{
private AddInManagerTask<ReadPackagesResult> _task;
private IEnumerable<IPackage> _allPackages;
public event EventHandler PackageListDownloadEnded;
public NuGetAddInsViewModelBase()
: base()
{
@ -101,9 +102,9 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -101,9 +102,9 @@ namespace ICSharpCode.AddInManager2.ViewModel
{
UpdatePackagesForSelectedPage(task.Result);
}
base.OnPropertyChanged(null);
base.OnPropertyChanged(null);
OnPackageListDownloadEnded();
}
private void UpdatePackagesForSelectedPage(ReadPackagesResult result)
@ -229,5 +230,13 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -229,5 +230,13 @@ namespace ICSharpCode.AddInManager2.ViewModel
}
}
}
private void OnPackageListDownloadEnded()
{
if (PackageListDownloadEnded != null)
{
PackageListDownloadEnded(this, new EventArgs());
}
}
}
}

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

@ -13,6 +13,9 @@ using NuGet; @@ -13,6 +13,9 @@ using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel
{
/// <summary>
/// View model representing a NuGet package in gallery.
/// </summary>
public class NuGetPackageViewModel : AddInPackageViewModelBase
{
private IPackage _package;

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

@ -12,6 +12,9 @@ using NuGet; @@ -12,6 +12,9 @@ using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel
{
/// <summary>
/// View model representing an already installed real SharpDevelop AddIn.
/// </summary>
public class OfflineAddInsViewModel : AddInPackageViewModelBase
{
private AddIn _addIn;

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

@ -7,10 +7,8 @@ using System.IO; @@ -7,10 +7,8 @@ using System.IO;
using System.Linq;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Interop;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel

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

@ -3,13 +3,8 @@ @@ -3,13 +3,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Windows.Input;
using ICSharpCode.AddInManager2.Model;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using NuGet;

Loading…
Cancel
Save