Общие свойства атрибутов
Локализация
При использовании атрибутов обязательно указываются локализованные имена блоков в виде [AttributeName(English: "text", Russian: "текст")]
. При этом должна присутствовать как минимум одна локаль
Модификаторы доступа
Блоки генерируется только для сущностей с модификаторами доступа public
и internal
. Например, для атрибута свойств [Variable]
код выглядит следующим образом
public class Cube : VarwinObject
{
private string _text;
[Variable(English: "text", Russian: "текст")]
public string TextPanel
{
get => _text;
internal set => _text = value;
}
}
Данный код сгенерирует следующие блоки для блокли
где 21 - имя конкретного экземпляра объекта Cube, созданного в Varwin XRMS
При переключении языка Varwin XRMS вид блоков изменится в соответствии с выбранным языком
Group Attributes
Для некоторых атрибутов существуют дополнительные атрибуты, так называемые атрибуты групп, позволяющие создавать группы блоков. Блоки с одинаковыми именами группы будут группироваться в один блок с выпадающим списком
Такие атрибуты можно использовать только в связке с основным атрибутом. Важно помнить, что можно группировать только блоки с одинаковыми сигнатурами (количество и типы входных параметров должны совпадать). Например, для атрибута [Variable]
атрибут групп [VariableGroup("group name")]
public class Cube : VarwinObject
{
private string _text;
private string _anotherText;
[VariableGroup("panel texts")]
[Variable(English: "text", Russian: "текст")]
public string TextPanel
{
get => _text;
set => _text = value;
}
[VariableGroup("panel texts")]
[Variable(English: "another text", Russian: "другой текст")]
internal string AnotherText
{
get => _anotherText;
set => _anotherText = value;
}
}
Для этого кода будут сгенерированы по одному геттеру и сеттеру с возможностью выбрать интересующее свойство в выпадающем списке
Список атрибутов
В Varwin определены следующие атрибуты групп:
- ActionGroup
- CheckerGroup
- EventGroup
- FunctionGroup
- VariableGroup
Атрибуты логических групп
Блоки можно разделять по логическим группам при помощи атрибута [LogicGroup(English: "Example Logic Group", Russian: "Логическая группа для примера")]
. Такой атрибут поместит блок в логическую группу "Логическая группа для примера"
Атрибут подсказки (тултипа)
Чтобы добавить всплывающую подсказку, которая появляется при наведении на блок логики, нужно использовать атрибут [LogicTooltip(English: "Tooltip for logic block example", Russian: "Пример тултипа для блока логики")]