Compare commits
3 Commits
Author | SHA1 | Date |
---|---|---|
|
7607378bae | |
|
b644b03769 | |
|
2b61abf765 |
119
table.go
119
table.go
|
@ -120,10 +120,10 @@ func (me *TreeInfo) updateTable(t *guipb.Table) {
|
||||||
var w int = 0
|
var w int = 0
|
||||||
for _, name := range t.Order {
|
for _, name := range t.Order {
|
||||||
// log.Info("got order:", t.Title, name)
|
// log.Info("got order:", t.Title, name)
|
||||||
if me.addTableRow(t, grid, name, w) {
|
if me.addTableCol(t, grid, name, w) {
|
||||||
// log.Info("tree:row() COLUMN GOOD", t.Title, name, w, h)
|
// log.Info("tree:row() COLUMN GOOD", t.Title, name, w, h)
|
||||||
} else {
|
} else {
|
||||||
log.Info("tree:row() COLOMN FAIL", t.Title, name, w, h)
|
log.Info("tree:row() COLUMN FAIL", t.Title, name, w, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
w += 1
|
w += 1
|
||||||
|
@ -131,8 +131,8 @@ func (me *TreeInfo) updateTable(t *guipb.Table) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
func (me *TreeInfo) updateRow(t *guipb.Table, name string) {
|
func (me *TreeInfo) updateCol(t *guipb.Table, name string) {
|
||||||
for _, r := range t.StringRows {
|
for _, r := range t.StringCols {
|
||||||
if name == r.Header.Name {
|
if name == r.Header.Name {
|
||||||
// debugging code
|
// debugging code
|
||||||
// id := r.Header.Id
|
// id := r.Header.Id
|
||||||
|
@ -140,10 +140,10 @@ func (me *TreeInfo) updateRow(t *guipb.Table, name string) {
|
||||||
// if n == nil {
|
// if n == nil {
|
||||||
// log.Info("could not find widget id", id)
|
// log.Info("could not find widget id", id)
|
||||||
// }
|
// }
|
||||||
log.Info("tree.updateRow(string)", r.Header, "len =", len(r.Widgets))
|
log.Info("tree.updateCol(string)", r.Header, "len =", len(r.Widgets))
|
||||||
// if r.Header.Name == "Hostname" {
|
// if r.Header.Name == "Hostname" {
|
||||||
// }
|
// }
|
||||||
// log.Info("tree.updateRow() found Hostnames", r.Vals)
|
// log.Info("tree.updateCol() found Hostnames", r.Vals)
|
||||||
for i, v := range r.Vals {
|
for i, v := range r.Vals {
|
||||||
// log.Info("tree: Hostname Widget", i, v, w.Name)
|
// log.Info("tree: Hostname Widget", i, v, w.Name)
|
||||||
w := r.Widgets[i]
|
w := r.Widgets[i]
|
||||||
|
@ -164,11 +164,11 @@ func (me *TreeInfo) updateRow(t *guipb.Table, name string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range t.TimeRows {
|
for _, r := range t.TimeCols {
|
||||||
if name != r.Header.Name {
|
if name != r.Header.Name {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
log.Info("tree.updateRow(time)", r.Header, "len =", len(r.Widgets))
|
log.Info("tree.updateCol(time)", r.Header, "len =", len(r.Widgets))
|
||||||
for i, _ := range r.Vals {
|
for i, _ := range r.Vals {
|
||||||
// log.Info("tree: Hostname Widget", i, v, w.Name)
|
// log.Info("tree: Hostname Widget", i, v, w.Name)
|
||||||
w := r.Widgets[i]
|
w := r.Widgets[i]
|
||||||
|
@ -215,19 +215,19 @@ func (me *TreeInfo) makeTable(t *guipb.Table) {
|
||||||
var w int = 0
|
var w int = 0
|
||||||
for _, name := range t.Order {
|
for _, name := range t.Order {
|
||||||
// log.Info("got order:", t.Title, name)
|
// log.Info("got order:", t.Title, name)
|
||||||
if me.addTableRow(t, grid, name, w) {
|
if me.addTableCol(t, grid, name, w) {
|
||||||
// log.Info("tree:row() COLUMN GOOD", t.Title, name, w, h)
|
// log.Info("tree:row() COLUMN GOOD", t.Title, name, w, h)
|
||||||
} else {
|
} else {
|
||||||
log.Log(TREEWARN, "tree:row() COLOMN FAIL", t.Title, name, w, h)
|
log.Log(TREEWARN, "tree:row() COLUMN FAIL", t.Title, name, w, h)
|
||||||
}
|
}
|
||||||
|
|
||||||
w += 1
|
w += 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (me *TreeInfo) addTableRow(t *guipb.Table, grid *Node, name string, w int) bool {
|
func (me *TreeInfo) addTableCol(t *guipb.Table, grid *Node, name string, w int) bool {
|
||||||
var h int = 0
|
var h int = 0
|
||||||
for _, r := range t.StringRows {
|
for _, r := range t.StringCols {
|
||||||
if name != r.Header.Name {
|
if name != r.Header.Name {
|
||||||
// log.Info("skip string row:", r.Header.Name, "!=", name)
|
// log.Info("skip string row:", r.Header.Name, "!=", name)
|
||||||
continue
|
continue
|
||||||
|
@ -245,7 +245,7 @@ func (me *TreeInfo) addTableRow(t *guipb.Table, grid *Node, name string, w int)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range t.ButtonRows {
|
for _, r := range t.ButtonCols {
|
||||||
if name != r.Header.Name {
|
if name != r.Header.Name {
|
||||||
// log.Info("skip string row:", r.Header.Name, "!=", name)
|
// log.Info("skip string row:", r.Header.Name, "!=", name)
|
||||||
continue
|
continue
|
||||||
|
@ -263,7 +263,7 @@ func (me *TreeInfo) addTableRow(t *guipb.Table, grid *Node, name string, w int)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range t.IntRows {
|
for _, r := range t.IntCols {
|
||||||
if name != r.Header.Name {
|
if name != r.Header.Name {
|
||||||
// log.Info("skip sint row:", r.Header.Name, "!=", name)
|
// log.Info("skip sint row:", r.Header.Name, "!=", name)
|
||||||
continue
|
continue
|
||||||
|
@ -286,7 +286,7 @@ func (me *TreeInfo) addTableRow(t *guipb.Table, grid *Node, name string, w int)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range t.TimeRows {
|
for _, r := range t.TimeCols {
|
||||||
if name != r.Header.Name {
|
if name != r.Header.Name {
|
||||||
// log.Info("skip sint row:", r.Header.Name, "!=", name)
|
// log.Info("skip sint row:", r.Header.Name, "!=", name)
|
||||||
continue
|
continue
|
||||||
|
@ -318,6 +318,91 @@ func (me *TreeInfo) addTableRow(t *guipb.Table, grid *Node, name string, w int)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, col := range t.AnyCols {
|
||||||
|
if name != col.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)
|
||||||
|
head := grid.makeGridLabel(col.Header, w, h)
|
||||||
|
me.Add(head)
|
||||||
|
h += 1
|
||||||
|
for _, widg := range col.Widgets {
|
||||||
|
msg, err := anypb.UnmarshalNew(widg.Val, proto.UnmarshalOptions{})
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to unmarshal: %v", err)
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
var stringValue wrapperspb.StringValue
|
||||||
|
if err := msg.UnmarshalTo(&stringValue); err == nil {
|
||||||
|
// It's a string, now convert it back to a native Go string
|
||||||
|
goString := stringValue.GetValue()
|
||||||
|
fmt.Printf("Successfully unpacked string: %s\n", goString)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
switch v := msg.(type) {
|
||||||
|
// case *protobuf.StringValue:
|
||||||
|
// widg.Name = fmt.Sprintf("stringval %v", v)
|
||||||
|
case *timestamppb.Timestamp:
|
||||||
|
// fmt.Println("Unpacked Timestamp:", shell.FormatDuration(time.Since(v.AsTime())))
|
||||||
|
widg.Name = shell.FormatDuration(time.Since(v.AsTime()))
|
||||||
|
case *wrapperspb.StringValue:
|
||||||
|
/*
|
||||||
|
var stringValue wrapperspb.StringValue
|
||||||
|
if err := widg.Val.UnmarshalTo(&stringValue); err == nil {
|
||||||
|
// It's a string, now convert it back to a native Go string
|
||||||
|
goString := stringValue.GetValue()
|
||||||
|
fmt.Printf("Successfully unpacked string: %s\n", goString)
|
||||||
|
widg.Name = goString
|
||||||
|
} else {
|
||||||
|
widg.Name = "notsure"
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
widg.Name = v.GetValue()
|
||||||
|
case *anypb.Any:
|
||||||
|
var anyVal *anypb.Any
|
||||||
|
anyVal = msg.(*anypb.Any)
|
||||||
|
switch col.Attr.Type {
|
||||||
|
case guipb.ColAttr_STRING:
|
||||||
|
var stringValue wrapperspb.StringValue
|
||||||
|
if err := anyVal.UnmarshalTo(&stringValue); err == nil {
|
||||||
|
// It's a string, now convert it back to a native Go string
|
||||||
|
goString := stringValue.GetValue()
|
||||||
|
// fmt.Printf("Successfully unpacked string: %s\n", goString)
|
||||||
|
widg.Name = goString
|
||||||
|
} else {
|
||||||
|
widg.Name = "anyVal str err"
|
||||||
|
}
|
||||||
|
case guipb.ColAttr_INT:
|
||||||
|
case guipb.ColAttr_TIME:
|
||||||
|
var tsProto timestamppb.Timestamp
|
||||||
|
if err := anyVal.UnmarshalTo(&tsProto); err == nil {
|
||||||
|
// It's a timestamp, now convert it back to a Go time.Time
|
||||||
|
goTime := tsProto.AsTime()
|
||||||
|
// fmt.Printf("Successfully unpacked timestamp: %v\n", goTime)
|
||||||
|
widg.Name = shell.FormatDuration(time.Since(goTime))
|
||||||
|
} else {
|
||||||
|
widg.Name = "terr"
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
// fmt.Printf("found any! %T\n", v)
|
||||||
|
// widg.Name = v.GetValue()
|
||||||
|
default:
|
||||||
|
fmt.Printf("Unknown type: %T\n", v)
|
||||||
|
// 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)
|
||||||
|
lab := grid.makeGridLabel(widg, w, h)
|
||||||
|
me.Add(lab)
|
||||||
|
h += 1
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -349,13 +434,13 @@ func dumpTable(t *guipb.Table) {
|
||||||
for i, o := range t.Order {
|
for i, o := range t.Order {
|
||||||
log.Info("got order:", t.Title, i, o)
|
log.Info("got order:", t.Title, i, o)
|
||||||
}
|
}
|
||||||
for i, r := range t.StringRows {
|
for i, r := range t.StringCols {
|
||||||
log.Info("got string row:", t.Title, i, r.Header.Name, r.Vals)
|
log.Info("got string row:", t.Title, i, r.Header.Name, r.Vals)
|
||||||
for _, v := range r.Widgets {
|
for _, v := range r.Widgets {
|
||||||
log.Info("tree: got string widget:", v.Id, v.Name)
|
log.Info("tree: got string widget:", v.Id, v.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i, r := range t.IntRows {
|
for i, r := range t.IntCols {
|
||||||
log.Info("got int row:", t.Title, i, r.Header.Name, r.Vals)
|
log.Info("got int row:", t.Title, i, r.Header.Name, r.Vals)
|
||||||
for _, v := range r.Widgets {
|
for _, v := range r.Widgets {
|
||||||
log.Info("tree: got int widget:", v.Id, v.Val)
|
log.Info("tree: got int widget:", v.Id, v.Val)
|
||||||
|
|
Loading…
Reference in New Issue