12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using System;
- using System.Collections.Generic;
-
- namespace XCharts.Runtime
- {
- /// <summary>
- /// The attribute for serie data component.
- /// |可添加到SerieData的组件。
- /// </summary>
- [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
- public sealed class SerieDataComponentAttribute : Attribute
- {
- public readonly List<Type> types = new List<Type>();
-
- public SerieDataComponentAttribute()
- {
- }
- public SerieDataComponentAttribute(Type type1)
- {
- AddType(type1);
- }
- public SerieDataComponentAttribute(Type type1, Type type2)
- {
- AddType(type1);
- AddType(type2);
- }
- public SerieDataComponentAttribute(Type type1, Type type2, Type type3)
- {
- AddType(type1);
- AddType(type2);
- AddType(type3);
- }
- public SerieDataComponentAttribute(Type type1, Type type2, Type type3, Type type4)
- {
- AddType(type1);
- AddType(type2);
- AddType(type3);
- AddType(type4);
- }
- public SerieDataComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5)
- {
- AddType(type1);
- AddType(type2);
- AddType(type3);
- AddType(type4);
- AddType(type5);
- }
- public SerieDataComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6)
- {
- AddType(type1);
- AddType(type2);
- AddType(type3);
- AddType(type4);
- AddType(type5);
- AddType(type6);
- }
- public SerieDataComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7)
- {
- AddType(type1);
- AddType(type2);
- AddType(type3);
- AddType(type4);
- AddType(type5);
- AddType(type6);
- AddType(type7);
- }
-
- private void AddType(Type type)
- {
- if (!SerieData.extraComponentMap.ContainsKey(type))
- throw new ArgumentException("SerieData not support extra component:" + type);
- types.Add(type);
- }
-
- public bool Contains<T>() where T : ISerieComponent
- {
- return Contains(typeof(T));
- }
-
- public bool Contains(Type type)
- {
- return types.Contains(type);
- }
- }
- }
|