/// <summary> /// Handles the export item context item activated event. /// </summary> /// <param name="page">Sender.</param> /// <param name="fileReference">E.</param> private static void OnExportItemRequested(GamePage page, FileReference fileReference) { // TODO: Create a better exporter (EverlookExporter.Export(<>)?) switch (fileReference.GetReferencedFileType()) { case WarcraftFileType.Directory: { /* * using (EverlookDirectoryExportDialog exportDialog = EverlookDirectoryExportDialog.Create(fileReference)) * { * if (exportDialog.Run() == (int)ResponseType.Ok) * { * exportDialog.RunExport(); * } * exportDialog.Destroy(); * } */ break; } case WarcraftFileType.BinaryImage: { using (EverlookImageExportDialog exportDialog = EverlookImageExportDialog.Create(fileReference)) { if (exportDialog.Run() == (int)ResponseType.Ok) { exportDialog.RunExport(); } exportDialog.Destroy(); } break; } } }
/// <summary> /// Handles the export item context item activated event. /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">E.</param> private void OnExportItemContextItemActivated(object sender, EventArgs e) { FileReference fileReference = GetSelectedReference(); if (string.IsNullOrEmpty(fileReference?.FilePath)) { return; } WarcraftFileType fileType = fileReference.GetReferencedFileType(); switch (fileType) { case WarcraftFileType.Directory: { if (fileReference.IsFullyEnumerated) { using (EverlookDirectoryExportDialog exportDialog = EverlookDirectoryExportDialog.Create(fileReference)) { if (exportDialog.Run() == (int)ResponseType.Ok) { exportDialog.RunExport(); } exportDialog.Destroy(); } } else { // TODO: Implement wait message when the directory and its subdirectories have not yet been enumerated. } break; } case WarcraftFileType.BinaryImage: { using (EverlookImageExportDialog exportDialog = EverlookImageExportDialog.Create(fileReference)) { if (exportDialog.Run() == (int)ResponseType.Ok) { exportDialog.RunExport(); } exportDialog.Destroy(); } break; } } }