// package view_use_case -- отображение вариант использования package view_use_case import ( svg "github.com/ajstarks/svgo" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" ) // ViewUseCase -- вариант использования type ViewUseCase struct { types.IElemUseCase Size_ types.ISize } // NewViewUseCase -- возвращает новый вариант использования func NewViewUseCase(useCase types.IElemUseCase) *ViewUseCase { sf := &ViewUseCase{ IElemUseCase: useCase, } sf.SelfCheck() return sf } // SelfCheck -- проверяет корректность элемента func (sf *ViewUseCase) SelfCheck() { sf.IElemUseCase.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.Label().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() }