private void BuildSectionsTree(ISettingsService settings) { Dictionary<string, SectionViewModel> sectionsTemp = new Dictionary<string, SectionViewModel>(); Dictionary<string, string> sectionParents = new Dictionary<string, string>(); foreach (IdentifierInfo identifier in _displayConfiguration.Identifiers) { SectionViewModel svm = null; if (!sectionsTemp.TryGetValue(identifier.Name, out svm)) { sectionParents[identifier.Name] = identifier.Parent; svm = new SectionViewModel(identifier); sectionsTemp.Add(svm.Identifier, svm); } foreach (SettingInfo info in identifier.Settings) { SettingItem setting = settings.GetSetting(info.CreateSettingKey()); svm.Add(info, setting); } } _sections = new List<GroupedSectionViewModel>(); // Create hierarchy, starting with the sections that don't have parents foreach (var kvp in sectionParents.OrderBy(k => k.Value)) { SectionViewModel section = sectionsTemp.FirstOrDefault(s => s.Key == kvp.Key).Value; string parentName = kvp.Value; bool hasParent = (parentName != null); // Create group for this item GroupedSectionViewModel group = new GroupedSectionViewModel(section); if (hasParent) { // Find parent group // TODO: If there is no parent group, create a dummy group GroupedSectionViewModel parentGroup = GetAllSections().FirstOrDefault(s => s.Identifier == parentName); if (parentGroup == null) { // Create a dummy group parentGroup = new GroupedSectionViewModel(null); parentGroup.Identifier = parentName; parentGroup.Header = parentName; _sections.Add(parentGroup); } parentGroup.Children.Add(group); } else { _sections.Add(group); } } // Always select the "Shared" section _sections.First(s => s.Identifier == SectionNameShared).IsSelected = true; ICollectionView view = CollectionViewSource.GetDefaultView(_sections); view.SortDescriptions.Add(new SortDescription("Header", ListSortDirection.Ascending)); view.SortDescriptions.Add(new SortDescription("Order", ListSortDirection.Ascending)); }
private void BuildSectionsTree(ISettingsService settings) { Dictionary <string, SectionViewModel> sectionsTemp = new Dictionary <string, SectionViewModel>(); Dictionary <string, string> sectionParents = new Dictionary <string, string>(); foreach (IdentifierInfo identifier in _displayConfiguration.Identifiers) { SectionViewModel svm = null; if (!sectionsTemp.TryGetValue(identifier.Name, out svm)) { sectionParents[identifier.Name] = identifier.Parent; svm = new SectionViewModel(identifier); sectionsTemp.Add(svm.Identifier, svm); } foreach (SettingInfo info in identifier.Settings) { SettingItem setting = settings.GetSetting(info.CreateSettingKey()); svm.Add(info, setting); } } _sections = new List <GroupedSectionViewModel>(); // Create hierarchy, starting with the sections that don't have parents foreach (var kvp in sectionParents.OrderBy(k => k.Value)) { SectionViewModel section = sectionsTemp.FirstOrDefault(s => s.Key == kvp.Key).Value; string parentName = kvp.Value; bool hasParent = (parentName != null); // Create group for this item GroupedSectionViewModel group = new GroupedSectionViewModel(section); if (hasParent) { // Find parent group // TODO: If there is no parent group, create a dummy group GroupedSectionViewModel parentGroup = GetAllSections().FirstOrDefault(s => s.Identifier == parentName); if (parentGroup == null) { // Create a dummy group parentGroup = new GroupedSectionViewModel(null); parentGroup.Identifier = parentName; parentGroup.Header = parentName; _sections.Add(parentGroup); } parentGroup.Children.Add(group); } else { _sections.Add(group); } } // Always select the "Shared" section _sections.First(s => s.Identifier == SectionNameShared).IsSelected = true; ICollectionView view = CollectionViewSource.GetDefaultView(_sections); view.SortDescriptions.Add(new SortDescription("Header", ListSortDirection.Ascending)); view.SortDescriptions.Add(new SortDescription("Order", ListSortDirection.Ascending)); }
private void BuildSectionsTree() { Dictionary<string, SectionViewModel> sectionsTemp = new Dictionary<string, SectionViewModel>(); Dictionary<string, string> sectionParents = new Dictionary<string, string>(); foreach (SettingDescriptor descriptor in _manager) { SectionViewModel svm = null; if (!sectionsTemp.TryGetValue(descriptor.Identifier, out svm)) { IdentifierInfo identifier = _displayConfiguration.GetIdentifier(descriptor.Identifier); sectionParents[identifier.Name] = identifier.Parent; svm = new SectionViewModel(identifier); svm.Identifier = descriptor.Identifier; sectionsTemp.Add(svm.Identifier, svm); } SettingInfo setting = _displayConfiguration.GetSetting(descriptor.Identifier, descriptor.SettingItem.Name); if (setting == null) { Logger.Instance.LogFormat(LogType.Warning, this, Properties.Resources.SettingNotFoundInDisplayConfiguration, descriptor.SettingItem.Name, descriptor.Identifier); continue; } svm.Add(descriptor, setting); } _sections = new List<GroupedSectionViewModel>(); // Create hierarchy, starting with the sections that don't have parents foreach (var kvp in sectionParents.OrderBy(k => k.Value)) { SectionViewModel section = sectionsTemp.FirstOrDefault(s => s.Key == kvp.Key).Value; string parentName = kvp.Value; bool hasParent = (parentName != null); // Create group for this item GroupedSectionViewModel group = new GroupedSectionViewModel(section); if (hasParent) { // Find parent group // TODO: If there is no parent group, create a dummy group GroupedSectionViewModel parentGroup = GetAllSections().FirstOrDefault(s => s.Identifier == parentName); if (parentGroup == null) { // Create a dummy group parentGroup = new GroupedSectionViewModel(null); parentGroup.Identifier = parentName; parentGroup.Header = parentName; _sections.Add(parentGroup); } parentGroup.Children.Add(group); } else { _sections.Add(group); } } // Always select the "Shared" section _sections.First(s => s.Identifier == SectionNameShared).IsSelected = true; // Apply sorting ICollectionView view = CollectionViewSource.GetDefaultView(this.Sections); view.SortDescriptions.Add(new SortDescription("Order", ListSortDirection.Ascending)); view.SortDescriptions.Add(new SortDescription("Header", ListSortDirection.Ascending)); }