summaryrefslogtreecommitdiff
path: root/table.go
diff options
context:
space:
mode:
Diffstat (limited to 'table.go')
-rw-r--r--table.go51
1 files changed, 37 insertions, 14 deletions
diff --git a/table.go b/table.go
index d6d07a4..50e32f2 100644
--- a/table.go
+++ b/table.go
@@ -47,12 +47,29 @@ func (me *TreeInfo) doTable(a widget.Action) {
// log.Info("TREE already has UUID", i, ot.Uuid)
if t.Uuid == ot.Uuid {
log.Info("TREE found UUID! update table here", i, ot.Uuid)
+ if ot.Grid == nil {
+ log.Info("TREE found UUID! ot.grid.Id = nil. need to find grid id here")
+ return
+ } else {
+ log.Info("TREE found UUID! grid.Id =", ot.Grid.Id)
+ t.Grid = ot.Grid
+ }
+ if t.Grid == nil {
+ log.Info("TREE found UUID! grid.Id = nil. need to find grid id here")
+ return
+ }
+ log.Info("TREE found UUID! update table here", i, ot.Uuid, "grid.Id =", t.Grid.Id)
me.updateTable(t)
return
}
}
me.currentTables = append(me.currentTables, t)
+ if t.Grid == nil {
+ log.Info("NEW TREE ERROR: grid.Id = nil need to set grid id here")
+ } else {
+ log.Info("NEW TREE: grid.Id =", t.Grid.Id)
+ }
me.makeTable(t)
}
}
@@ -73,9 +90,27 @@ func (grid *Node) makeGridLabel(pb *guipb.Widget, w int, h int) *Node {
}
func (me *TreeInfo) updateTable(t *guipb.Table) {
- // log.Info("todo: compare table here...")
+ grid := FindWidgetId(int(t.Grid.Id))
+ if grid == nil {
+ log.Info("tree: updateTable() failed to make grid")
+ return
+ }
+ // delete the existing table
+ me.DeleteNode(grid)
+
+ // remake the table
+ me.Add(grid)
+ var h int = 0
+ var w int = 0
for _, name := range t.Order {
- me.updateRow(t, name)
+ // log.Info("got order:", t.Title, name)
+ if me.addTableRow(t, grid, name, w) {
+ // log.Info("tree:row() COLUMN GOOD", t.Title, name, w, h)
+ } else {
+ log.Info("tree:row() COLOMN FAIL", t.Title, name, w, h)
+ }
+
+ w += 1
}
}
@@ -169,18 +204,6 @@ func (me *TreeInfo) makeTable(t *guipb.Table) {
w += 1
}
-
- /*
- for i, r := range t.StringRows {
- log.Info("got string row:", t.Title, i, r.Header, r.Vals)
- for _, v := range r.Widgets {
- log.Info("tree: add to grid here", v.Id, v.Name)
- lab := grid.makeGridLabel(v, w, h)
- me.Add(lab)
- h += 1
- }
- }
- */
}
func (me *TreeInfo) addTableRow(t *guipb.Table, grid *Node, name string, w int) bool {