summaryrefslogtreecommitdiff
path: root/generateGui.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-16 09:21:53 -0500
committerJeff Carr <[email protected]>2025-09-16 09:21:53 -0500
commitf1d297f4ffd40fab0ed22194afa17cb97cf50e85 (patch)
treeb9520cb5e3d5648f289ce58b230838f232b78217 /generateGui.go
parent04b9d93615151bb888992a3bfb59a11fc58febcd (diff)
builds
Diffstat (limited to 'generateGui.go')
-rw-r--r--generateGui.go104
1 files changed, 24 insertions, 80 deletions
diff --git a/generateGui.go b/generateGui.go
index 8f344c4..6740a67 100644
--- a/generateGui.go
+++ b/generateGui.go
@@ -157,15 +157,21 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " return t")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
- fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddStringFunc(title string, f func(*"+FRUIT+") string) *"+FRUIT+"StringFunc {")
+ fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddStringFunc(title string, f func(*"+FRUIT+") string) *"+FRUIT+"AnyFunc {")
fmt.Fprintln(w, " t.pb.Order = append(t.pb.Order, title)")
fmt.Fprintln(w, "")
- fmt.Fprintln(w, " sf := new("+FRUIT+"StringFunc)")
+ fmt.Fprintln(w, " sf := new("+FRUIT+"AnyFunc)")
fmt.Fprintln(w, " sf.title = title")
- fmt.Fprintln(w, " sf.f = f")
+ fmt.Fprintln(w, " sf.f = func(x *"+FRUIT+") any {")
+ fmt.Fprintln(w, " return f(x)")
+ fmt.Fprintln(w, " }")
fmt.Fprintln(w, " sf.order = t.order")
+ fmt.Fprintln(w, " sf.attr = new(guipb.ColAttr)")
+ fmt.Fprintln(w, " sf.attr.Width = int32(sf.Width)")
+ fmt.Fprintln(w, " sf.attr.Type = guipb.ColAttr_STRING")
+ fmt.Fprintln(w, "")
fmt.Fprintln(w, " t.order += 1")
- fmt.Fprintln(w, " t.stringFuncs = append(t.stringFuncs, sf)")
+ fmt.Fprintln(w, " t.anyFuncs = append(t.anyFuncs, sf)")
fmt.Fprintln(w, " return sf")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
@@ -176,6 +182,11 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " sf.title = title")
fmt.Fprintln(w, " sf.f = f")
fmt.Fprintln(w, " sf.order = t.order")
+ fmt.Fprintln(w, " sf.attr = new(guipb.ColAttr)")
+ fmt.Fprintln(w, " sf.attr.Width = int32(sf.Width)")
+ fmt.Fprintln(w, " sf.attr.Type = guipb.ColAttr_STRING")
+ fmt.Fprintln(w, " sf.attr.Click = true")
+ fmt.Fprintln(w, "")
fmt.Fprintln(w, " t.order += 1")
fmt.Fprintln(w, " t.buttonFuncs = append(t.buttonFuncs, sf)")
fmt.Fprintln(w, " return sf")
@@ -188,6 +199,10 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " sf.title = title")
fmt.Fprintln(w, " sf.f = f")
fmt.Fprintln(w, " sf.order = t.order")
+ fmt.Fprintln(w, " sf.attr = new(guipb.ColAttr)")
+ fmt.Fprintln(w, " sf.attr.Width = int32(sf.Width)")
+ fmt.Fprintln(w, " sf.attr.Type = guipb.ColAttr_INT")
+ fmt.Fprintln(w, "")
fmt.Fprintln(w, " t.order += 1")
fmt.Fprintln(w, " t.intFuncs = append(t.intFuncs, sf)")
fmt.Fprintln(w, " return sf")
@@ -218,7 +233,7 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, "func (sf *"+FRUIT+"IntFunc) SetTitle(title string) {")
fmt.Fprintln(w, " sf.title = title")
fmt.Fprintln(w, "}")
- fmt.Fprintln(w, "func (sf *"+FRUIT+"TimeFunc) SetTitle(title string) {")
+ fmt.Fprintln(w, "func (sf *"+FRUIT+"AnyFunc) SetTitle(title string) {")
fmt.Fprintln(w, " sf.title = title")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
@@ -244,6 +259,7 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " Custom func(*"+FRUIT+")")
fmt.Fprintln(w, " order int")
fmt.Fprintln(w, " Width int")
+ fmt.Fprintln(w, " attr *guipb.ColAttr")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
fmt.Fprintln(w, "type "+FRUIT+"ButtonFunc struct {")
@@ -252,6 +268,7 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " Custom func(*"+FRUIT+")")
fmt.Fprintln(w, " order int")
fmt.Fprintln(w, " Width int")
+ fmt.Fprintln(w, " attr *guipb.ColAttr")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
fmt.Fprintln(w, "type "+FRUIT+"IntFunc struct {")
@@ -260,14 +277,7 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " Custom func(*"+FRUIT+")")
fmt.Fprintln(w, " order int")
fmt.Fprintln(w, " Width int")
- fmt.Fprintln(w, "}")
- fmt.Fprintln(w, "")
- fmt.Fprintln(w, "type "+FRUIT+"TimeFunc struct {")
- fmt.Fprintln(w, " title string")
- fmt.Fprintln(w, " f func(*"+FRUIT+") time.Time")
- fmt.Fprintln(w, " Custom func(*"+FRUIT+")")
- fmt.Fprintln(w, " order int")
- fmt.Fprintln(w, " Width int")
+ fmt.Fprintln(w, " attr *guipb.ColAttr")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
fmt.Fprintln(w, "type "+FRUIT+"AnyFunc struct {")
@@ -287,7 +297,6 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, "")
fmt.Fprintln(w, " stringFuncs []*"+FRUIT+"StringFunc")
fmt.Fprintln(w, " intFuncs []*"+FRUIT+"IntFunc")
- fmt.Fprintln(w, " // timeFuncs []*"+FRUIT+"TimeFunc")
fmt.Fprintln(w, " buttonFuncs []*"+FRUIT+"ButtonFunc")
fmt.Fprintln(w, " anyFuncs []*"+FRUIT+"AnyFunc")
fmt.Fprintln(w, "")
@@ -367,33 +376,6 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " return false")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
- fmt.Fprintln(w, "/*")
- fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) doTimeFunc(name string) bool {")
- fmt.Fprintln(w, " for _, sf := range mt.timeFuncs {")
- fmt.Fprintln(w, " if sf.title != name {")
- fmt.Fprintln(w, " continue")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " r := new(guipb.AnyCol)")
- fmt.Fprintln(w, " r.Header = new(guipb.Widget)")
- fmt.Fprintln(w, " r.Header.Name = name")
- fmt.Fprintln(w, " r.Attr = new(guipb.ColAttr)")
- fmt.Fprintln(w, " r.Attr.Width = int32(sf.Width)")
- fmt.Fprintln(w, " r.Attr.Type = guipb.ColAttr_TIME")
- fmt.Fprintln(w, "")
- fmt.Fprintln(w, " for m := range mt.x.IterAll() {")
- fmt.Fprintln(w, " t := sf.f(m)")
- fmt.Fprintln(w, " tsProto := timestamppb.New(t)")
- fmt.Fprintln(w, " anyProto, err := anypb.New(tsProto)")
- fmt.Fprintln(w, " _ = err // do something with err someday (?)")
- fmt.Fprintln(w, " r.Vals = append(r.Vals, anyProto)")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " mt.pb.AnyCols = append(mt.pb.AnyCols, r)")
- fmt.Fprintln(w, " return true")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " return false")
- fmt.Fprintln(w, "}")
- fmt.Fprintln(w, "*/")
- fmt.Fprintln(w, "")
fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) doAnyFunc(name string) bool {")
fmt.Fprintln(w, " for _, sf := range mt.anyFuncs {")
fmt.Fprintln(w, " if sf.title != name {")
@@ -429,9 +411,6 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " if mt.doIntFunc(name) {")
fmt.Fprintln(w, " continue")
fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " // if mt.doTimeFunc(name) {")
- fmt.Fprintln(w, " // continue")
- fmt.Fprintln(w, " // }")
fmt.Fprintln(w, " if mt.doButtonFunc(name) {")
fmt.Fprintln(w, " continue")
fmt.Fprintln(w, " }")
@@ -444,7 +423,7 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {
func guiAddStringFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) {
fmt.Fprintln(w, "")
- fmt.Fprintln(w, "func (t *"+FRUITS+"Table) Add"+BRAND+"() *"+FRUIT+"StringFunc {")
+ fmt.Fprintln(w, "func (t *"+FRUITS+"Table) Add"+BRAND+"() *"+FRUIT+"AnyFunc {")
fmt.Fprintln(w, " sf := t.AddStringFunc(\""+BRAND+"\", func(m *"+FRUIT+") string {")
fmt.Fprintln(w, " return m."+BRAND+"")
fmt.Fprintln(w, " })")
@@ -485,9 +464,6 @@ func guiUpdate(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " if mt.updateStringFunc(name) {")
fmt.Fprintln(w, " continue")
fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " // if mt.updateTimeFunc(name) {")
- fmt.Fprintln(w, " // continue")
- fmt.Fprintln(w, " // }")
fmt.Fprintln(w, " /*")
fmt.Fprintln(w, " if mt.updateIntFunc(name) {")
fmt.Fprintln(w, " continue")
@@ -542,38 +518,6 @@ func guiUpdate(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " return false")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
- fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) updateTimeFunc(name string) bool {")
- fmt.Fprintln(w, " log.Info(\"LOOKING FOR TIME row\", name)")
- fmt.Fprintln(w, " var found *guipb.TimeCol")
- fmt.Fprintln(w, " for i, r := range mt.pb.TimeCols {")
- fmt.Fprintln(w, " // log.Info(\"could use\", i, r.Header.Name, \"for name =\", name)")
- fmt.Fprintln(w, " if r.Header.Name == name {")
- fmt.Fprintln(w, " log.Info(\"found row\", i, r.Header.Name)")
- fmt.Fprintln(w, " found = r")
- fmt.Fprintln(w, " break")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " if found == nil {")
- fmt.Fprintln(w, " log.Info(\"did not find time row\", name)")
- fmt.Fprintln(w, " return false")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " /*")
- fmt.Fprintln(w, " for _, sf := range mt.timeFuncs {")
- fmt.Fprintln(w, " if sf.title != name {")
- fmt.Fprintln(w, " continue")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " // log.Info(\"updateTimeFunc() has row len =\", len(mt.x."+FRUITS+"))")
- fmt.Fprintln(w, " // log.Info(\"virtpb: starting\", name, found.Vals)")
- fmt.Fprintln(w, " for i, _ := range found.Vals {")
- fmt.Fprintln(w, " newt := sf.f(mt.x."+FRUITS+"[i])")
- fmt.Fprintln(w, " found.Vals[i] = timestamppb.New(newt) // convert to protobuf time")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " // log.Info(\"virtpb: ending\", name, found.Vals)")
- fmt.Fprintln(w, " return true")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " */")
- fmt.Fprintln(w, " return false")
- fmt.Fprintln(w, "}")
}
func guiTableDelete(w io.Writer, FRUITS string, FRUIT string) {