// package view_use_case -- отображение вариант использования package view_use_case import ( svg "github.com/ajstarks/svgo" "gitp78su.ipnodns.ru/svi/goarch/lev0/alias" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" "gitp78su.ipnodns.ru/svi/goarch/pkg/elems/use_case" "gitp78su.ipnodns.ru/svi/kern/v3" ) // ViewUseCase -- вариант использования type ViewUseCase struct { UseCase_ *use_case.UseCase } var ( hassert = kern.GetFnHassert() ) // NewViewUseCase -- возвращает новый вариант использования func NewViewUseCase(useCase *use_case.UseCase, elem map[string]interface{}) *ViewUseCase { hassert(useCase != nil, "NewViewUseCase(): useCase=nil") sf := &ViewUseCase{ UseCase_: useCase, } return sf } // Draw -- рисует вариант использования func (sf *ViewUseCase) Draw(canvas *svg.SVG, mapElem map[alias.Id]types.IElemDrawer) { x := int(sf.UseCase_.ElemBase_.Label_.Coord_.X_) y := int(sf.UseCase_.ElemBase_.Label_.Coord_.Y_) offX := int(sf.UseCase_.ElemBase_.Label_.Offset_.X_) w := int(sf.UseCase_.Size_.W_) h := int(sf.UseCase_.Size_.H_) // Овал canvas.Ellipse(x+70, y, w, h, "fill:none;stroke:black") strLabel := string(sf.UseCase_.ElemBase_.Label_.Val_) 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() } }