source: trunk/CrypPlugins/PeerToPeerBaseProxy/P2PPeerSettings.cs @ 2411

Last change on this file since 2411 was 2334, checked in by Matthäus Wander, 11 years ago

removed 1006 occurences of DisplayLevel in 218 files (see #122)

File size: 2.3 KB
Line 
1using System.ComponentModel;
2using System.Windows;
3using Cryptool.PluginBase;
4
5namespace Cryptool.Plugins.PeerToPeerProxy
6{
7    internal class P2PPeerSettings : ISettings
8    {
9        private readonly P2PProxySettings _settings;
10
11        #region PeerStatus enum
12
13        public enum PeerStatus
14        {
15            NotConnected = 0,
16            Connecting = 1,
17            Online = 2,
18            Error = 3
19        }
20
21        #endregion
22
23        #region ISettings Members
24
25        public event PropertyChangedEventHandler PropertyChanged;
26
27        public bool HasChanges { get; set; }
28
29        #endregion
30
31        #region taskPane
32
33        public P2PPeerSettings()
34        {
35            ChangePluginIcon(PeerStatus.NotConnected);
36            _settings = P2PProxySettings.Default;
37        }
38
39        #endregion
40
41        [TaskPane("Autoconnect P2P network", "Autoconnect to the P2P network, when the workspace is executed.", null, 0, true,
42            ControlType.CheckBox)]
43        public bool Autoconnect
44        {
45            get { return _settings.Autoconnect; }
46            set
47            {
48                if (value != _settings.Autoconnect)
49                {
50                    _settings.Autoconnect = value;
51                    OnPropertyChanged("Autoconnect");
52                    HasChanges = true;
53                }
54            }
55        }
56
57        private void OnPropertyChanged(string p)
58        {
59            if (PropertyChanged != null)
60            {
61                PropertyChanged(this, new PropertyChangedEventArgs(p));
62            }
63
64            P2PProxySettings.Default.Save();
65        }
66
67        /// <summary>
68        /// Changes icon of P2PPeer and visibility of the control buttons in settings
69        /// </summary>
70        /// <param name="peerStat"></param>
71        public void PeerStatusChanged(PeerStatus peerStat)
72        {
73            ChangePluginIcon(peerStat);
74        }
75
76        public event StatusChangedEventHandler OnPluginStatusChanged;
77
78        private void ChangePluginIcon(PeerStatus peerStatus)
79        {
80            if (OnPluginStatusChanged != null)
81                OnPluginStatusChanged(null, new StatusEventArgs(StatusChangedMode.ImageUpdate, (int) peerStatus));
82        }
83    }
84}
Note: See TracBrowser for help on using the repository browser.