// package view_use_case -- отображение вариант использования package view_use_case import ( svg "github.com/ajstarks/svgo" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" "gitp78su.ipnodns.ru/svi/goarch/lev1/arch_use_case" "gitp78su.ipnodns.ru/svi/goarch/lev1/view_coord" "gitp78su.ipnodns.ru/svi/goarch/lev1/view_text" ) // ViewUseCase -- вариант использования type ViewUseCase struct { *arch_use_case.ArchUseCase Size_ types.IViewSize Coord_ view_coord.ViewCoord text *view_text.ViewText } // NewViewUseCase -- возвращает новый вариант использования func NewViewUseCase(useCase *arch_use_case.ArchUseCase) *ViewUseCase { sf := &ViewUseCase{ ArchUseCase: useCase, } sf.SelfCheck() return sf } // SelfCheck -- проверяет корректность элемента func (sf *ViewUseCase) SelfCheck() { sf.ArchUseCase.SelfCheck() sf.Size_.SelfCheck() } // Draw -- рисует вариант использования func (sf *ViewUseCase) Draw(canvas *svg.SVG) { x, y := sf.Coord_.Int() // offX := int(sf.Label().Offset().X()) w, h := sf.Size_.Int() // Овал canvas.Ellipse(x+70, y, w, h, "fill:none;stroke:black") // strLabel := sf.Label().String() sf.text.Draw(canvas) // if strLabel != "" { // canvas.Text(x+offX, y+6, strLabel, "font-size: 14px; font-family: Courier; fill: black") // } // if msgErr := sf.Check(mapElem); msgErr != "" { // canvas.Group("Ошибка") // canvas.Title(msgErr) // canvas.Image(x-20, y-20, 16, 16, "/static/img/warning.png") // } canvas.Gend() }