gochart/chart_parser_spline.go

61 lines
1.3 KiB
Go
Raw Normal View History

package main
import (
"strconv"
"strings"
2017-03-21 18:34:07 +08:00
"github.com/bitly/go-simplejson"
"github.com/zieckey/goini"
)
type SplineChart int
2017-03-16 16:44:58 +08:00
func (c *SplineChart) Parse(ini *goini.INI, file string) (map[string]string, error) {
args := make(map[string]string)
args["ChartType"], _ = ini.Get("ChartType")
args["Title"], _ = ini.Get("Title")
args["SubTitle"], _ = ini.Get("SubTitle")
args["YAxisText"], _ = ini.Get("YAxisText")
args["XAxisNumbers"], _ = ini.Get("XAxisNumbers")
args["ValueSuffix"], _ = ini.Get("ValueSuffix")
2017-03-12 21:51:02 +08:00
args["Height"], _ = ini.Get("Height")
datas := make([]interface{}, 0)
2017-03-16 16:44:58 +08:00
mapkeys, kvmap, err := LoadConfGetOrderMap(file)
if err != nil {
return nil, err
}
for _, key := range mapkeys {
if !strings.HasPrefix(key, DataPrefix) {
continue
}
2017-03-16 16:44:58 +08:00
dd := strings.Split(kvmap[key], ",")
jd := make([]interface{}, 0)
for _, d := range dd {
2017-03-10 19:27:36 +08:00
d = strings.TrimSpace(d)
val, err := strconv.ParseFloat(d, 64)
if err == nil {
jd = append(jd, val)
}
}
json := simplejson.New()
2017-03-16 16:44:58 +08:00
json.Set("name", key[len(DataPrefix):])
json.Set("data", jd)
datas = append(datas, json)
}
json := simplejson.New()
json.Set("DataArray", datas)
b, _ := json.Get("DataArray").Encode()
args["DataArray"] = string(b)
2017-03-21 18:34:07 +08:00
//log.Println(args)
return args, nil
}
func (c *SplineChart) Template() string {
return TemplateSplineHtml
}