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"); }; }
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; }
public void AddProfile(AbstractProfileModel profile) { Profiles.Add(profile); if (ProfileAddedEvent != null) { ProfileAddedEvent(profile); } }
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; }
public override bool Equals(AbstractProfileModel other) { if (other is SystemProfileModel) return Equals(other as SystemProfileModel); return false; }
// -- Handlery -- public void HandleProfileStateChange(AbstractProfileModel.StateEnum newState) { EmitPropertyChanged("ActiveRectColor"); EmitPropertyChanged("Style"); EmitPropertyChanged("EditButtonStyle"); }
public void HandleProfileEditEnd(AbstractProfileModel p) { EmitPropertyChanged("EditButtonStyle"); }
public void HandleProfileDataChange(AbstractProfileModel p) { EmitPropertyChanged("Name"); EmitPropertyChanged("EditButtonStyle"); }
void HandleProfileAddedEvent(AbstractProfileModel newProfile) { Profiles.Add(new ProfileButtonViewModel(newProfile)); }
private void HandleProfileActivation(AbstractProfileModel profile) { foreach (var p in Profiles) { // TODO } }
public void SetProfile(AbstractProfileModel newProfile) { AbstractProfileModel oldProfile = Profile; // TODO: ostrzeżenie, jeśli są niezapisane zmiany Profile = newProfile; if (oldProfile != null) oldProfile.EmitProfileEditEnd(); }