====== Контейнер свойств ======
Контейнер свойств - это вспомогательный компонент, который служит хранилищем для [[:products:pussy:concepts:property|Свойств]], обеспечивает простой интерфейс для манипуляции ими. В составе [[:products:pussy:concepts:plugin|Плагинов]] используется для хранения пользоватьских настроек. Контейнер свойств позволяет производить такие операции как:
* получение графического интерфейса (формы) для редактирования значений свойств в контейнере;
* извлечение/установка значений и параметров;
* получать доступ к определенному свойству и его значению;
* перевод всех отображаемых данных свойств на другие языки.
Дополнительную информацию читайте в материалах: [[:products:pussy:api:pyub:types:properties:main|]], [[:products:pussy:api:pyub:types:propertycontainer|]], [[:products:pussy:other:dev_propertycontainer_gui|]]
===== Применение =====
Первым дело нужно создать класс-потомок [[:products:pussy:api:pyub:types:propertycontainer|PropertyContainer, ]]экземпляры Свойств записываются в теле класса как аннотации, объявление данного класса выглядит следующим образом:
class <Имя класса>(PropertyContainer):
<имя свойства 1>:<Класс свойства>(<параметры>)
<имя свойства 2>:<Класс свойства>(<параметры>)
...
Указанные в теле класса Свойства будут сохранены в атрибуте //_ _annotations_ _ //, но знать об этом в принципе не обязательно, так как для работы есть все необходимые методы.
Получить значения свойств можно несколькими способами:
- использовать специальный метод класса //[[http://wiki.mig-ironmesh.ru/products;pussy;api;pyub;types;propertycontainer#get_property_value|get_property_value()]]//, ему нужно передать фактическое имя свойства;
- создать экземпляр класса контейнера и обратиться к значению свойства как к обычному атрибуту (например, <экземпляр класса>.<имя свойства>).
Получить ссылку на свойство поможет метод //[[http://wiki.mig-ironmesh.ru/products;pussy;api;pyub;types;propertycontainer#get_property|get_property()]]// , ему нужно передать фактическое имя свойства. Это нужно для того, чтобы, например, изменить параметры свойства во время исполнения, их имена начинаются на **p_. ** Чтобы сохранить параметры на жестком диске нужно воспользоваться соответствующим методом у класса **[[:products:pussy:api:pyub:types:ubhelper|]]**, это работает если Контейнер свойств используется для хранения пользовательских настроек в составе Плагина.
Выше описана работа с составе Плагина, большинство методов, которые имеются используются Менеджером автоматически в зависимости от контекста. Конечно, можно найти Свойствам в составе контейнера и другие применения,например, для создания форм для ввода данных. Чтобы узнать больше о реализации читайте [[:products:pussy:api:pyub:main|Справочник API]]