Example #1
0
        /// <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");
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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");
        }