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); }
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); } }
internal abstract void SetComponent(MainComponent component);