public MultiRenameDateTimeElement(MultiRenameData multiRenameData, string shortCut, string dateTimeFormat, bool useUtcTime) : base(multiRenameData, shortCut) { _dateTimeFormat = string.IsNullOrEmpty(dateTimeFormat) ? DefaultDateTimeFormat : dateTimeFormat; _useUtcTime = useUtcTime; }
public MultiRenameArrayElement(MultiRenameData multiRenameData, string shortCut, int start, int last, string separator) : base(multiRenameData, shortCut) { _start = start; _last = last; _separator = separator; }
/// <summary> /// Renames the documents using the items and functions registered in <paramref name="renameData"/>. /// </summary> /// <param name="renameData">Data that provideds the items to rename, the functions etc.</param> /// <returns>If the action was successfull, an empty list. If the action was only partially successfull, the returned list contains those objects, for which the rename action failed.</returns> public static List <object> RenameDocuments(Altaxo.Gui.Common.MultiRename.MultiRenameData renameData) { var renameFailedObjects = new List <object>(); // first, give all items a new, random name for (int i = 0; i < renameData.ObjectsToRenameCount; ++i) { object o = renameData.GetObjectToRename(i); string oldName = GetFullName(o); string newName = oldName + "_._" + System.Guid.NewGuid().ToString(); SetName(o, newName); } // now, try to set the new assigned name for (int i = 0; i < renameData.ObjectsToRenameCount; ++i) { object o = renameData.GetObjectToRename(i); string newName = renameData.GetNewNameForObject(i); try { SetName(o, newName); } catch (Exception) { renameFailedObjects.Add(o); } } return(renameFailedObjects); }
public MultiRenameParser(MultiRenameData renameData) : base() { _integerTChars = new SortedSet <string>(renameData.GetIntegerShortcuts(), _comparer); _stringTChars = new SortedSet <string>(renameData.GetStringShortcuts(), _comparer); _arrayTChars = new SortedSet <string>(renameData.GetArrayShortcuts(), _comparer); _dateTimeTChars = new SortedSet <string>(renameData.GetDateTimeShortcuts(), _comparer); }
public MultiRenameIntegerElement(MultiRenameData multiRenameData, string shortCut, int numberOfDigits, int offset, int step) : base(multiRenameData, shortCut) { _numberOfDigits = numberOfDigits; _offset = offset; _step = step; _formatString = "D" + numberOfDigits.ToString(); }
public MultiRenameTreeWalker(string sourceText, MultiRenameData data) { _sourceText = sourceText; _renameData = data; var parser = new MultiRenameParser(data); parser.SetSource(_sourceText); bool bMatches = parser.MainSentence(); _tree = parser.GetRoot(); }
public bool InitializeDocument(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is MultiRenameData)) { return(false); } _doc = (MultiRenameData)args[0]; Initialize(true); return(true); }
/// <summary> /// Shows a dialog in which one can rename a list of documents (graphs, worksheets). /// </summary> /// <param name="objectsToRename">The documents to rename.</param> public static void ShowRenameDocumentsDialog(IEnumerable<object> objectsToRename) { var renameData = new Altaxo.Gui.Common.MultiRename.MultiRenameData(); renameData.AddObjectsToRename(objectsToRename); renameData.RegisterListColumn("Full name", Main.Commands.MultiRenameDocuments.GetFullName); renameData.RegisterListColumn("New name", null); renameData.RegisterListColumn("Creation date", Main.Commands.MultiRenameDocuments.GetCreationDateString); Main.Commands.MultiRenameDocuments.RegisterCommonDocumentShortcuts(renameData); renameData.DefaultPatternString = "[N]"; renameData.RegisterRenameActionHandler(RenameDocuments); var controller = new Altaxo.Gui.Common.MultiRename.MultiRenameController(); controller.InitializeDocument(renameData); Current.Gui.ShowDialog(controller, "Rename items"); }
/// <summary> /// Shows a dialog in which one can rename a list of documents (graphs, worksheets). /// </summary> /// <param name="objectsToRename">The documents to rename.</param> public static void ShowRenameDocumentsDialog(IEnumerable <object> objectsToRename) { var renameData = new Altaxo.Gui.Common.MultiRename.MultiRenameData(); renameData.AddObjectsToRename(objectsToRename); renameData.RegisterListColumn("Full name", Main.Commands.MultiRenameDocuments.GetFullName); renameData.RegisterListColumn("New name", null); renameData.RegisterListColumn("Creation date", Main.Commands.MultiRenameDocuments.GetCreationDateString); Main.Commands.MultiRenameDocuments.RegisterCommonDocumentShortcuts(renameData); renameData.DefaultPatternString = "[N]"; renameData.RegisterRenameActionHandler(RenameDocuments); var controller = new Altaxo.Gui.Common.MultiRename.MultiRenameController(); controller.InitializeDocument(renameData); Current.Gui.ShowDialog(controller, "Rename items"); }
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 = (GraphDocument)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> /// 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"); }
public MyNode(MultiRenameData data, int idx) : base(data.ColumnsOfObjectInformation[0].Value(data.GetObjectToRename(idx)), idx) { _data = data; }
public MultiRenameBaseElement(MultiRenameData multiRenameData, string shortCut) { _renameData = multiRenameData; _shortCut = shortCut; }
public bool InitializeDocument(params object[] args) { if (args == null || args.Length == 0 || !(args[0] is MultiRenameData)) return false; _doc = (MultiRenameData)args[0]; Initialize(true); return true; }
public MultiRenameStringElement(MultiRenameData multiRenameData, string shortCut, int start, int last) : base(multiRenameData, shortCut) { _start = start; _last = last; }
/// <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.Gdi.GraphDocument> documents) { MultiRenameData 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]"; MultiRenameController mrController = new MultiRenameController(); mrController.InitializeDocument(mrData); Current.Gui.ShowDialog(mrController, "Export multiple graphs"); }