summaryrefslogtreecommitdiff
path: root/generateGui.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-15 04:52:59 -0500
committerJeff Carr <[email protected]>2025-09-15 04:52:59 -0500
commitcea3028333c6097d17751bfa5aee9258c0beaa96 (patch)
treeb26ce0da566fe99a42b354c0c98b0a0240981e37 /generateGui.go
parent66aacceee5bdc3a5b6e90ff39ce8fcb7dd55e973 (diff)
more work on 'any' in GUI PB
Diffstat (limited to 'generateGui.go')
-rw-r--r--generateGui.go66
1 files changed, 53 insertions, 13 deletions
diff --git a/generateGui.go b/generateGui.go
index 74403ca..ff113fd 100644
--- a/generateGui.go
+++ b/generateGui.go
@@ -193,15 +193,20 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, " return sf")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
- fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddTimeFunc(title string, f func(*"+FRUIT+") time.Time) *"+FRUIT+"TimeFunc {")
+ fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddTimeFunc(title string, f func(*"+FRUIT+") any) *"+FRUIT+"AnyFunc {")
fmt.Fprintln(w, " t.pb.Order = append(t.pb.Order, title)")
fmt.Fprintln(w, "")
- fmt.Fprintln(w, " sf := new("+FRUIT+"TimeFunc)")
+ fmt.Fprintln(w, " sf := new("+FRUIT+"AnyFunc)")
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_TIME")
+ fmt.Fprintln(w, "")
fmt.Fprintln(w, " t.order += 1")
- fmt.Fprintln(w, " t.timeFuncs = append(t.timeFuncs, sf)")
+ fmt.Fprintln(w, " // t.timeFuncs = append(t.timeFuncs, sf)")
+ fmt.Fprintln(w, " t.anyFuncs = append(t.anyFuncs, sf)")
fmt.Fprintln(w, " return sf")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
@@ -264,11 +269,12 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
fmt.Fprintln(w, "type "+FRUIT+"AnyFunc struct {")
- fmt.Fprintln(w, " title string")
- fmt.Fprintln(w, " f func(*"+FRUIT+") any")
+ fmt.Fprintln(w, " title string")
+ fmt.Fprintln(w, " f func(*"+FRUIT+") any")
fmt.Fprintln(w, " Custom func(*"+FRUIT+")")
- fmt.Fprintln(w, " order int")
- fmt.Fprintln(w, " Width int")
+ 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 "+FRUITS+"Table struct {")
@@ -279,7 +285,7 @@ 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, " // timeFuncs []*"+FRUIT+"TimeFunc")
fmt.Fprintln(w, " buttonFuncs []*"+FRUIT+"ButtonFunc")
fmt.Fprintln(w, " anyFuncs []*"+FRUIT+"AnyFunc")
fmt.Fprintln(w, "")
@@ -359,6 +365,7 @@ 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 {")
@@ -383,6 +390,34 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {
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 {")
+ 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, " var goTime time.Time")
+ fmt.Fprintln(w, " goTime = t.(time.Time)")
+ fmt.Fprintln(w, " tsProto := timestamppb.New(goTime)")
+ 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, "func (mt *"+FRUITS+"Table) MakeTable() {")
fmt.Fprintln(w, " for _, name := range mt.pb.Order {")
@@ -392,10 +427,13 @@ 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, " // 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, " }")
- fmt.Fprintln(w, " if mt.doButtonFunc(name) {")
+ fmt.Fprintln(w, " if mt.doAnyFunc(name) {")
fmt.Fprintln(w, " continue")
fmt.Fprintln(w, " }")
fmt.Fprintln(w, " }")
@@ -445,9 +483,9 @@ 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, " // 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")
@@ -517,6 +555,7 @@ func guiUpdate(w io.Writer, FRUITS string, FRUIT string) {
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")
@@ -530,6 +569,7 @@ func guiUpdate(w io.Writer, FRUITS string, FRUIT string) {
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, "}")
}