wui_label.go 1.2 KB

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