コード例 #1
0
 public ProfileButtonViewModel(AbstractProfileModel profile)
 {
     this.Profile = profile;
     this.Profile.ProfileStateChangedEvent += HandleProfileStateChange;
     this.Profile.ProfileDataChangedEvent += HandleProfileDataChange;
     this.Profile.ProfileEditEndEvent += HandleProfileEditEnd;
     this.Profile.NetInterface.InterfaceDown += delegate()
     {
         EmitPropertyChanged("Style");
         EmitPropertyChanged("ShouldBeEnabled");
         EmitPropertyChanged("EditButtonStyle");
     };
     this.Profile.NetInterface.InterfaceUp += delegate()
     {
         EmitPropertyChanged("Style");
         EmitPropertyChanged("ShouldBeEnabled");
         EmitPropertyChanged("EditButtonStyle");
     };
 }
コード例 #2
0
ファイル: NetInterface.cs プロジェクト: pjbober/NetConfig
        private void InitActiveProfile()
        {
            foreach (AbstractProfileModel profile in Profiles)
            {
                if (!(profile is SystemProfileModel) && profile.Equals(SystemProfile))
                {
                    this.ActiveProfile = profile;
                    this.ActiveProfile.ProfileState = AbstractProfileModel.StateEnum.ON;
                    return;
                }
            }

            this.ActiveProfile = SystemProfile;
            this.ActiveProfile.ProfileState = AbstractProfileModel.StateEnum.ON;
        }
コード例 #3
0
ファイル: NetInterface.cs プロジェクト: pjbober/NetConfig
 public void AddProfile(AbstractProfileModel profile)
 {
     Profiles.Add(profile);
     if (ProfileAddedEvent != null)
     {
         ProfileAddedEvent(profile);
     }
 }
コード例 #4
0
ファイル: NetInterface.cs プロジェクト: pjbober/NetConfig
        public bool ActivateProfile(AbstractProfileModel p)
        {
            // rozpoczęcie aktywacji nowego profilu oznacza potrzebę zmiany stanu na deaktywację starego
            // i zmianę stanu na aktywację nowego

            AbstractProfileModel oldProfile = ActiveProfile;

            if (oldProfile != null)
            {
                oldProfile.ProfileState = AbstractProfileModel.StateEnum.DEACTIVATING;
            }

            p.ProfileState = AbstractProfileModel.StateEnum.ACTIVATING;

            if (!(p is SystemProfileModel))
            {
                try
                {
                    if (p is WiredProfileModel)
                    {
                        WiredProfileModel wired = p as WiredProfileModel;

                        if (wired.IsDHCP)
                            EnableDhcp();
                        else
                        {
                            SetAddress(IPAddress.Parse(wired.IP), IPAddress.Parse(wired.SubnetMask), IPAddress.Parse(wired.Gateway));
                            SetStaticDNS(IPAddress.Parse(wired.DNS));
                        }
                    }

                    if (p is WifiProfileModel)
                    {
                        ActivateWifiProfile(p as WifiProfileModel); // TODO: teraz niezależnie od wyniku...
                    }
                }
                catch (Exception e)
                {
                    return false;
                }
            }

            ActiveProfile = p;

            // być może niepotrzebne, ale bezpieczniejsze - każdy profil inny od aktywowanego
            // powinien być w stanie wyłączonym
            foreach (AbstractProfileModel pro in Profiles)
            {
                pro.ProfileState = AbstractProfileModel.StateEnum.OFF;
            }

            ActiveProfile.ProfileState = AbstractProfileModel.StateEnum.ON;

            if (ActiveProfileChanged != null) ActiveProfileChanged(ActiveProfile);

            return true;
        }
コード例 #5
0
        public override bool Equals(AbstractProfileModel other)
        {
            if (other is SystemProfileModel)
                return Equals(other as SystemProfileModel);

            return false;
        }
コード例 #6
0
 // -- Handlery --
 public void HandleProfileStateChange(AbstractProfileModel.StateEnum newState)
 {
     EmitPropertyChanged("ActiveRectColor");
     EmitPropertyChanged("Style");
     EmitPropertyChanged("EditButtonStyle");
 }
コード例 #7
0
 public void HandleProfileEditEnd(AbstractProfileModel p)
 {
     EmitPropertyChanged("EditButtonStyle");
 }
コード例 #8
0
 public void HandleProfileDataChange(AbstractProfileModel p)
 {
     EmitPropertyChanged("Name");
     EmitPropertyChanged("EditButtonStyle");
 }
コード例 #9
0
 void HandleProfileAddedEvent(AbstractProfileModel newProfile)
 {
     Profiles.Add(new ProfileButtonViewModel(newProfile));
 }
コード例 #10
0
 private void HandleProfileActivation(AbstractProfileModel profile)
 {
     foreach (var p in Profiles)
     {
         // TODO
     }
 }
コード例 #11
0
        public void SetProfile(AbstractProfileModel newProfile)
        {
            AbstractProfileModel oldProfile = Profile;

            // TODO: ostrzeżenie, jeśli są niezapisane zmiany
            Profile = newProfile;

            if (oldProfile != null) oldProfile.EmitProfileEditEnd();
        }