wui_label.go 1.2 KB

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