void LoadValueArray(CategoryData data)
    {
        BarChart bar  = BarObject.GetComponent <BarChart>();
        var      obj  = mParser.GetObject(data.DataObjectName);
        int      size = mParser.GetArraySize(obj);

        if (size < 0) // this is not an array , show warning
        {
            Debug.LogWarning("DataType " + data.DataType + " does not match category " + data.Name);
            return;
        }
        try
        {
            for (int i = 0; i < size; i++)
            {
                double val   = ParseItem(mParser.GetItem(obj, i), null);
                string group = bar.DataSource.GetGroupName(i);
                bar.DataSource.SetValue(data.Name, group, val);
            }
        }
        catch (Exception e)
        {
            Debug.LogWarning("Data for category " + data.Name + " does not match the specified format. Ended with exception : " + e.ToString());
        }
    }
    void LoadObjectforEachElement()
    {
        PieChart pie = PieObject.GetComponent <PieChart>();
        var      obj = mParser.GetObject(ParentObject);

        pie.DataSource.Clear();
        int i = 0;

        foreach (var pair in mParser.GetAllChildObjects(obj))
        {
            int    visualIndex = Math.Min(i, mCategoryVisualStyle.Length - 1);
            object visualStyle = mCategoryVisualStyle[visualIndex];
            pie.DataSource.AddCategory(pair.Key, null);
            pie.DataSource.RestoreCategory(pair.Key, visualStyle);
            double val = ParseItem(mParser.ObjectValue(pair.Value), null);
            pie.DataSource.SetValue(pair.Key, val);
            i++;
        }
    }
示例#3
0
    void LoadArrayForEachElement(CategoryData data)
    {
        GraphChartBase graph = GraphObject.GetComponent <GraphChartBase>();

        if (mParser.SetPathRelativeTo(data.ParentObjectName) == false)
        {
            Debug.LogWarning("Object " + data.ParentObjectName + " does not exist in the document");
            return;
        }
        var    xObj    = mParser.GetObject(data.XDataObjectName);
        var    yObj    = mParser.GetObject(data.YDataObjectName);
        object sizeObj = null;

        if (String.IsNullOrEmpty(data.SizeDataObjectName) == false)
        {
            sizeObj = mParser.GetObject(data.SizeDataObjectName);
        }
        int length = Math.Min(mParser.GetArraySize(xObj), mParser.GetArraySize(yObj));

        if (sizeObj != null)
        {
            length = Math.Min(length, mParser.GetArraySize(sizeObj));
        }
        try
        {
            for (int i = 0; i < length; i++)
            {
                double x         = ParseItem(mParser.GetItem(xObj, i), data.XDateFormat);
                double y         = ParseItem(mParser.GetItem(yObj, i), data.YDateFormat);
                double pointSize = -1;
                if (sizeObj != null)
                {
                    pointSize = double.Parse(mParser.GetItem(sizeObj, i));
                }
                graph.DataSource.AddPointToCategory(data.Name, x, y, pointSize);
            }
        }
        catch (Exception e)
        {
            Debug.LogWarning("Data for category " + data.Name + " does not match the specified format. Ended with exception : " + e.ToString());
        }
    }