// package view_use_group -- отображение группы вариантов использования package view_use_group import ( "fmt" 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_group" ) // ViewUseGroup -- отображение группы вариантов использования type ViewUseGroup struct { *use_group.UseGroup } // NewViewUseGroup -- возвращает новое отображение группы вариант использования func NewViewUseGroup(elem map[string]interface{}) (*ViewUseGroup, error) { useGroup, err := use_group.NewUseGroup(elem) if err != nil { return nil, fmt.Errorf("NewViewUseGroup(): in create UseGroup, err=\n\t%w", err) } sf := &ViewUseGroup{ UseGroup: useGroup, } return sf, nil } // Draw -- рисует группу вариантов использования func (sf *ViewUseGroup) Draw(canvas *svg.SVG, mapElem map[alias.Id]types.IElemDrawer) { x := int(sf.Coord_.X_) y := int(sf.Coord_.Y_) offX := int(sf.Offset_.X_) w := int(sf.W_) h := int(sf.H_) // Главный квадрат canvas.Rect(x, y, w, h, "fill:none;stroke:black") // Заголовок canvas.Rect(x, y-26, h/2, 26, "fill:none;stroke:black") if sf.Label_ != "" { canvas.Text(x+offX, y-8, string(sf.Label_), "font-size: 14px; font-family: Courier; fill: black") } }