package main import ( "go.wit.com/log" "go.wit.com/toolkits/tree" "go.wit.com/widget" ) // func (n *node) setText(a *widget.Action) { func setText(n *tree.Node, a *widget.Action) { name := widget.GetString(a.Value) var tk *guiWidget tk = n.TK.(*guiWidget) log.Log(CHANGE, "setText() START with text =", name) if tk == nil { log.Log(ERROR, "setText error. tk == nil", n.GetProgName(), n.WidgetId) return } log.Log(CHANGE, "setText() Attempt on", n.WidgetType, "with", name) switch n.WidgetType { case widget.Window: log.Warn("setText() Attempt to set the title to", name) tk.uiWindow.SetTitle(name) case widget.Tab: case widget.Group: tk.uiGroup.SetTitle(name) case widget.Checkbox: tk.uiCheckbox.SetText(name) case widget.Textbox: if tk.uiEntry != nil { tk.uiEntry.SetText(name) } if tk.uiMultilineEntry != nil { tk.uiMultilineEntry.SetText(name) } case widget.Label: tk.uiLabel.SetText(name) case widget.Button: tk.uiButton.SetText(name) case widget.Slider: log.Log(ERROR, "setText() on slider unknown", a.ActionType, "on checkbox", n.GetProgName()) case widget.Spinner: log.Log(ERROR, "setText() on spinner unknown", a.ActionType, "on checkbox", n.GetProgName()) case widget.Dropdown: var orig int var i int = -1 var s string orig = tk.uiCombobox.Selected() log.Log(CHANGE, "try to set the Dropdown to", name, "from", orig) // try to find the string for i, s = range tk.val { log.Log(CHANGE, "i, s", i, s) if name == s { tk.uiCombobox.SetSelected(i) log.Log(CHANGE, "setText() Dropdown worked.", name) return } } log.Log(ERROR, "setText() Dropdown did not find:", name) // if i == -1, then there are not any things in the menu to select if i == -1 { return } // if the string was never set, then set the dropdown to the last thing added to the menu if orig == -1 { tk.uiCombobox.SetSelected(i) } case widget.Combobox: tk.uiEditableCombobox.SetText(name) default: log.Log(ERROR, "plugin Send() Don't know how to setText on", n.WidgetType, "yet", a.ActionType) } log.Log(CHANGE, "setText() END with name =") }