Statistics
| Branch: | Revision:

root / trunk / Pithos.Client.WPF / Shell / MiniStatusViewModel.cs @ 2341c603

History | View | Annotate | Download (2.1 kB)

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
}