summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--generateGui.go44
1 files changed, 38 insertions, 6 deletions
diff --git a/generateGui.go b/generateGui.go
index 87a583e..b9cd5a5 100644
--- a/generateGui.go
+++ b/generateGui.go
@@ -389,15 +389,47 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {
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, " switch r.Attr.Type {")
+ fmt.Fprintln(w, " case guipb.ColAttr_STRING:")
+ fmt.Fprintln(w, " // anyProto, err := anypb.New(tsProto)")
+ fmt.Fprintln(w, " stringValue := wrapperspb.String(t.(string))")
+ fmt.Fprintln(w, " anyProto, err := anypb.New(stringValue)")
+ fmt.Fprintln(w, " _ = err // do something with err someday (?)")
+ fmt.Fprintln(w, " r.Vals = append(r.Vals, anyProto)")
+ fmt.Fprintln(w, " // return col.Vals[row] true")
+ fmt.Fprintln(w, " case guipb.ColAttr_INT:")
+ fmt.Fprintln(w, " // var finalInt int32")
+ fmt.Fprintln(w, " // // 1. Check if the Any contains an Int32Value")
+ fmt.Fprintln(w, " // if anyVal.MessageIs(&wrapperspb.Int32Value{}) {")
+ fmt.Fprintln(w, " // var intValue wrapperspb.Int32Value")
+ fmt.Fprintln(w, " // // 2. Unmarshal into the wrapper")
+ fmt.Fprintln(w, " // if err := anyVal.UnmarshalTo(&intValue); err == nil {")
+ fmt.Fprintln(w, " // // 3. Get the native Go int32 from the wrapper")
+ fmt.Fprintln(w, " // finalInt = intValue.GetValue()")
+ fmt.Fprintln(w, " // }")
+ fmt.Fprintln(w, " // }")
+ fmt.Fprintln(w, "")
+ sfmt := "\"" + "%" + "d" + "\""
+ fmt.Fprintln(w, " // return fmt.Sprintf("+sfmt+", finalInt), true")
+ fmt.Fprintln(w, " case guipb.ColAttr_DURATION:")
+ fmt.Fprintln(w, " case guipb.ColAttr_TIME:")
+ 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, " default:")
+ fmt.Fprintln(w, " log.Info(\"cell unhandled type\", r.Attr.Type)")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " // cellTime := r.Vals[row]")
+ fmt.Fprintln(w, " // s := shell.FormatDuration(time.Since(cellTime.AsTime()))")
fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, "")
+
fmt.Fprintln(w, " mt.pb.AnyCols = append(mt.pb.AnyCols, r)")
fmt.Fprintln(w, " return true")
fmt.Fprintln(w, " }")