void BuildProviderSelectors(IGroupingProvider previousProvider, IGroupingProvider selectedProvider) { var combo = MakeSelector(selectedProvider); combo.SelectionChanged += (sender, e) => { var selectedType = combo.SelectedItem as Type; if (selectedType == null) { return; } var newProvider = (IGroupingProvider)Activator.CreateInstance(selectedType); if (newProvider.SupportsNext && selectedProvider.SupportsNext) { newProvider.Next = selectedProvider.Next; } previousProvider.Next = newProvider; BuildUi(); }; providerPickers.Add(combo); PackStart(combo); if (selectedProvider.SupportsNext) { PackStart(new Label("then by")); BuildProviderSelectors(selectedProvider, selectedProvider.Next); } }
ComboBox MakeSelector(IGroupingProvider selectedProvider) { var combo = new ComboBox(); combo.Items.Add(typeof(NullGroupingProvider), "Nothing"); combo.Items.Add(ItemSeparator.Instance); foreach (var providerType in availableProviders) { var metadata = (GroupingDescriptionAttribute)providerType.GetCustomAttributes(false).FirstOrDefault(attr => attr is GroupingDescriptionAttribute); if (metadata == null) { LoggingService.LogWarning("Grouping provider '{0}' does not have a metadata attribute, ignoring provider.", providerType.FullName); continue; } combo.Items.Add(providerType, metadata.Title); } if (selectedProvider != null) { combo.SelectedItem = selectedProvider.GetType(); } else { combo.SelectedItem = typeof(NullGroupingProvider); } return(combo); }
void BuildProviderSelectors (IGroupingProvider previousProvider, IGroupingProvider selectedProvider) { var combo = MakeSelector (selectedProvider); combo.SelectionChanged += (sender, e) => { var selectedType = combo.SelectedItem as Type; if (selectedType == null) return; var newProvider = (IGroupingProvider)Activator.CreateInstance(selectedType); if (newProvider.SupportsNext && selectedProvider.SupportsNext) { newProvider.Next = selectedProvider.Next; } previousProvider.Next = newProvider; BuildUi (); }; providerPickers.Add (combo); PackStart (combo); if (selectedProvider.SupportsNext) { PackStart (new Label ("then by")); BuildProviderSelectors (selectedProvider, selectedProvider.Next); } }
/// <summary> /// Initializes a new instance of the <see cref="MonoDevelop.CodeIssues.IssueGroup"/> class. /// </summary> /// <param name="sourceProvider">The <see cref="IGroupingProvider"/> that created this group.</param> /// <param name="nextProvider"> /// The <see cref="IGroupingProvider"/> to use when grouping <see cref="IssueSummary"/> instances. /// </param> /// <param name="description">A string describing the contents of this group.</param> public IssueGroup(IGroupingProvider nextProvider, string description) { groupingProvider = nextProvider; Description = description; processingEnabled = false; }
ComboBox MakeSelector (IGroupingProvider selectedProvider) { var combo = new ComboBox (); combo.Items.Add (typeof(NullGroupingProvider), "Nothing"); combo.Items.Add (ItemSeparator.Instance); foreach (var providerType in availableProviders) { var metadata = (GroupingDescriptionAttribute)providerType.GetCustomAttributes (false).FirstOrDefault (attr => attr is GroupingDescriptionAttribute); if (metadata == null) { LoggingService.LogWarning ("Grouping provider '{0}' does not have a metadata attribute, ignoring provider.", providerType.FullName); continue; } combo.Items.Add (providerType, metadata.Title); } if (selectedProvider != null) { combo.SelectedItem = selectedProvider.GetType (); } else { combo.SelectedItem = typeof(NullGroupingProvider); } return combo; }
public GroupingProviderEventArgs(IGroupingProvider provider, IGroupingProvider oldNext) { GroupingProvider = provider; OldNext = oldNext; }
/// <summary> /// Initializes a new instance of the <see cref="MonoDevelop.CodeIssues.IssueGroup"/> class. /// </summary> /// <param name="sourceProvider">The <see cref="IGroupingProvider"/> that created this group.</param> /// <param name="nextProvider"> /// The <see cref="IGroupingProvider"/> to use when grouping <see cref="IssueSummary"/> instances. /// </param> /// <param name="description">A string describing the contents of this group.</param> public IssueGroup (IGroupingProvider nextProvider, string description) { groupingProvider = nextProvider; Description = description; processingEnabled = false; }
public GroupingProviderEventArgs(IGroupingProvider provider, IGroupingProvider oldNext) { GroupingProvider = provider; OldNext = oldNext; }