// package view_use_group -- отображение группы вариантов использования package view_use_group import ( svg "github.com/ajstarks/svgo" "gitp78su.ipnodns.ru/svi/kern/v3" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" ) // ViewUseGroup -- отображение группы вариантов использования type ViewUseGroup struct { types.IElemUseGroup Label_ types.IElemLabel } var ( hassert = kern.GetFnHassert() ) // NewViewUseGroup -- возвращает новое отображение группы вариант использования func NewViewUseGroup(useGroup types.IElemUseGroup, label types.IElemLabel) types.IDrawer { hassert(useGroup != nil, "NewViewUseGroup(): useGroup == nil") sf := &ViewUseGroup{ IElemUseGroup: useGroup, Label_: label, } sf.SelfCheck() return sf } // SelfCheck -- проверяет корректность элемента func (sf *ViewUseGroup) SelfCheck() { hassert(sf.IElemUseGroup != nil, "ViewUseGroup.SelfCheck(): IElemUseGroup == nil") hassert(sf.Label_ != nil, "ViewUseGroup.SelfCheck(): Label_ == nil") } // Draw -- рисует группу вариантов использования func (sf *ViewUseGroup) Draw(canvas *svg.SVG) { x, y := sf.Coord().Int() w, h := sf.Size().Int() // Главный квадрат canvas.Rect(x, y, w, h, "fill:none;stroke:black") // Заголовок canvas.Rect(x, y-26, h/2, 26, "fill:none;stroke:black") sf.Label_.Draw(canvas) }