/// <summary> /// Goes through all file/document type definitions and returns a filter string /// object that can be used in conjunction with FileOpen and FileSave dialog filters. /// </summary> /// <param name="key">Get entries for this viewmodel only, /// or all entries if key parameter is not set.</param> /// <returns>Allways returns at least one default file pattern ".*"</returns> public IFileFilterEntries GetFileFilterEntries(string key = "") { // Retrieve all items in order of the sort criteria SortedList <int, IFileFilterEntry> ret = new SortedList <int, IFileFilterEntry>(); if (this.mDocumentTypes != null) { foreach (var item in this.mDocumentTypes) { if (key == string.Empty || key == item.Key) { // format filter entry like "Structured Query Language (*.sql) |*.sql" var s = new FileFilterEntry(string.Format("{0} (*.{1}) |*.{2}", item.FileFilterName, item.DefaultFilter, item.DefaultFilter) ////, item.FileOpenMethod ); ret.Add(item.SortPriority, s); // Add all file sub-filters for this viewmodel class item.GetFileFilterEntries(ret ////, item.FileOpenMethod ); } } } // Convert sorted items into final sorted list representation if (ret.Count == 0) { ret.Add(0, new FileFilterEntry(string.Format("{0} (*.{1}) |*.{2}", "All files", "*", "*"))); } return(new FileFilterEntries(ret.Values.ToList())); }
public void GetFileFilterEntries(SortedList <int, IFileFilterEntry> ret //// , FileOpenDelegate fileOpenMethod ) { // No file types (extensions) to add below this type if (this.FileTypeExtensions == null) { return; } foreach (var item in this.FileTypeExtensions) { string ext = string.Empty, ext1 = string.Empty; if (item.DocFileTypeExtensions.Count <= 0) { continue; } ext = ext1 = string.Format("*.{0}", item.DocFileTypeExtensions[0]); for (int i = 1; i < item.DocFileTypeExtensions.Count; i++) { ext = string.Format("{0},*.{1}", ext, item.DocFileTypeExtensions[i]); ext1 = string.Format("{0};*.{1}", ext1, item.DocFileTypeExtensions[i]); } // log4net XML output (*.log4j,*.log,*.txt,*.xml)|*.log4j;*.log;*.txt;*.xml var filterString = new FileFilterEntry(string.Format("{0} ({1}) |{2}", item.Description, ext, ext1) ////,fileOpenMethod ); ret.Add(item.SortPriority, filterString); } }