| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // package view_use_group -- отображение группы вариантов использования
- package view_use_group
- 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_group"
- "gitp78su.ipnodns.ru/svi/kern/v3"
- )
- // ViewUseGroup -- отображение группы вариантов использования
- type ViewUseGroup struct {
- UseGroup *use_group.UseGroup
- }
- var (
- hassert = kern.GetFnHassert()
- )
- // NewViewUseGroup -- возвращает новое отображение группы вариант использования
- func NewViewUseGroup(useGroup *use_group.UseGroup, elem map[string]interface{}) *ViewUseGroup {
- hassert(useGroup != nil, "NewViewUseGroup(): useGroup == nil")
- sf := &ViewUseGroup{
- UseGroup: useGroup,
- }
- return sf
- }
- // Draw -- рисует группу вариантов использования
- func (sf *ViewUseGroup) Draw(canvas *svg.SVG, mapElem map[alias.Id]types.IElemDrawer) {
- x := int(sf.UseGroup.ElemBase_.Label_.Coord_.X_)
- y := int(sf.UseGroup.ElemBase_.Label_.Coord_.X_)
- offX := int(sf.UseGroup.ElemBase_.Label_.Offset_.X_)
- w := int(sf.UseGroup.Size_.W_)
- h := int(sf.UseGroup.Size_.H_)
- // Главный квадрат
- canvas.Rect(x, y, w, h, "fill:none;stroke:black")
- // Заголовок
- canvas.Rect(x, y-26, h/2, 26, "fill:none;stroke:black")
- strLabel := string(sf.UseGroup.ElemBase_.Label_.Val_)
- if strLabel != "" {
- canvas.Text(x+offX, y-8, strLabel, "font-size: 14px; font-family: Courier; fill: black")
- }
- }
|