示例#1
0
        /// <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);
        }
示例#2
0
            /// <summary>Get the text for column i</summary>
            /// <param name="i">Column index.</param>
            /// <returns></returns>
            public override string SubItemText(int i)
            {
                var fkt = _data.ColumnsOfObjectInformation[i].Value;

                if (null != fkt)
                {
                    return(fkt(_data.GetObjectToRename((int)_tag)));
                }
                else
                {
                    return(_data.GetNewNameForObject((int)_tag));
                }
            }
示例#3
0
			public MyNode(MultiRenameData data, int idx)
				: base(data.ColumnsOfObjectInformation[0].Value(data.GetObjectToRename(idx)), idx)
			{
				_data = data;
			}
示例#4
0
 public MyNode(MultiRenameData data, int idx)
     : base(data.ColumnsOfObjectInformation[0].Value(data.GetObjectToRename(idx)), idx)
 {
     _data = data;
 }
		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;
		}