diff --git a/main.go b/main.go index 7e0ea35..4d3cb0b 100644 --- a/main.go +++ b/main.go @@ -9,16 +9,22 @@ import ( type MyMainWindow struct { *walk.MainWindow - colors *walk.ScrollView - canvas *walk.ScrollView - properties *walk.ScrollView - pallette Pallette - beads []*BeadColor + colors *walk.ScrollView + canvas *walk.ScrollView + properties *walk.ScrollView + pallette Pallette + beads []*BeadColor + pallette_combo *walk.ComboBox + brand_model []string + serie_combo *walk.ComboBox + serie_model []string + pegboard_combo *walk.ComboBox + pegboard_model []string } const ( AppName string = "BeadImager" - Version string = "0.0.7" + Version string = "0.0.8" CopyRight string = "©2022 Jan Lerking" STD_MESS string = "Ready" UserPath string = "C:\\Users\\janle\\BeadImager" @@ -40,8 +46,7 @@ func main() { log.Println("Pallette created: ", mw.pallette) //LoadBeads(mw) //log.Println("Beads loaded: ", mw.beads) - brand_model := CreateBrandsList(mw) - pallette_combo := new(walk.ComboBox) + mw.brand_model = CreateBrandsList(mw) DD_Pallette := Composite{ Layout: HBox{MarginsZero: true}, @@ -50,18 +55,18 @@ func main() { Text: "Pallette:", }, ComboBox{ - AssignTo: &pallette_combo, - Model: brand_model, + AssignTo: &mw.pallette_combo, + Model: mw.brand_model, OnCurrentIndexChanged: func() { - log.Println("Pallette changed to: ", pallette_combo.Text()) + log.Println("Pallette changed to: ", mw.pallette_combo.Text()) + mw.serie_model = CreateSeriesList(mw) + mw.serie_combo.SetModel(mw.serie_model) + mw.serie_combo.SetEnabled(true) }, }, }, } - serie_model := CreateSeriesList(mw) - serie_combo := new(walk.ComboBox) - DD_Serie := Composite{ Layout: HBox{MarginsZero: true}, Children: []Widget{ @@ -69,10 +74,31 @@ func main() { Text: "Serie:", }, ComboBox{ - AssignTo: &serie_combo, - Model: serie_model, + AssignTo: &mw.serie_combo, + Enabled: false, OnCurrentIndexChanged: func() { - log.Println("Serie changed to: ", serie_combo.Text()) + log.Println("Serie changed to: ", mw.serie_combo.Text()) + mw.pegboard_model = CreatePegboardsList(mw) + mw.pegboard_combo.SetModel(mw.pegboard_model) + mw.pegboard_combo.SetEnabled(true) + }, + }, + }, + } + + //pegboard_model := CreatePegboardsList(mw) + + DD_Pegboard := Composite{ + Layout: HBox{MarginsZero: true}, + Children: []Widget{ + Label{ + Text: "Pegboard:", + }, + ComboBox{ + AssignTo: &mw.pegboard_combo, + Enabled: false, + OnCurrentIndexChanged: func() { + log.Println("Pegboard changed to: ", mw.pegboard_combo.Text()) }, }, }, @@ -93,6 +119,7 @@ func main() { Children: []Widget{ DD_Pallette, DD_Serie, + DD_Pegboard, PushButton{ Text: "Edit Animal", OnClicked: func() {}, diff --git a/pallette.go b/pallette.go index 4d2f5d7..13ac90a 100644 --- a/pallette.go +++ b/pallette.go @@ -70,11 +70,29 @@ type ( } ) +func CreatePegboardsList(mw *MyMainWindow) []string { + pegboards := make([]string, 0) + for _, brand := range mw.pallette.Brands.Brand { + if brand.BrandName == mw.pallette_combo.Text() { + for _, serie := range brand.Series.Serie { + if serie.SerieName == mw.serie_combo.Text() { + for _, pegboard := range serie.Pegboards.Pegboard { + pegboards = append(pegboards, pegboard.Type) + } + } + } + } + } + return pegboards +} + func CreateSeriesList(mw *MyMainWindow) []string { series := make([]string, 0) for _, brand := range mw.pallette.Brands.Brand { - for _, serie := range brand.Series.Serie { - series = append(series, serie.SerieName) + if brand.BrandName == mw.pallette_combo.Text() { + for _, serie := range brand.Series.Serie { + series = append(series, serie.SerieName) + } } } return series diff --git a/pallettes/pallette.xml b/pallettes/pallette.xml index c707bd4..4747a5c 100644 --- a/pallettes/pallette.xml +++ b/pallettes/pallette.xml @@ -6,14 +6,22 @@ Hama + + Mini + Midi - Big + Big 29x29 29 29 + + Small 14x14 + 14 + 14 + @@ -967,6 +975,9 @@ + + Maxi +