label.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // package label -- текстовая метка для отображения
  2. package label
  3. import (
  4. "gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
  5. "gitp78su.ipnodns.ru/svi/goarch/lev0/types"
  6. "gitp78su.ipnodns.ru/svi/goarch/pkg/elems/coord"
  7. "gitp78su.ipnodns.ru/svi/goarch/pkg/elems/offset"
  8. )
  9. // Label -- текстовая метка для отображения
  10. type Label struct {
  11. Label_ alias.Label `json:"label"` // Метка для вывода
  12. Offset_ *offset.Offset `json:"offsetX"` // Смещение метки
  13. Coord_ *coord.Coord `json:"coord"` // Координаты метки
  14. }
  15. // NewLabel -- возвращает новую метку
  16. func NewLabel(elem map[string]interface{}) *Label {
  17. var label string
  18. _label, isOk := elem["label"]
  19. if !isOk {
  20. label = "<empty>"
  21. } else {
  22. label = _label.(string)
  23. }
  24. return &Label{
  25. Label_: alias.Label(label),
  26. Offset_: offset.NewOffset(elem),
  27. Coord_: coord.NewCoord("coord", elem),
  28. }
  29. }
  30. // Get -- возвращает метку
  31. func (sf *Label) Get() alias.Label {
  32. return sf.Label_
  33. }
  34. // Coord -- возвращает координаты метки
  35. func (sf *Label) Coord() types.ICoord {
  36. return sf.Coord_
  37. }
  38. // Offset -- возвращает смещение метки
  39. func (sf *Label) Offset() types.IOffset {
  40. return sf.Offset_
  41. }