view_use_case.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // package view_use_case -- отображение вариант использования
  2. package view_use_case
  3. import (
  4. svg "github.com/ajstarks/svgo"
  5. "gitp78su.ipnodns.ru/svi/goarch/lev0/types"
  6. "gitp78su.ipnodns.ru/svi/goarch/lev1/arch_use_case"
  7. "gitp78su.ipnodns.ru/svi/goarch/lev1/view_coord"
  8. "gitp78su.ipnodns.ru/svi/goarch/lev1/view_text"
  9. )
  10. // ViewUseCase -- вариант использования
  11. type ViewUseCase struct {
  12. *arch_use_case.ArchUseCase
  13. Size_ types.IViewSize
  14. Coord_ view_coord.ViewCoord
  15. text *view_text.ViewText
  16. }
  17. // NewViewUseCase -- возвращает новый вариант использования
  18. func NewViewUseCase(useCase *arch_use_case.ArchUseCase) *ViewUseCase {
  19. sf := &ViewUseCase{
  20. ArchUseCase: useCase,
  21. }
  22. sf.SelfCheck()
  23. return sf
  24. }
  25. // SelfCheck -- проверяет корректность элемента
  26. func (sf *ViewUseCase) SelfCheck() {
  27. sf.ArchUseCase.SelfCheck()
  28. sf.Size_.SelfCheck()
  29. }
  30. // Draw -- рисует вариант использования
  31. func (sf *ViewUseCase) Draw(canvas *svg.SVG) {
  32. x, y := sf.Coord_.Int()
  33. // offX := int(sf.Label().Offset().X())
  34. w, h := sf.Size_.Int()
  35. // Овал
  36. canvas.Ellipse(x+70, y, w, h, "fill:none;stroke:black")
  37. // strLabel := sf.Label().String()
  38. sf.text.Draw(canvas)
  39. // if strLabel != "" {
  40. // canvas.Text(x+offX, y+6, strLabel, "font-size: 14px; font-family: Courier; fill: black")
  41. // }
  42. // if msgErr := sf.Check(mapElem); msgErr != "" {
  43. // canvas.Group("Ошибка")
  44. // canvas.Title(msgErr)
  45. // canvas.Image(x-20, y-20, 16, 16, "/static/img/warning.png")
  46. // }
  47. canvas.Gend()
  48. }