using ComPDFKitViewer.PdfViewer; using PDF_Master.Model; using Prism.Commands; using Prism.Mvvm; using Prism.Services.Dialogs; using PDF_Master.Helper; using System; using System.Collections.Generic; using System.Linq; using static System.Resources.ResXFileRef; using static System.Net.Mime.MediaTypeNames; using System.Windows.Forms; namespace PDF_Master.ViewModels.Dialog.ChatGPTAIDialogs { public class SelectedTranslationDialogViewModel : BindableBase, IDialogAware { public string Title => ""; private string selectedText; public string SelectedText { get { return selectedText; } set { SetProperty(ref selectedText, value); } } private string translateText; public string TranslateText { get { return translateText; } set { SetProperty(ref translateText, value); } } private string fromlanguage = ""; private string tolanguage = ""; private int fromlanguageIndex = 0; public int FromlanguageIndex { get { return fromlanguageIndex; } set { SetProperty(ref fromlanguageIndex, value); fromlanguage = ChatGTPAIHelper.UpdateLanguagebType(value); } } private int tolanguageIndex = 0; public int TolanguageIndex { get { return tolanguageIndex; } set { SetProperty(ref tolanguageIndex, value); tolanguage = ChatGTPAIHelper.UpdateLanguagebType(value + 1); } } public static List FromlanguageFamily { set; get; } = new List(); private void GetFromlanguageOrigin() { FromlanguageFamily.Clear(); FromlanguageFamily = ChatGTPAIHelper.SetFromlanguageOrigin(); } public List TolanguageFamily { set; get; } = new List(); private void GetTolanguageOrigin() { TolanguageFamily.Clear(); TolanguageFamily = ChatGTPAIHelper.SetTolanguageOrigin(); } public DelegateCommand TranslateCommand { get; set; } public DelegateCommand CopyCommand { get; set; } public SelectedTranslationDialogViewModel() { TranslateCommand = new DelegateCommand(translate); CopyCommand = new DelegateCommand(copy); init(); } private void init() { GetFromlanguageOrigin(); GetTolanguageOrigin(); } public void translate() { string translatetext = ""; ChatGTPAIHelper.textTranslate(SelectedText, fromlanguage, tolanguage, ref translatetext); TranslateText = translatetext; } public void copy() { try { Clipboard.SetText(TranslateText); } catch { } } public event Action RequestClose; public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } public void OnDialogOpened(IDialogParameters parameters) { CPDFViewer pdfViewer = null; parameters.TryGetValue(ParameterNames.PDFViewer, out pdfViewer); if (pdfViewer != null) { SelectedText = pdfViewer.GetSelectedText(); fromlanguage = ChatGTPAIHelper.UpdateLanguagebType(0); tolanguage = ChatGTPAIHelper.UpdateLanguagebType(1); } } } }