| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- // 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"
- "gitp78su.ipnodns.ru/svi/goarch/lev1/arch_use_group"
- "gitp78su.ipnodns.ru/svi/goarch/lev1/view_coord"
- "gitp78su.ipnodns.ru/svi/goarch/lev1/view_size"
- )
- // ViewUseGroup -- отображение группы вариантов использования
- type ViewUseGroup struct {
- *arch_use_group.ArchUseCaseGroup
- text types.IViewText
- coord *view_coord.ViewCoord
- size *view_size.ViewSize
- }
- var (
- hassert = kern.GetFnHassert()
- )
- // NewViewUseGroup -- возвращает новое отображение группы вариант использования
- func NewViewUseGroup(useGroup *arch_use_group.ArchUseCaseGroup, label types.IViewText) *ViewUseGroup {
- hassert(useGroup != nil, "NewViewUseGroup(): useGroup == nil")
- sf := &ViewUseGroup{
- ArchUseCaseGroup: useGroup,
- text: label,
- }
- sf.SelfCheck()
- _ = types.IViewNode(sf)
- return sf
- }
- // Coord -- координаты группы вариантов использования
- func (sf *ViewUseGroup) Coord() types.IViewCoord {
- return sf.coord
- }
- // SelfCheck -- проверяет корректность элемента
- func (sf *ViewUseGroup) SelfCheck() {
- hassert(sf.ArchUseCaseGroup != nil, "ViewUseGroup.SelfCheck(): IElemUseGroup == nil")
- hassert(sf.text != 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.text.Draw(canvas)
- }
|