~ubuntu-branches/ubuntu/vivid/monodevelop/vivid-proposed

« back to all changes in this revision

Viewing changes to src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ManagePackagesViewModel.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2014-10-09 14:09:23 UTC
  • mfrom: (10.3.5)
  • Revision ID: package-import@ubuntu.com-20141009140923-s0d22u5f9kg8jvds
Tags: 5.5.0.227-1
* [b2c8331] Imported Upstream version 5.5.0.227 (Closes: #754316)
* [d210995] Delete obsolete patches
* [1b59ae1] Clear patch fizz, via quilt refresh
* [3dd147d] Fix error in configure.in which applies for tarball builds but 
  not git builds when running autoreconf
* [21c2a57] Remove Metacity references for good
* [3331661] Ensure NUnit 2.6.3 is installed
* [fd85c88] Build-depend on NuGet
* [a1ae116] Add WebKit to build dependencies, for Xwt moduleref resolution
* [9b4cf12] Since the GDB addin is integrated now, declare it in 
  debian/control
* [6231562] Correct NUnit links
* [3d2b693] Fix NuGet addin, by copying libs locally
* [74bf9a8] Don't symlink unused Mocks NUnit assembly
* [ade52b2] Ensure IKVM.Reflection is built with default (4.5) profile

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// 
 
2
// ManagePackagesViewModel.cs
 
3
// 
 
4
// Author:
 
5
//   Matt Ward <ward.matt@gmail.com>
 
6
// 
 
7
// Copyright (C) 2013 Matthew Ward
 
8
// 
 
9
// Permission is hereby granted, free of charge, to any person obtaining
 
10
// a copy of this software and associated documentation files (the
 
11
// "Software"), to deal in the Software without restriction, including
 
12
// without limitation the rights to use, copy, modify, merge, publish,
 
13
// distribute, sublicense, and/or sell copies of the Software, and to
 
14
// permit persons to whom the Software is furnished to do so, subject to
 
15
// the following conditions:
 
16
// 
 
17
// The above copyright notice and this permission notice shall be
 
18
// included in all copies or substantial portions of the Software.
 
19
// 
 
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 
23
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 
24
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 
25
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
27
//
 
28
 
 
29
using System;
 
30
using System.Collections.ObjectModel;
 
31
using System.Linq;
 
32
 
 
33
using NuGet;
 
34
 
 
35
namespace ICSharpCode.PackageManagement
 
36
{
 
37
        public class ManagePackagesViewModel : ViewModelBase<ManagePackagesViewModel>, IDisposable
 
38
        {
 
39
                IThreadSafePackageManagementEvents packageManagementEvents;
 
40
                PackagesViewModels packagesViewModels;
 
41
                ManagePackagesViewTitle viewTitle;
 
42
                string message;
 
43
                bool hasError;
 
44
                
 
45
                public ManagePackagesViewModel(
 
46
                        PackagesViewModels packagesViewModels,
 
47
                        ManagePackagesViewTitle viewTitle,
 
48
                        IThreadSafePackageManagementEvents packageManagementEvents)
 
49
                {
 
50
                        this.packagesViewModels = packagesViewModels;
 
51
                        this.viewTitle = viewTitle;
 
52
                        this.packageManagementEvents = packageManagementEvents;
 
53
                        
 
54
                        packageManagementEvents.PackageOperationError += PackageOperationError;
 
55
                        packageManagementEvents.PackageOperationsStarting += PackageOperationsStarting;
 
56
                }
 
57
                
 
58
                public AvailablePackagesViewModel AvailablePackagesViewModel {
 
59
                        get { return packagesViewModels.AvailablePackagesViewModel; }
 
60
                }
 
61
                
 
62
                public InstalledPackagesViewModel InstalledPackagesViewModel {
 
63
                        get { return packagesViewModels.InstalledPackagesViewModel; }
 
64
                }
 
65
                
 
66
                public RecentPackagesViewModel RecentPackagesViewModel {
 
67
                        get { return packagesViewModels.RecentPackagesViewModel; }
 
68
                }
 
69
                
 
70
                public UpdatedPackagesViewModel UpdatedPackagesViewModel {
 
71
                        get { return packagesViewModels.UpdatedPackagesViewModel; }
 
72
                }
 
73
                
 
74
                public string Title {
 
75
                        get { return viewTitle.Title; }
 
76
                }
 
77
                
 
78
                public void Dispose()
 
79
                {
 
80
                        packagesViewModels.Dispose();
 
81
                        
 
82
                        packageManagementEvents.PackageOperationError -= PackageOperationError;
 
83
                        packageManagementEvents.PackageOperationsStarting -= PackageOperationsStarting;
 
84
                        packageManagementEvents.Dispose();
 
85
                }
 
86
                
 
87
                void PackageOperationError(object sender, PackageOperationExceptionEventArgs e)
 
88
                {
 
89
                        ShowErrorMessage(e.Exception.Message);
 
90
                }
 
91
                
 
92
                void ShowErrorMessage(string message)
 
93
                {
 
94
                        this.Message = message;
 
95
                        this.HasError = true;
 
96
                }
 
97
                
 
98
                public string Message {
 
99
                        get { return message; }
 
100
                        set {
 
101
                                message = value;
 
102
                                OnPropertyChanged(model => model.Message);
 
103
                        }
 
104
                }
 
105
                
 
106
                public bool HasError {
 
107
                        get { return hasError; }
 
108
                        set {
 
109
                                hasError = value;
 
110
                                OnPropertyChanged(model => model.HasError);
 
111
                        }
 
112
                }
 
113
                
 
114
                void PackageOperationsStarting(object sender, EventArgs e)
 
115
                {
 
116
                        ClearMessage();
 
117
                }
 
118
                
 
119
                void ClearMessage()
 
120
                {
 
121
                        this.Message = null;
 
122
                        this.HasError = false;
 
123
                }
 
124
        }
 
125
}