Modifications to enable Sync Pausing for all operations
[pithos-ms-client] / trunk / Pithos.Client.WPF / Shell / MiniStatusViewModel.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.ComponentModel.Composition;
5 using System.Linq;
6 using System.Text;
7 using Caliburn.Micro;
8
9 namespace Pithos.Client.WPF.Shell
10 {
11     [Export(typeof(MiniStatusViewModel)),PartCreationPolicy(CreationPolicy.Shared)]    
12     public class MiniStatusViewModel:Screen
13     {
14         public override string DisplayName
15         {
16             get
17             {
18                 return "Pithos+ Status";
19             }
20             set
21             {
22                 base.DisplayName = value;
23             }
24         }
25         
26         public string Status
27         {
28             get { return Shell.StatusMessage; }
29         }
30
31         private ShellViewModel _shell;
32         public ShellViewModel Shell
33         {
34             get { return _shell; }
35             set
36             {
37                 _shell = value;
38                 _shell.PropertyChanged += OnParentChanged;
39             }
40         }
41
42         private void OnParentChanged(object sender, PropertyChangedEventArgs e)
43         {
44             if (e.PropertyName=="StatusMessage")
45                 NotifyOfPropertyChange(()=>Status);
46         }
47
48         private string _pauseImage="../Images/Pause.png";
49         public string PauseImage
50         {
51             get { return _pauseImage; }
52             set
53             {
54                 _pauseImage = value;
55                 NotifyOfPropertyChange(()=>PauseImage);
56             }
57         }
58
59         private string _pauseToolTip="Pause Syncing";
60         public string PauseToolTip
61         {
62             get { return _pauseToolTip; }
63             set
64             {
65                 _pauseToolTip = value;
66                 NotifyOfPropertyChange(()=>PauseToolTip);
67             }
68         }
69
70         public void ToggleSyncing()
71         {
72             Shell.ToggleSynching();
73             PauseImage = Shell.IsPaused
74                              ? "../Images/Play.png"
75                              : "../Images/Pause.png";
76             PauseToolTip = Shell.IsPaused
77                              ? "Resume Syncing"
78                              : "Pause Syncing";
79         }
80     }
81 }