From 4ed36abe10e629322078a440ae7071132c65da7a Mon Sep 17 00:00:00 2001 From: sam-anthony Date: Sun, 10 Apr 2022 19:49:06 -0230 Subject: fix bug in building compressor selection widget tree --- compressor/compressor.go | 42 ++++++++++++++++++++++++++++++++- compressor/res/borgwarner/efr/6258.jpg | Bin 0 -> 149631 bytes compressor/res/borgwarner/k/04.jpg | Bin 0 -> 231277 bytes ui.go | 27 ++++++++++++++------- 4 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 compressor/res/borgwarner/efr/6258.jpg create mode 100644 compressor/res/borgwarner/k/04.jpg diff --git a/compressor/compressor.go b/compressor/compressor.go index 940d6fa..fc12f26 100644 --- a/compressor/compressor.go +++ b/compressor/compressor.go @@ -33,10 +33,12 @@ func init() { compressors["Garrett"] = make(map[string]map[string]Compressor) compressors["Garrett"]["G"] = make(map[string]Compressor) compressors["Garrett"]["G"]["25-660"] = garrettG25660() - compressors["BorgWarner"] = make(map[string]map[string]Compressor) compressors["BorgWarner"]["K"] = make(map[string]Compressor) compressors["BorgWarner"]["K"]["03"] = borgwarnerK03() + compressors["BorgWarner"]["K"]["04"] = borgwarnerK04() + compressors["BorgWarner"]["EFR"] = make(map[string]Compressor) + compressors["BorgWarner"]["EFR"]["6258"] = borgwarnerEFR6258() } func Compressors() map[string]map[string]map[string]Compressor { @@ -62,6 +64,44 @@ func garrettG25660() Compressor { } } +func borgwarnerEFR6258() Compressor { + maxFlow, err := mass.NewFlowRate( + mass.Mass{0.50, mass.Kilogram}, + time.Second, + mass.KilogramsPerSecond, + ) + util.Check(err) + return Compressor{ + "BorgWarner EFR6258", + "compressor/res/borgwarner/efr/6258.jpg", + 47, + 455, + 773, + 6, + maxFlow, + 3.8, + } +} + +func borgwarnerK04() Compressor { + maxFlow, err := mass.NewFlowRate( + mass.Mass{0.18, mass.Kilogram}, + time.Second, + mass.KilogramsPerSecond, + ) + util.Check(err) + return Compressor{ + "Borgwarner K04", + "compressor/res/borgwarner/k/04.jpg", + 33, + 712, + 1090, + 2, + maxFlow, + 2.8, + } +} + func borgwarnerK03() Compressor { maxFlow, err := mass.NewFlowRate( mass.Mass{0.13, mass.Kilogram}, diff --git a/compressor/res/borgwarner/efr/6258.jpg b/compressor/res/borgwarner/efr/6258.jpg new file mode 100644 index 0000000..a8288bf Binary files /dev/null and b/compressor/res/borgwarner/efr/6258.jpg differ diff --git a/compressor/res/borgwarner/k/04.jpg b/compressor/res/borgwarner/k/04.jpg new file mode 100644 index 0000000..9c72a6c Binary files /dev/null and b/compressor/res/borgwarner/k/04.jpg differ diff --git a/ui.go b/ui.go index 2631cab..33c682d 100644 --- a/ui.go +++ b/ui.go @@ -279,20 +279,29 @@ var compressorTree []g.Widget func init() { compressors := compressor.Compressors() - for manufacturer := range compressors { - manufacturerNode := g.TreeNode(manufacturer) - for series := range compressors[manufacturer] { - seriesNode := g.TreeNode(series) - for model, c := range compressors[manufacturer][series] { - seriesNode = seriesNode.Layout( - g.Selectable(model).OnClick(func() { + for man := range compressors { + man := man // Manufacturer + var serNodes []g.Widget + for ser := range compressors[man] { + ser := ser // Series + var modNodes []g.Widget + for mod, c := range compressors[man][ser] { + mod := mod // Model + c := c // Compressor + modNodes = append( + modNodes, + g.Selectable(mod).OnClick(func() { go setCompressor(c) }), ) } - manufacturerNode = manufacturerNode.Layout(seriesNode) + serNodes = append( + serNodes, + g.TreeNode(ser).Layout(modNodes...), + ) } - compressorTree = append(compressorTree, manufacturerNode) + manNode := g.TreeNode(man).Layout(serNodes...) + compressorTree = append(compressorTree, manNode) } } -- cgit v1.2.3