Перейти к основному содержимому

Пользовательские виджеты - сервер

Описание модели объекта атрибутов​

Для создания пользовательского виджета вы должны создать модель объекта атрибутов. Это обеспечивает типобезопасность при использовании виджета при создании макетов.

подсказка

Используйте ValueReferenceHolder, если хотите, чтобы атрибуты вашего пользовательского виджета могли быть размечены для использования в составе компонентов.

Используйте AnimatedPropertyOwner, если хотите поддерживать Duit-анимацию в вашем пользовательском виджете.

    type SvgAttributes struct {
ValueReferenceHolder
animations.AnimatedPropertyOwner
Width float32 `json:"width,omitempty"`
Height float32 `json:"height,omitempty"`
Content string `json:"content,omitempty"`
}

Создание функции-конструктора​

Функции-конструкторы в стиле DSL Duit помогают сохранить общую семантику верстки макетов и использовать пользовательские виджеты единообразно с базовыми виджетами.

    func Svg(attributes *SvgAttributes, id string, controlled bool) *duit_core.DuitElementModel {
return new(duit_core.DuitElementModel).CreateElement(
duit_core.Custom, //type = Custom
id, // widget id
"SvgCustomWidget", //unique tag for this type of widgets
attributes, //attributes object
nil, //related action
controlled, //controlled or uncontrolled
0, //may have child elements or not, where 0 means no
nil, //data for conponents (nil at this case)
nil, //custom widget subviews (children), if it has
)
}
к сведению

Пользовательские виджеты обязательно должны иметь уникальный тег.

После этого можно использовать новые функции для создания макетов так же, как и для стандартных виджетов, поддерживаемых Duit.