private void InitSerieLabel() { var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, chartAnchorMin, chartAnchorMax, chartPivot, new Vector2(chartWidth, chartHeight)); ChartHelper.DestoryAllChilds(labelObject.transform); int count = 0; for (int i = 0; i < m_Series.Count; i++) { var serie = m_Series.series[i]; if (serie.type != SerieType.Pie) { continue; } for (int j = 0; j < serie.data.Count; j++) { var serieData = serie.data[j]; var textName = s_SerieLabelObjectName + "_" + i + "_" + j + "_" + serieData.name; var color = (serie.label.position == SerieLabel.Position.Inside) ? Color.white : (Color)m_ThemeInfo.GetColor(count++); var anchorMin = new Vector2(0.5f, 0.5f); var anchorMax = new Vector2(0.5f, 0.5f); var pivot = new Vector2(0.5f, 0.5f); serieData.label = ChartHelper.AddTextObject(textName, labelObject.transform, m_ThemeInfo.font, color, TextAnchor.MiddleCenter, anchorMin, anchorMax, pivot, new Vector2(50, serie.label.fontSize), serie.label.fontSize); serieData.label.text = serieData.name; ChartHelper.SetActive(serieData.label.gameObject, false); } } }
protected override void Reset() { ChartHelper.DestoryAllChilds(transform); m_ThemeInfo = ThemeInfo.Default; m_Title = Title.defaultTitle; m_Legend = Legend.defaultLegend; m_Tooltip = Tooltip.defaultTooltip; m_Series = Series.defaultSeries; Awake(); }
protected override void Reset() { var sizeDelta = rectTransform.sizeDelta; if (sizeDelta.x < 580 && sizeDelta.y < 300) { rectTransform.sizeDelta = new Vector2(580, 300); } ChartHelper.DestoryAllChilds(transform); m_ThemeInfo = ThemeInfo.Default; m_Title = Title.defaultTitle; m_Legend = Legend.defaultLegend; m_Tooltip = Tooltip.defaultTooltip; m_Series = Series.defaultSeries; Awake(); }
private void InitSerieLabel() { var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, chartAnchorMin, chartAnchorMax, chartPivot, new Vector2(chartWidth, chartHeight)); ChartHelper.DestoryAllChilds(labelObject.transform); int count = 0; for (int i = 0; i < m_Series.Count; i++) { var serie = m_Series.list[i]; for (int j = 0; j < serie.data.Count; j++) { var serieData = serie.data[j]; if (!serie.label.show && j > 100) { continue; } var textName = s_SerieLabelObjectName + "_" + i + "_" + j + "_" + serieData.name; var color = Color.grey; if (serie.type == SerieType.Pie) { color = (serie.label.position == SerieLabel.Position.Inside) ? Color.white : (Color)m_ThemeInfo.GetColor(count); } else { color = serie.label.color != Color.clear ? serie.label.color : (Color)m_ThemeInfo.GetColor(i); } var backgroundColor = serie.label.backgroundColor; var labelObj = ChartHelper.AddSerieLabel(textName, labelObject.transform, m_ThemeInfo.font, color, backgroundColor, serie.label.fontSize, serie.label.fontStyle, serie.label.rotate, serie.label.backgroundWidth, serie.label.backgroundHeight); var iconObj = ChartHelper.AddIcon("Icon", labelObj.transform, serieData.iconWidth, serieData.iconHeight); serieData.SetIconObj(iconObj); var isAutoSize = serie.label.backgroundWidth == 0 || serie.label.backgroundHeight == 0; serieData.InitLabel(labelObj, isAutoSize, serie.label.paddingLeftRight, serie.label.paddingTopBottom); serieData.SetLabelActive(false); serieData.SetLabelText(serieData.name); count++; } } }
private void InitSerieLabel() { var labelObject = ChartHelper.AddObject(s_SerieLabelObjectName, transform, chartAnchorMin, chartAnchorMax, chartPivot, new Vector2(chartWidth, chartHeight)); ChartHelper.DestoryAllChilds(labelObject.transform); int count = 0; for (int i = 0; i < m_Series.Count; i++) { var serie = m_Series.series[i]; if (serie.type != SerieType.Pie && serie.type != SerieType.Line) { continue; } if (serie.type != SerieType.Pie && !serie.label.show) { continue; } for (int j = 0; j < serie.data.Count; j++) { var serieData = serie.data[j]; var textName = s_SerieLabelObjectName + "_" + i + "_" + j + "_" + serieData.name; var color = Color.grey; if (serie.type == SerieType.Pie) { color = (serie.label.position == SerieLabel.Position.Inside) ? Color.white : (Color)m_ThemeInfo.GetColor(count); } else { color = serie.label.color != Color.clear ? serie.label.color : (Color)m_ThemeInfo.GetColor(i); } var backgroundColor = serie.label.backgroundColor; var labelObj = ChartHelper.AddSerieLabel(textName, labelObject.transform, m_ThemeInfo.font, color, backgroundColor, serie.label.fontSize, serie.label.fontStyle); serieData.label = labelObj.GetComponentInChildren <Text>(); serieData.labelImage = labelObj.GetComponent <Image>(); serieData.labelRect = labelObj.GetComponent <RectTransform>(); serieData.SetLabelActive(false); serieData.SetLabelText(serieData.name); count++; } } }
void InitModuleButton() { var btnPanel = transform.Find("chart_list"); m_BtnClone = transform.Find("btn_clone").gameObject; m_BtnClone.SetActive(false); ChartHelper.DestoryAllChilds(btnPanel); foreach (var module in m_ChartModule) { var btnName = "btn_" + module.name; GameObject btn; if (btnPanel.Find(btnName)) { btn = btnPanel.Find(btnName).gameObject; btn.SetActive(true); } else { btn = GameObject.Instantiate(m_BtnClone); btn.SetActive(true); btn.name = btnName; btn.transform.SetParent(btnPanel); btn.transform.localPosition = Vector3.zero; } btn.transform.localScale = Vector3.one; module.button = btn.GetComponent <Button>(); module.button.GetComponentInChildren <Text>().text = module.name; ChartHelper.AddEventListener(btn.gameObject, EventTriggerType.PointerDown, (data) => { ClickModule(module); }); } for (int i = 0; i < m_ChartModule.Count; i++) { var module = m_ChartModule[i]; if (module.select) { ClickModule(module); m_LastSelectedModuleIndex = i; break; } } }
private void InitLegend() { m_Legend.OnChanged(); TextAnchor anchor = m_Legend.location.textAnchor; Vector2 anchorMin = m_Legend.location.anchorMin; Vector2 anchorMax = m_Legend.location.anchorMax; Vector2 pivot = m_Legend.location.pivot; var legendObject = ChartHelper.AddObject(s_LegendObjectName, transform, anchorMin, anchorMax, pivot, new Vector2(chartWidth, chartHeight)); legendObject.transform.localPosition = m_Legend.location.GetPosition(chartWidth, chartHeight); ChartHelper.DestoryAllChilds(legendObject.transform); if (!m_Legend.show) { return; } var serieNameList = m_Series.GetSerieNameList(); List <string> datas; if (m_Legend.data.Count > 0) { datas = new List <string>(); for (int i = 0; i < m_Legend.data.Count; i++) { var category = m_Legend.data[i]; if (serieNameList.Contains(category)) { datas.Add(category); } } } else { datas = serieNameList; } m_Legend.RemoveButton(); for (int i = 0; i < datas.Count; i++) { string legendName = datas[i]; Button btn = ChartHelper.AddButtonObject(s_LegendObjectName + "_" + i + "_" + legendName, legendObject.transform, m_ThemeInfo.font, m_Legend.itemFontSize, m_ThemeInfo.legendTextColor, anchor, anchorMin, anchorMax, pivot, new Vector2(m_Legend.itemWidth, m_Legend.itemHeight)); var bgColor = IsActiveByLegend(legendName) ? m_ThemeInfo.GetColor(i) : m_ThemeInfo.legendUnableColor; m_Legend.SetButton(legendName, btn, datas.Count); m_Legend.UpdateButtonColor(legendName, bgColor); btn.GetComponentInChildren <Text>().text = legendName; ChartHelper.ClearEventListener(btn.gameObject); ChartHelper.AddEventListener(btn.gameObject, EventTriggerType.PointerDown, (data) => { if (data.selectedObject == null || m_Legend.selectedMode == Legend.SelectedMode.None) { return; } var temp = data.selectedObject.name.Split('_'); string selectedName = temp[2]; int clickedIndex = int.Parse(temp[1]); if (m_Legend.selectedMode == Legend.SelectedMode.Multiple) { OnLegendButtonClick(clickedIndex, selectedName, !IsActiveByLegend(selectedName)); } else { var btnList = m_Legend.buttonList.Values.ToArray(); for (int n = 0; n < btnList.Length; n++) { temp = btnList[n].name.Split('_'); selectedName = temp[2]; var index = int.Parse(temp[1]); OnLegendButtonClick(n, selectedName, index == clickedIndex ? true : false); } } }); ChartHelper.AddEventListener(btn.gameObject, EventTriggerType.PointerEnter, (data) => { if (btn == null) { return; } var temp = btn.name.Split('_'); string selectedName = temp[2]; int index = int.Parse(temp[1]); OnLegendButtonEnter(index, selectedName); }); ChartHelper.AddEventListener(btn.gameObject, EventTriggerType.PointerExit, (data) => { if (btn == null) { return; } var temp = btn.name.Split('_'); string selectedName = temp[2]; int index = int.Parse(temp[1]); OnLegendButtonExit(index, selectedName); }); } if (m_Legend.selectedMode == Legend.SelectedMode.Single) { for (int n = 0; n < datas.Count; n++) { OnLegendButtonClick(n, datas[n], n == 0 ? true : false); } } }
protected override void OnDisable() { base.OnDisable(); ChartHelper.DestoryAllChilds(transform); }