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);
                }
            }
        }
Beispiel #2
0
 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();
 }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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++;
                }
            }
        }
Beispiel #6
0
        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;
                }
            }
        }
Beispiel #7
0
        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);
                }
            }
        }
Beispiel #8
0
 protected override void OnDisable()
 {
     base.OnDisable();
     ChartHelper.DestoryAllChilds(transform);
 }