wlabel.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // package wlabel -- WUI метка
  2. package wlabel
  3. import (
  4. "strings"
  5. "gitp78su.ipnodns.ru/svi/kern/v3/wui/wctx"
  6. "gitp78su.ipnodns.ru/svi/kern/v3/wui/wtext"
  7. . "gitp78su.ipnodns.ru/svi/kern/v3/wui/wtypes"
  8. "gitp78su.ipnodns.ru/svi/kern/v3/wui/wwidget"
  9. )
  10. // WuiLabel -- WUI метка
  11. type WuiLabel struct {
  12. IWuiWidget
  13. text IWuiText
  14. }
  15. // NewWuiLabel -- возвращает новую метку
  16. func NewWuiLabel(text string) *WuiLabel {
  17. sf := &WuiLabel{
  18. IWuiWidget: wwidget.NewWuiWidget(),
  19. text: wtext.NewWuiText(text),
  20. }
  21. wCtx := wctx.GetWuiCtx()
  22. wCtx.Set(sf.Id(), sf, "WUI-метка")
  23. _ = IWuiLabel(sf)
  24. return sf
  25. }
  26. // Text -- возвращает текст метки
  27. func (sf *WuiLabel) Text() IWuiText {
  28. return sf.text
  29. }
  30. const (
  31. strBeg = `<div id="{.id}">{.txt}</div>`
  32. )
  33. // Html -- возвращает HTML-представление текста
  34. func (sf *WuiLabel) Html() string {
  35. strRes := strings.ReplaceAll(strBeg, "{.id}", sf.Id())
  36. strRes = strings.ReplaceAll(strRes, "{.txt}", sf.text.Get())
  37. return strRes
  38. }