using HandyControl.Controls;
using log4net;
using SparkClient.ViewModel;
using SparkClient.ViewModel.Dialog;
using SparkClient.Views.Grading;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

namespace SparkClient.Views.Dialog
{
    /// <summary>
    /// JsonImport.xaml 的交互逻辑
    /// </summary>
    public partial class JsonImport
    {
        private static readonly ILog Logger = LogManager.GetLogger(typeof(JsonImport));
        public BaseViewModel ViewModel = null;
        public JsonImport()
        {
            InitializeComponent();
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            // 动态设置圆角裁剪
            this.Loaded += (s, e) => ApplyCornerRadiusClip();
            this.SizeChanged += (s, e) => ApplyCornerRadiusClip(); // 保证在大小改变时也裁剪
            this.Width = 562;
            this.Height = 222;
            this.ViewModel = new StartDialogVM();
            this.DataContext = this.ViewModel;
        }


        #region 重写窗体操作按钮
        private void Border_Close_MouseEnter(object sender, MouseEventArgs e)
        {
            // 鼠标进入时更改背景色
            if (sender is Border border)
            {
                border.Background = new SolidColorBrush(Color.FromArgb(50, 255, 0, 0));
            }
        }
        private void Border_MouseLeave(object sender, MouseEventArgs e)
        {
            // 鼠标离开时恢复背景色
            if (sender is Border border)
            {
                border.Background = new SolidColorBrush(Colors.Transparent);
            }
        }

        private void UIElement_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                try
                {
                    this.DragMove();
                }
                catch (InvalidOperationException ex)
                {

                }
            }
        }
        #endregion

        private void Close_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = false;
            this.Close();
        }
        private void open_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
            openFileDialog.Filter = "Text files (*.json)|*.json|All files (*.*)|*.*";
            if (openFileDialog.ShowDialog() == true)
            {
                string filename = openFileDialog.FileName;
                if (File.Exists(filename))
                {
                    FilePath.Text = filename;
                }
            }
        }
        private void Ok_Click(object sender, RoutedEventArgs e)
        {
            if (FilePath.Text.Trim().Length > 0) {  
                DialogResult = true;
                this.Close();
            }
            else
            {
                Growl.Error("请选择导入json文件");
            }
        }
        private void ApplyCornerRadiusClip()
        {
            // 使用矩形几何生成圆角裁剪
            this.Border.Clip = new RectangleGeometry
            {
                Rect = new Rect(0, 0, this.Border.ActualWidth, this.Border.ActualHeight),
                RadiusX = this.Border.CornerRadius.TopLeft, // 使用 Border 的 CornerRadius
                RadiusY = this.Border.CornerRadius.TopLeft
            };
        }
    }
}