using FSI.Lib.MVVM; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Input; namespace FSI.BT.Tools.RadialMenu { public class MainViewModel : ViewModelBase { public MainViewModel(Window win, List cmds) { _window = win; _window.Deactivated += _window_Deactivated; _isOpenHome = true; Cmds = new(); if (cmds != null) { foreach (string cmd in cmds) Cmds.Add(cmd); } Cmds.Add("Rdp.Mgt"); Provider = new(ref _cmds); } private ObservableCollection _cmds; public ObservableCollection Cmds { get { return _cmds; } set { _cmds = value; OnPropertyChanged(); } } private CmdProvider _cmdProvider; public CmdProvider Provider { get { return _cmdProvider; } set { _cmdProvider = value; } } private string _cmd; public string Cmd { get { return _cmd; } set { _cmd = value; OnPropertyChanged(); } } private Window _window; public Window Window { get { return _window; } set { _window = value; } } #region Home private bool _isOpenHome = true; public bool IsOpenHome { get { return _isOpenHome; } set { _isOpenHome = value; OnPropertyChanged(); } } public ICommand CloseRadialMenuHome { get { return new RelayCommand(() => _window.Visibility = Visibility.Hidden); } } public ICommand OpenRadialMenuHome { get { return new RelayCommand(() => { IsOpenHome = true; IsOpenEpl = IsOpenTools = IsOpenSie = IsOpenApps = IsOpenPlantLinksPl1 = IsOpenPlantLinksPl2 = IsOpenPlantLinksPl3 = IsOpenAppsVncRdp = IsOpenLinks = false; }); } } #endregion #region Epl private bool _isOpenEpl = false; public bool IsOpenEpl { get { return _isOpenEpl; } set { _isOpenEpl = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuEpl { get { return new RelayCommand(() => { IsOpenEpl = true; IsOpenHome = false; }); } } #endregion #region Tools private bool _isOpenTools = false; public bool IsOpenTools { get { return _isOpenTools; } set { _isOpenTools = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuTools { get { return new RelayCommand(() => { IsOpenTools = true; IsOpenHome = false; }); } } #endregion #region Siemens private bool _isOpenSie = false; public bool IsOpenSie { get { return _isOpenSie; } set { _isOpenSie = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuSie { get { return new RelayCommand(() => { IsOpenSie = true; IsOpenHome = false; }); } } #endregion #region Links private bool _isOpenLinks = false; public bool IsOpenLinks { get { return _isOpenLinks; } set { _isOpenLinks = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuLinks { get { return new RelayCommand(() => { IsOpenLinks = true; IsOpenPlantLinks = IsOpenHome = false; }); } } #endregion #region Anlagen Links private bool _isOpenPlantLinks = false; public bool IsOpenPlantLinks { get { return _isOpenPlantLinks; } set { _isOpenPlantLinks = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuPlantLinks { get { return new RelayCommand(() => { IsOpenPlantLinks = true; IsOpenPlantLinksPl1 = IsOpenPlantLinksPl2 = IsOpenPlantLinksPl3 = IsOpenLinks = false; }); } } #endregion #region Anlagen Links Pl1 private bool _isOpenPlantLinksPl1 = false; public bool IsOpenPlantLinksPl1 { get { return _isOpenPlantLinksPl1; } set { _isOpenPlantLinksPl1 = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuPlantLinksPl1 { get { return new RelayCommand(() => { IsOpenPlantLinksPl1 = true; IsOpenPlantLinks = false; }); } } #endregion #region Anlagen Links Pl2 private bool _isOpenPlantLinksPl2 = false; public bool IsOpenPlantLinksPl2 { get { return _isOpenPlantLinksPl2; } set { _isOpenPlantLinksPl2 = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuPlantLinksPl2 { get { return new RelayCommand(() => { IsOpenPlantLinksPl2 = true; IsOpenPlantLinks = false; }); } } #endregion #region Anlagen Links Pl3 private bool _isOpenPlantLinksPl3 = false; public bool IsOpenPlantLinksPl3 { get { return _isOpenPlantLinksPl3; } set { _isOpenPlantLinksPl3 = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuPlantLinksPl3 { get { return new RelayCommand(() => { IsOpenPlantLinksPl3 = true; IsOpenPlantLinks = false; }); } } #endregion #region Apps private bool _isOpenApps = false; public bool IsOpenApps { get { return _isOpenApps; } set { _isOpenApps = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuApps { get { return new RelayCommand(() => { IsOpenApps = true; IsOpenAppsVncRdp = IsOpenHome = false; }); } } #endregion #region Apps RDP VNC private bool _isOpenAppsVncRdp = false; public bool IsOpenAppsVncRdp { get { return _isOpenAppsVncRdp; } set { _isOpenAppsVncRdp = value; OnPropertyChanged(); } } public ICommand OpenRadialMenuAppsVncRdp { get { return new RelayCommand(() => { IsOpenAppsVncRdp = true; IsOpenApps = false; }); } } #endregion private void _window_Deactivated(object sender, EventArgs e) { _window.Visibility = Visibility.Hidden; IsOpenHome = true; IsOpenEpl = IsOpenTools = IsOpenSie = IsOpenLinks = IsOpenApps = IsOpenPlantLinksPl1 = IsOpenPlantLinksPl2 = IsOpenPlantLinksPl3 = IsOpenAppsVncRdp = IsOpenPlantLinks = false; } } }