diff --git a/color.go b/color.go index e096e29..f7b7ece 100644 --- a/color.go +++ b/color.go @@ -17,15 +17,19 @@ type ( info *walk.ImageView warning *walk.ImageView Brand string - Series []string + Series []*Serie Weight []int Name string ColorID int Red byte Green byte Blue byte - inStock bool - onHand int + } + + Serie struct { + Name string + inStock bool + onHand int } ) @@ -34,7 +38,7 @@ func ShowBeads(mw *MyMainWindow, serie string) { for _, bead := range mw.beads { bead.Color.SetVisible(false) for _, s := range bead.Series { - if s == serie { + if s.Name == serie { bead.Color.SetVisible(true) } } @@ -65,30 +69,37 @@ func LoadBeads(mw *MyMainWindow) { for _, bead := range brand.Colors { log.Println("Loading bead: " + bead.ColorName + " ...") if !bead.Disabled { - bc := NewBeadColor(mw, bead.ColorName, bead.ColorIndex, bead.OnHand, bead.Red, bead.Green, bead.Blue) - bc.Series = bead.Series.Serie + bc := NewBeadColor(mw, bead.ColorName, bead.ColorIndex, bead.Red, bead.Green, bead.Blue) + for _, s := range bead.Series.Serie { + se := new(Serie) + se.Name = s.Name + se.inStock = s.InStock + se.onHand = s.OnHand + bc.Series = append(bc.Series, se) + bc.InfoTooltip.SetText(bc.info, "Approx. "+fmt.Sprint(se.onHand)+" left on hand") + bc.WarningTooltip.SetText(bc.warning, "Only "+fmt.Sprint(se.onHand)+" left on hand") + if se.onHand <= 200 { + bc.warning.SetVisible(true) + bc.info.SetVisible(false) + } else { + bc.warning.SetVisible(false) + bc.info.SetVisible(true) + } + } bc.Brand = brand.BrandName bc.Name = bead.ColorName bc.ColorID = bead.ColorIndex bc.Red = bead.Red bc.Green = bead.Green bc.Blue = bead.Blue - bc.inStock = bead.InStock mw.beads = append(mw.beads, bc) - if bead.OnHand <= 200 { - bc.warning.SetVisible(true) - bc.info.SetVisible(false) - } else { - bc.warning.SetVisible(false) - bc.info.SetVisible(true) - } } } } } } -func NewBeadColor(mw *MyMainWindow, name string, id int, onhand int, red byte, green byte, blue byte) *BeadColor { +func NewBeadColor(mw *MyMainWindow, name string, id int, red byte, green byte, blue byte) *BeadColor { var err error log.Println("Creating bead color: " + name + " ...") cm, _ := walk.NewComposite(mw.colors) @@ -100,7 +111,6 @@ func NewBeadColor(mw *MyMainWindow, name string, id int, onhand int, red byte, g color.Color = cm log.Println("Bead color struct: ", color) color.SetBackgroundColor(walk.RGB(red, green, blue)) - color.onHand = onhand log.Println("Creating checkbox") color.Checkbox, err = walk.NewCheckBox(cm) if err != nil { @@ -120,7 +130,6 @@ func NewBeadColor(mw *MyMainWindow, name string, id int, onhand int, red byte, g color.InfoTooltip.SetInfoTitle(name + " - " + fmt.Sprint(id)) color.info.SetImage(walk.IconInformation()) color.InfoTooltip.AddTool(color.info) - color.InfoTooltip.SetText(color.info, "Approx. "+fmt.Sprint(color.onHand)+" left on hand") color.info.SetVisible(false) color.warning, err = walk.NewImageView(cm) if err != nil { @@ -131,7 +140,6 @@ func NewBeadColor(mw *MyMainWindow, name string, id int, onhand int, red byte, g color.WarningTooltip.SetWarningTitle(name + " - " + fmt.Sprint(id)) color.warning.SetImage(walk.IconWarning()) color.WarningTooltip.AddTool(color.warning) - color.WarningTooltip.SetText(color.warning, "Only "+fmt.Sprint(color.onHand)+" left on hand") color.warning.SetVisible(false) lbl, _ := walk.NewLabel(cm) @@ -145,16 +153,30 @@ func (bc *BeadColor) SetBackgroundColor(col walk.Color) { bc.backgroundColor, _ = walk.NewSolidColorBrush(col) } -func (bc *BeadColor) GetOnHand() int { - return bc.onHand +func (bc *BeadColor) GetOnHand(serie string) int { + for _, s := range bc.Series { + if s.Name == serie { + return s.onHand + } + } + return 0 } -func (bc *BeadColor) GetInStock() bool { - return bc.inStock +func (bc *BeadColor) GetInStock(serie string) bool { + for _, s := range bc.Series { + if s.Name == serie { + return s.inStock + } + } + return false } -func (bc *BeadColor) SetInStock(inStock bool) { - bc.inStock = inStock +func (bc *BeadColor) SetInStock(serie string, inStock bool) { + for _, s := range bc.Series { + if s.Name == serie { + s.inStock = inStock + } + } } func (bc *BeadColor) GetColorID() int { diff --git a/main.go b/main.go index 63ad392..182a5a8 100644 --- a/main.go +++ b/main.go @@ -30,7 +30,7 @@ type MyMainWindow struct { const ( AppName string = "BeadImager" - Version string = "0.2.3" + Version string = "0.2.4" CopyRight string = "©2022 Jan Lerking" STD_MESS string = "Ready" LogFile string = "BeadImager.log" diff --git a/pallette.go b/pallette.go index 05c4b91..4af4539 100644 --- a/pallette.go +++ b/pallette.go @@ -36,7 +36,12 @@ type ( Colorstruct struct { Series struct { XMLName xml.Name `xml:"series"` - Serie []string `xml:"serie"` + Serie []struct { + XMLName xml.Name `xml:"serie"` + Name string `xml:"name,attr"` + InStock bool `xml:"inStock"` + OnHand int `xml:"onHand"` + } } ColorIndex int `xml:"colorIndex,attr"` ColorName string `xml:"colorname"` @@ -50,8 +55,6 @@ type ( IsNeutral bool `xml:"isNeutral"` IsGrayscale bool `xml:"isGrayscale"` Disabled bool `xml:"disabled"` - InStock bool `xml:"inStock"` - OnHand int `xml:"onHand"` } Pegboards struct { diff --git a/pallettes/pallette.xml b/pallettes/pallette.xml index a2fff13..f502e5e 100644 --- a/pallettes/pallette.xml +++ b/pallettes/pallette.xml @@ -43,9 +43,18 @@ - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + White H01 @@ -58,13 +67,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Creme H02 @@ -77,14 +90,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Yellow H03 @@ -97,13 +117,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Orange H04 @@ -116,14 +140,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Red H05 @@ -136,13 +167,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Pink H06 @@ -155,14 +190,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Purple H07 @@ -175,13 +217,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Blue H08 @@ -194,14 +240,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Light blue H09 @@ -214,14 +267,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Green H10 @@ -234,13 +294,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Light green H11 @@ -253,13 +317,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Brown H12 @@ -272,13 +340,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent red H13 @@ -291,13 +363,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent yellow H14 @@ -310,13 +386,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent blue H15 @@ -329,13 +409,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent green H16 @@ -348,14 +432,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Grey H17 @@ -368,14 +459,21 @@ true true false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Black H18 @@ -388,13 +486,17 @@ true true false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Clear H19 @@ -407,14 +509,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Red brown H20 @@ -427,13 +536,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Light brown H21 @@ -446,13 +559,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Dark red H22 @@ -465,13 +582,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent purple H24 @@ -484,12 +605,13 @@ false false false - true - 100 - Midi + + true + 100 + Translucent brown H25 @@ -502,14 +624,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Flesh H26 @@ -522,13 +651,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Beige H27 @@ -541,13 +674,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Dark green H28 @@ -560,13 +697,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Rapsberry H29 @@ -579,13 +720,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Burgrundy H30 @@ -598,13 +743,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Turquoise H31 @@ -617,14 +766,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Neon Fuchsia H32 @@ -637,13 +793,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Fluorescent cerise H33 @@ -656,14 +816,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Neon yellow H34 @@ -676,14 +843,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Neon red H35 @@ -696,14 +870,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Neon blue H36 @@ -716,14 +897,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Neon green H37 @@ -736,14 +924,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Neon orange H38 @@ -756,12 +951,13 @@ false false false - true - 100 - Midi + + true + 100 + Fluorescent yellow H39 @@ -774,12 +970,13 @@ false false false - true - 100 - Midi + + true + 100 + Fluorescent orange H40 @@ -792,12 +989,13 @@ false false false - true - 100 - Midi + + true + 100 + Fluroescent blue H41 @@ -810,13 +1008,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Flourecent green H42 @@ -829,14 +1031,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Pastel yellow H43 @@ -849,14 +1058,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Pastel coral H44 @@ -869,14 +1085,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Pastel purple H45 @@ -889,14 +1112,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Pastel blue H46 @@ -909,14 +1139,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + pastel green H47 @@ -929,14 +1166,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + pastel pink H48 @@ -949,13 +1193,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Azure H49 @@ -968,12 +1216,13 @@ true false false - true - 100 - Midi + + true + 100 + Flourecent green H55 @@ -986,12 +1235,13 @@ false false false - true - 500 - Midi + + true + 100 + Flourecent red H56 @@ -1004,12 +1254,13 @@ false false false - true - 500 - Midi + + true + 100 + Flourecent blue H57 @@ -1022,13 +1273,17 @@ false false false - true - 500 - Mini - Midi + + true + 100 + + + true + 100 + Teddybear brown H60 @@ -1041,12 +1296,13 @@ true false false - true - 100 - Midi + + true + 100 + Gold H61 @@ -1059,12 +1315,13 @@ false false false - true - 100 - Midi + + true + 100 + Silver H62 @@ -1077,12 +1334,13 @@ false false false - true - 500 - Midi + + true + 100 + Bronze H63 @@ -1095,12 +1353,13 @@ false false false - true - 100 - Midi + + true + 100 + Pearl H64 @@ -1113,14 +1372,21 @@ false false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Light grey H70 @@ -1133,13 +1399,17 @@ true true false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Dark grey H71 @@ -1152,13 +1422,17 @@ true true false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent pink H72 @@ -1171,13 +1445,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent aqua H73 @@ -1190,13 +1468,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Translucent lilac H74 @@ -1209,13 +1491,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Tan H75 @@ -1228,13 +1514,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Nougat H76 @@ -1247,13 +1537,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Cloudy white H77 @@ -1266,13 +1560,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Light peach H78 @@ -1285,14 +1583,21 @@ true false false - true - 100 - Mini - Midi - Maxi + + true + 100 + + + true + 100 + + + true + 100 + Apricot H79 @@ -1305,13 +1610,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Plum H82 @@ -1324,13 +1633,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Petrol Blue H83 @@ -1343,13 +1656,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Olive H84 @@ -1362,13 +1679,17 @@ true false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Pastel rosa H95 @@ -1381,13 +1702,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Pastel lilac H96 @@ -1400,13 +1725,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Pastel ice blue H97 @@ -1419,13 +1748,17 @@ false false false - true - 100 - Mini - Midi + + true + 100 + + + true + 100 + Pastel mint H98 @@ -1438,8 +1771,6 @@ false false false - true - 100