protected void CheckComponentDirty(MainComponent component)
 {
     if (component == null)
     {
         return;
     }
     if (component.anyDirty)
     {
         if (component.componentDirty)
         {
             if (component.refreshComponent != null)
             {
                 component.refreshComponent.Invoke();
             }
             else
             {
                 component.handler.InitComponent();
             }
         }
         if (component.vertsDirty)
         {
             if (component.painter != null)
             {
                 RefreshPainter(component.painter);
             }
         }
         component.ClearDirty();
     }
 }
        public bool RemoveChartComponent(Type type, int index = 0)
        {
            MainComponent toRemove = null;

            for (int i = 0; i < m_Components.Count; i++)
            {
                if (m_Components[i].GetType() == type && m_Components[i].index == index)
                {
                    toRemove = m_Components[i];
                    break;
                }
            }
            return(RemoveChartComponent(toRemove));
        }
        private void AddComponent(MainComponent component)
        {
            var type = component.GetType();

            m_Components.Add(component);
            List <MainComponent> list;

            if (!m_ComponentMaps.TryGetValue(type, out list))
            {
                list = new List <MainComponent>();
                m_ComponentMaps[type] = list;
            }
            component.index = list.Count;
            list.Add(component);
        }
 public bool RemoveChartComponent(MainComponent component)
 {
     if (component == null)
     {
         return(false);
     }
     if (m_Components.Remove(component))
     {
         if (component.gameObject != null)
         {
             ChartHelper.SetActive(component.gameObject, false);
         }
         InitComponentHandlers();
         RefreshChart();
         return(true);
     }
     return(false);
 }
        private void CreateComponentHandler(MainComponent component)
        {
            if (!component.GetType().IsDefined(typeof(ComponentHandlerAttribute), false))
            {
                Debug.LogError("MainComponent no Handler:" + component.GetType());
                return;
            }
            var attrubte = component.GetType().GetAttribute <ComponentHandlerAttribute>();

            if (attrubte.handler == null)
            {
                return;
            }

            var handler = (MainComponentHandler)Activator.CreateInstance(attrubte.handler);

            handler.attribute = attrubte;
            handler.chart     = this;
            handler.SetComponent(component);
            component.handler = handler;
            m_ComponentHandlers.Add(handler);
        }
Esempio n. 6
0
        internal static string GetComponentObjectName(MainComponent component)
        {
            Dictionary <int, string> dict;
            var type = component.GetType();

            if (s_ComponentObjectName.TryGetValue(type, out dict))
            {
                string name;
                if (!dict.TryGetValue(component.index, out name))
                {
                    name = GetTypeName(type) + component.index;
                    dict[component.index] = name;
                }
                return(name);
            }
            else
            {
                var name = GetTypeName(type) + component.index;
                dict = new Dictionary <int, string>();
                dict.Add(component.index, name);
                s_ComponentObjectName[type] = dict;
                return(name);
            }
        }
Esempio n. 7
0
 internal abstract void SetComponent(MainComponent component);