Локализация

При использовании атрибутов обязательно указываются локализованные имена блоков в виде [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;
    }
}
C#

Данный код сгенерирует следующие блоки для блокли

где 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;
    }
}
C#

Для этого кода будут сгенерированы по одному геттеру и сеттеру с возможностью выбрать интересующее свойство в выпадающем списке

 

Список атрибутов

В Varwin определены следующие атрибуты групп:

  • ActionGroup
  • CheckerGroup
  • EventGroup
  • FunctionGroup
  • VariableGroup

Атрибуты логических групп

Блоки можно разделять по логическим группам при помощи атрибута [LogicGroup(English: "Example Logic Group", Russian: "Логическая группа для примера")]. Такой атрибут поместит блок в логическую группу "Логическая группа для примера"

Атрибут подсказки (тултипа)

Чтобы добавить всплывающую подсказку, которая появляется при наведении на блок логики, нужно использовать атрибут [LogicTooltip(English: "Tooltip for logic block example", Russian: "Пример тултипа для блока логики")]