MCPcopy Create free account
hub / github.com/pydio/cells / populateTreeNode

Method populateTreeNode

cmd/ctl.go:446–486  ·  view source on GitHub ↗
(node *tview.TreeNode, pa []string, val kv.Values)

Source from the content-addressed store, hash-verified

444}
445
446func (m *model) populateTreeNode(node *tview.TreeNode, pa []string, val kv.Values) {
447 defer func() {
448 recover()
449 }()
450 var childrenKeys []string
451 children := make(map[string]*tview.TreeNode)
452
453 var mi map[string]interface{}
454 var sl []interface{}
455 if er := val.Scan(&sl); er == nil {
456 for k, i := range sl {
457 c := tview.NewTreeNode(strconv.Itoa(k))
458 var ref interface{}
459 if conf, o := i.(kv.Values); o {
460 ref = conf.Interface()
461 } else {
462 ref = i
463 }
464 c.SetExpanded(false).SetSelectable(true).SetReference(ref)
465 children[c.GetText()] = c
466 childrenKeys = append(childrenKeys, c.GetText())
467 m.populateTreeNode(c, append(pa, strconv.Itoa(k)), configx.New(kv.WithInitData(i)))
468 }
469 } else if e := val.Scan(&mi); e == nil {
470 for k := range mi {
471 c := tview.NewTreeNode(k).SetReference(val.Val(k).Interface())
472 children[c.GetText()] = c
473 childrenKeys = append(childrenKeys, c.GetText())
474 c.SetExpanded(false)
475 c.SetSelectable(true)
476 m.populateTreeNode(c, append(pa, k), val.Val(k))
477 }
478 } else {
479 node.SetText(node.GetText() + ": " + val.String()).SetReference(val.Interface())
480 }
481 // Append children sorted
482 sort.Strings(childrenKeys)
483 for _, k := range childrenKeys {
484 node.AddChild(children[k])
485 }
486}
487
488func (m *model) sendCommand(ctx context.Context, cmdName, itemName string) {
489 if m.br == nil {

Callers 1

initConfigViewMethod · 0.95

Calls 9

NewFunction · 0.92
WithInitDataFunction · 0.92
makeFunction · 0.85
AddChildMethod · 0.80
ScanMethod · 0.65
InterfaceMethod · 0.65
ValMethod · 0.65
StringMethod · 0.65
GetTextMethod · 0.45

Tested by

no test coverage detected