wui_widget.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // package wui_widget -- базовый виджет WUI.
  2. package wui_widget
  3. import (
  4. "crypto/rand"
  5. "strings"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/d0"
  7. mWt "gitp78su.ipnodns.ru/svi/kern/v4/d2/wui/wui_types"
  8. )
  9. // WuiWidget -- базовый виджет WUI.
  10. type WuiWidget struct {
  11. owner *d0.LOwner
  12. val *d0.LTxt
  13. }
  14. // NewWuiWidget -- возвращает новый базовый виджет WUI.
  15. func NewWuiWidget(owner *d0.LOwner) *WuiWidget {
  16. sf := &WuiWidget{
  17. owner: owner,
  18. val: d0.LetTxt(owner, "wui_"+rand.Text()),
  19. }
  20. _ = mWt.IWuiWidget(sf)
  21. return sf
  22. }
  23. // Id - возвращает ID виджета.
  24. func (sf *WuiWidget) Id() *d0.LTxt {
  25. return sf.val
  26. }
  27. const (
  28. strBeg = `<div id="{.id}"> WuiWidget.Html(): id={.id}, not implemented </div>`
  29. )
  30. // Html -- возвращает HTML представление виджета.
  31. func (sf *WuiWidget) Html() *d0.LTxt {
  32. strRes := strings.ReplaceAll(strBeg, "{.id}", sf.String())
  33. return d0.LetTxt(sf.owner, strRes)
  34. }
  35. // String -- возвращает строковое представление виджета.
  36. func (sf *WuiWidget) String() string {
  37. return sf.val.String()
  38. }