using Client.ihm_main.Views;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;

namespace Client.ihm_main.ViewModel
{
    class MainWindowViewModel
    {
        private ICommand openWindow;
        public ICommand OpenWindow
        {
            get => openWindow;
            set
            {
                openWindow = value;
            }
        }

        private bool secondWindowIsNotActive = true;
        public bool SecondWindowIsNotActive
        {
            get => secondWindowIsNotActive;
            set
            {
                secondWindowIsNotActive = value;
                NotifyPropertyChanged("SecondWindowIsNotActive");
            }
        }

        private SecondWindowView secondWindow;

        public event PropertyChangedEventHandler PropertyChanged;

        public MainWindowViewModel()
        {
            this.openWindow = new RelayCommand<object>(OpenSecondWindow, SecondWindowIsNotActive);
        }

        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            if(PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        private void OpenSecondWindow(object view)
        {
            MainWindow win = (MainWindow)view;
            secondWindow = new SecondWindowView();
            secondWindow.DataContext = new SecondWindowViewModel(win);
            secondWindow.Show();
            win.WindowState = WindowState.Minimized;
        }
    }
}