summaryrefslogtreecommitdiff
path: root/table.go
blob: 1a950ad4ccf475ad9a8325a816f2ba7c1715fde0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Although most code from WIT.COM Inc is under the GPL
// This code is more generic because it must be able
// to be used in any GUI plugin

package tree

import (
	"go.wit.com/lib/protobuf/guipb"
	"go.wit.com/log"
	"go.wit.com/widget"
)

// repeated string      order          = 1;
//
// repeated StringRow   StringRows     = 2;
// repeated IntRow      IntRows        = 3;
// repeated TimeRow     TimeRows       = 4;
// repeated BoolRow     BoolRows       = 5;
func (me *TreeInfo) doTable(a widget.Action) {
	if a.TablePB == nil {
		log.Log(TREE, "tree: action didn't have a Table PB")
		return
	}
	pb := guipb.NewTables()
	if err := pb.Unmarshal(a.TablePB); err != nil {
		log.Info("unmarshal error", err, "data len =", len(a.TablePB))
		return
	}
	log.Info("dumpTables:")
	all := pb.All()
	for all.Scan() {
		t := all.Next()
		for i, o := range t.Order {
			log.Info("got order:", t.Title, i, o)
		}
		me.ShowTable(t)
		dumpTable(t)
	}
}

func dumpTable(t *guipb.Table) {
	for i, o := range t.Order {
		log.Info("got order:", t.Title, i, o)
	}
	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: got string widget:", v.Id, v.Name)
		}
	}
	for i, r := range t.IntRows {
		log.Info("got int row:", t.Title, i, r.Header, r.Vals)
		for _, v := range r.Widgets {
			log.Info("tree: got int widget:", v.Id, v.Name)
		}
	}
}

type TreeTable struct {
	PB *guipb.Table
	/*
		hostnames []string
		columns   []*gui.NodeColumn
		order     []*gui.NodeColumn
	*/
}