/// <summary> /// Register common shortcuts that are available for all documents (worksheets and graphs), like name, path, creation date etc. /// </summary> /// <param name="renameData">Rename data structure in which the shortcuts have to be registered.</param> public static void RegisterCommonDocumentShortcuts(MultiRenameData renameData) { renameData.RegisterStringShortcut("N", GetFullName, "Name of the object (full name, with path)"); renameData.RegisterStringShortcut("SN", GetShortName, "Short name of the object (without path"); renameData.RegisterStringShortcut("PN", GetFolderName, "Path name of the object"); renameData.RegisterIntegerShortcut("C", GetCounter, "Index of the object in the list"); renameData.RegisterDateTimeShortcut("CD", GetCreationDate, "Creation date of the object"); renameData.RegisterStringArrayShortcut("NA", GetNamePartArray, "Name array, i.e. full name split into individual path pieces"); renameData.RegisterStringArrayShortcut("PA", GetFolderPartArray, "Path array, i.e. path name of the object split into individual path pieces"); }
private static List <object> DoExportGraphs(MultiRenameData mrData) { var failedItems = new List <object>(); var errors = new StringBuilder(); bool allPathsRooted = true; for (int i = 0; i < mrData.ObjectsToRenameCount; ++i) { var fileName = mrData.GetNewNameForObject(i); if (!System.IO.Path.IsPathRooted(fileName)) { allPathsRooted = false; break; } } if (!allPathsRooted) { //Current.Gui.ShowFolderDialog(); // http://wpfdialogs.codeplex.com/ } for (int i = 0; i < mrData.ObjectsToRenameCount; ++i) { var graph = (GraphDocumentBase)mrData.GetObjectToRename(i); var fileName = mrData.GetNewNameForObject(i); try { DoExportGraph(graph, fileName, _graphExportOptionsToFile); } catch (Exception ex) { failedItems.Add(graph); errors.AppendFormat("Graph {0} -> file name {1}: export failed, {2}\n", graph.Name, fileName, ex.Message); } } if (errors.Length != 0) { Current.Gui.ErrorMessageBox(errors.ToString(), "Export failed for some items"); } else { Current.Gui.InfoMessageBox(string.Format("{0} graphs successfully exported.", mrData.ObjectsToRenameCount)); } return(failedItems); }
/// <summary>Shows the multi file export dialog and exports the graphs, using the <see cref="GraphExportOptions"/> that are stored in this class.</summary> /// <param name="documents">List with graph documents to export.</param> public static void ShowExportMultipleGraphsDialog(IEnumerable <Graph.GraphDocumentBase> documents) { var mrData = new MultiRenameData(); MultiRenameDocuments.RegisterCommonDocumentShortcuts(mrData); mrData.RegisterStringShortcut("E", (o, i) => _graphExportOptionsToFile.GetDefaultFileNameExtension(), "File extension (depends on the image type that was chosen before"); mrData.RegisterRenameActionHandler(DoExportGraphs); mrData.AddObjectsToRename(documents); mrData.RegisterListColumn("FullName", MultiRenameDocuments.GetFullName); mrData.RegisterListColumn("File name", null); mrData.RegisterListColumn("Creation date", MultiRenameDocuments.GetCreationDateString); mrData.DefaultPatternString = "[SN][E]"; var mrController = new MultiRenameController(); mrController.InitializeDocument(mrData); Current.Gui.ShowDialog(mrController, "Export multiple graphs"); }