/s/Row/Col/
This commit is contained in:
parent
c13e84a805
commit
907fea4392
133
tablePB.go
133
tablePB.go
|
@ -3,10 +3,143 @@
|
|||
package cobol
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"go.wit.com/lib/gui/shell"
|
||||
"go.wit.com/lib/protobuf/guipb"
|
||||
"go.wit.com/log"
|
||||
"google.golang.org/protobuf/proto"
|
||||
"google.golang.org/protobuf/types/known/anypb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
"google.golang.org/protobuf/types/known/wrapperspb"
|
||||
)
|
||||
|
||||
func PrintTable(pb *guipb.Table) {
|
||||
log.Info("print PB here")
|
||||
|
||||
if pb.Grid == nil {
|
||||
log.Info("grid = nil")
|
||||
} else {
|
||||
log.Info("grid.Id =", pb.Grid.Id)
|
||||
}
|
||||
|
||||
var h int = 0
|
||||
var w int = 0
|
||||
for _, name := range pb.Order {
|
||||
if addTableRow(pb, name, w) {
|
||||
log.Info("tree:row() COLUMN GOOD", pb.Title, name, w, h)
|
||||
h += 1
|
||||
} else {
|
||||
log.Info("tree:row() COLOMN FAIL", pb.Title, name, w, h)
|
||||
}
|
||||
|
||||
w += 1
|
||||
}
|
||||
}
|
||||
|
||||
func addTableRow(t *guipb.Table, name string, w int) bool {
|
||||
var h int = 0
|
||||
for _, r := range t.StringRows {
|
||||
if name != r.Header.Name {
|
||||
// log.Info("skip string row:", r.Header.Name, "!=", name)
|
||||
continue
|
||||
}
|
||||
log.Info("tree: Add()ing to grid here", r.Header.Id, r.Header.Name, w, h)
|
||||
for i, v := range r.Vals {
|
||||
log.Info("String Row", i, w, v)
|
||||
}
|
||||
makeGridLabel(r.Header, w, h)
|
||||
h += 1
|
||||
for _, v := range r.Widgets {
|
||||
log.Info("tree: Add()ing to grid here", v.Id, v.Name, w, h)
|
||||
makeGridLabel(v, w, h)
|
||||
h += 1
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
for _, r := range t.ButtonRows {
|
||||
if name != r.Header.Name {
|
||||
// log.Info("skip string row:", r.Header.Name, "!=", name)
|
||||
continue
|
||||
}
|
||||
log.Info("tree: Add()ing to grid here", r.Header.Id, r.Header.Name, w, h)
|
||||
for i, v := range r.Vals {
|
||||
log.Info("Button Row", i, v)
|
||||
}
|
||||
makeGridLabel(r.Header, w, h)
|
||||
h += 1
|
||||
for _, v := range r.Widgets {
|
||||
log.Info("tree: Add()ing to grid here", v.Id, v.Name, w, h)
|
||||
makeGridLabel(v, w, h)
|
||||
h += 1
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
for _, r := range t.IntRows {
|
||||
if name != r.Header.Name {
|
||||
// log.Info("skip sint row:", r.Header.Name, "!=", name)
|
||||
continue
|
||||
}
|
||||
log.Info("tree: Add()ing to grid here", r.Header.Id, r.Header.Name, w, h)
|
||||
makeGridLabel(r.Header, w, h)
|
||||
h += 1
|
||||
for _, v := range r.Widgets {
|
||||
vi, err := extractInt64(v.Val)
|
||||
if err != nil {
|
||||
log.Warn("int error", err)
|
||||
}
|
||||
v.Name = fmt.Sprintf("%d", vi)
|
||||
// log.Info("tree: Add()ing to grid here", v.Id, v.Name, w, h)
|
||||
makeGridLabel(v, w, h)
|
||||
h += 1
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
for _, r := range t.TimeRows {
|
||||
if name != r.Header.Name {
|
||||
// log.Info("skip sint row:", r.Header.Name, "!=", name)
|
||||
continue
|
||||
}
|
||||
// log.Info("tree: Add()ing to grid here", r.Header.Id, r.Header.Name, w, h)
|
||||
makeGridLabel(r.Header, w, h)
|
||||
h += 1
|
||||
for _, widg := range r.Widgets {
|
||||
msg, err := anypb.UnmarshalNew(widg.Val, proto.UnmarshalOptions{})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to unmarshal: %v", err)
|
||||
}
|
||||
|
||||
switch v := msg.(type) {
|
||||
case *timestamppb.Timestamp:
|
||||
// fmt.Println("Unpacked Timestamp:", shell.FormatDuration(time.Since(v.AsTime())))
|
||||
widg.Name = shell.FormatDuration(time.Since(v.AsTime()))
|
||||
default:
|
||||
fmt.Println("Unknown type:", v)
|
||||
widg.Name = fmt.Sprintf("%v", v)
|
||||
}
|
||||
|
||||
// log.Info("tree: Add()ing to grid here", widg.Id, widg.Name, w, h)
|
||||
makeGridLabel(widg, w, h)
|
||||
h += 1
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func makeGridLabel(pb *guipb.Widget, w int, h int) {
|
||||
log.Info("MAKE GRID LABEL", w, h, pb.Name)
|
||||
}
|
||||
|
||||
func extractInt64(anyVal *anypb.Any) (int64, error) {
|
||||
val := &wrapperspb.Int64Value{}
|
||||
if err := anyVal.UnmarshalTo(val); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return val.Value, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue