using PDF_Master.Helper;
using PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
using PDF_Master.ViewModels.EditTools.Watermark;
using System;
using System.Collections;
using System.Data;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Interop;
using System.Windows.Media;

namespace PDF_Master.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
{
    /// <summary>
    /// Interaction logic for HomePageRemoveDialog
    /// </summary>
    public partial class HomePageRemoveDialog : UserControl
    {
        private IDropTargetHelper dropHelper;
        private HomePageRemoveDialogViewModel viewModel;
        public HomePageRemoveDialog()
        {
            InitializeComponent();
            viewModel = this.DataContext as HomePageRemoveDialogViewModel;
        }
        private void Menu_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            menuPop1.IsOpen = true;
        }

        private void listView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            IList list = listView.SelectedItems;
            var lists = listView.Items;
            System.Data.DataRowView a;
            viewModel.fileNamesView.Clear();
            foreach (var item in list)
            {
                a = (System.Data.DataRowView)item;
                viewModel.fileNamesView.Add(lists.IndexOf(a));
            }
            if (viewModel.fileNamesView.Count > 0)
            {
                viewModel.RemoveIsEnable = "True";
            }
            else
            {
                viewModel.RemoveIsEnable = "False";
            }

        }

        private void RemoveFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            viewModel.removepdffile();
        }

        private void OpenFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            viewModel.openfiledialog();
        }

        private void Grid_Drop(object sender, DragEventArgs e)
        {
            
            try
            {
                Point iconPoint = e.GetPosition(this);
                dropHelper?.Drop((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
            }
            catch
            {

            }
            string dropFile = "Drop";
            if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
            {
                BtnBlank.IsEnabled = true;
                int count = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).Length;
                for (int i = 0; i < count; i++)
                {
                    dropFile = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).GetValue(i).ToString(); ;
                    //MessageBox.Show(dropFile);
                    if (dropFile.ToLower().EndsWith("pdf"))
                    { viewModel.addPDFFiles(dropFile); }
                }
            }
        }
        private void MainPage_DragEnter(object sender, DragEventArgs e)
        {
            BtnBlank.IsEnabled = false;
            //页面编辑和缩略图
            if ((e.OriginalSource as Image) != null)
                return;
            try
            {
                if (dropHelper == null)
                {
                    dropHelper = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("4657278A-411B-11D2-839A-00C04FD918D0"))) as IDropTargetHelper;
                }
                Point iconPoint = e.GetPosition(this);
                dropHelper?.DragEnter(new WindowInteropHelper(Window.GetWindow(this)).Handle, (System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
            }
            catch
            {

            }
            
        }

        private void MainPage_DragOver(object sender, DragEventArgs e)
        {
           
            if ((e.OriginalSource as Image) != null)
                return;
            try
            {
                Point iconPoint = e.GetPosition(this);
                dropHelper?.DragOver(ref iconPoint, e.Effects);
            }
            catch
            {

            }
            
        }

        private void MainPage_DragLeave(object sender, DragEventArgs e)
        {
            BtnBlank.IsEnabled = true;
            if ( (e.OriginalSource as Image) != null)
                return;
            try
            {
                dropHelper?.DragLeave();
            }
            catch
            {

            }
            
        }
        private void DeleteTemplateBtn_Click(object sender, RoutedEventArgs e)
        {
            Button deletetemplatebtn = sender as Button;
            var ls = deletetemplatebtn.DataContext as DataRowView;
            if (ls != null)
            {
                viewModel.removepdffile(viewModel.PDFDataTable.Rows.IndexOf(ls.Row));
            }
        }


    }
}