using FSI.BT.Tools.Commands; using System; using System.ComponentModel; using System.Drawing; using System.Reflection; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; namespace FSI.BT.Tools { /// /// Interaction logic for MainWindow.xaml /// public partial class FrmRadialMenu : Window, INotifyPropertyChanged { private CmdCommand _cmd; public FrmRadialMenu() { InitializeComponent(); DataContext = this; _isOpenHome = true; tbversion.Text = "v" + Assembly.GetExecutingAssembly().GetName().Version.Major + "." + Assembly.GetExecutingAssembly().GetName().Version.Minor + "b"; _cmd = new (); } #region Home private bool _isOpenHome = true; public bool IsOpenHome { get { return _isOpenHome; } set { _isOpenHome = value; RaisePropertyChanged(); } } public ICommand CloseRadialMenuHome { get { return new RelayCommand(() => 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } 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; RaisePropertyChanged(); } } public ICommand OpenRadialMenuAppsVncRdp { get { return new RelayCommand(() => { IsOpenAppsVncRdp = true; IsOpenApps = false; }); } } #endregion public event PropertyChangedEventHandler PropertyChanged; void RaisePropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } private void Window_Deactivated(object sender, EventArgs e) { tbCmd.Text = String.Empty; tbCmd.Focus(); Visibility = Visibility.Hidden; IsOpenHome = true; IsOpenEpl = IsOpenTools = IsOpenSie = IsOpenLinks = IsOpenApps = IsOpenPlantLinksPl1 = IsOpenPlantLinksPl2 = IsOpenPlantLinksPl3 = IsOpenAppsVncRdp = IsOpenPlantLinks = false; } private void Window_Loaded(object sender, RoutedEventArgs e) { tbCmd.Focus(); } private void tbCmd_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter && _cmd.CanExecute(((TextBox)sender).Text)) { _cmd.Execute(((TextBox)sender).Text); } } private void tbCmd_TextChanged(object sender, TextChangedEventArgs e) { if (_cmd.CanExecute(((TextBox)sender).Text)) ((TextBox)sender).Background = new SolidColorBrush(Colors.Green); else ((TextBox)sender).Background = new SolidColorBrush(Colors.White); } } }