Beispiel #1
0
        /// <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()));
        }
Beispiel #2
0
        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);
            }
        }