Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
			}
		}
Ejemplo n.º 4
0
 /// <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;
		}
Ejemplo n.º 7
0
		/// <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;
 }