ArrayStyle
=================

.. currentmodule:: axioma.render

.. class:: ArrayStyle

	.. deprecated:: >2.0.2

	Ассоциативный контейнер стилей. Вне зависимости от общего количества элементов активен только один стиль массива. Отрисовка будет производиться с использованием именно этого активного стиля. В массивен не может быть меньше одного элемента. Смена активного элемента производится посредством метода :meth:`~axioma.render.ArrayStyle.setActiveStyle`

	Унаследован от: :class:`~axioma.render.Style`

		.. py:method:: ArrayStyle(key, style)

			Конструктор. Создает массив с единственным элементом. Этот элемент по умолчанию становится активным. 

			:param key: Наименование первого элемента массива
			:type key: :class:`str`
			:param style: Стиль первого элемента массива
			:type style: :class:`~axioma.render.Style`

		.. py:method:: setStyle(key, style)

			Устанавливает новое значение стиля. Если стиль с таким наименованием уже присутствует в массиве, он заменяется, если нет, то добавляется в конец списка. После выполнения данного метода активный стиль не меняется. Изменение возможно только в том случае, если был изменено значение самого активного стиля

			:param key: Наименование элемента массива
			:type key: :class:`str`
			:param style: Стиль элемента массива. Так-же допустимо использование сложных стилей :class:`~axioma.render.CollectionStyle`
			:type style: :class:`~axioma.render.Style`

		.. py:method:: remove(key)

			Удаление стиля по его наименованию, если такой существует. Если удаляется активный стиль, то активным становится стиль, являющийся первым в списке. Список можно получить посредством метода :meth:`~axioma.render.ArrayStyle.keys`. Невозможно удалить элемент массива, если он является единственным.

			:param key: Наименование элемента массива
			:type key: :class:`str`
			:return: True, если удаление произведено успешно. В противном случае False
			:rtype: :class:`bool`

		.. py:method:: exist(key)

			Проверка существования стиля с таким наименованием

			:param key: Наименование проверяемого элемента массива
			:type key: :class:`str`
			:return: True, если такой существует. В противном случае False
			:rtype: :class:`bool`

		.. py:method:: count()

			Количество элементов

			:rtype: :class:`int`

		.. py:method:: activeKey()

			Возвращает наименование активного элемента

			:rtype: :class:`str`

		.. py:method:: activeStyle()

			Возвращает активный стиль

			:rtype: :class:`~axioma.render.Style`

		.. py:method:: setActiveStyle(key)

			Смена активного стиля на другой по его наименованию

			:param key: Наименование элемента массива
			:type key: :class:`str`
			:return: True, если операция успешна. В противном случае False, если такого наименования не найдено
			:rtype: :class:`bool`

		.. py:method:: keys()

			Список всех наименований. Упорядочен в соответствии с их внутренним расположением.

			:rtype: :class:`list` [ :class:`str` ]

		.. py:method:: style(key)

			Возвращает стиль по его наименованию.

			:param key: Наименование элемента массива
			:type key: :class:`str`
			:rtype: :class:`~axioma.render.Style`

Пример использования:

  .. code-block:: python
  
            from axioma.mapinfo import *
            from axioma.render import *

            # Создаем предварительно стили, которые поместим в массив
            style1 = MapBasicStyle().styleFromString("Pen (2,2,0) Brush (2,%d)" % (colorToMapbasic(Qt.red)))
            style2 = MapBasicStyle().styleFromString("Pen (2,2,0) Brush (2,%d)" % (colorToMapbasic(Qt.blue)))
            arrayStyle = ArrayStyle('red', style1) # Создаем массив с одним элементом
            arrayStyle.setStyle('blue', style2)  # Добавляем еще один стиль. Установлено 2 стиля с активным red
            rectangle1 = Rectangle(cs_ne, QRectF(500, 300, 50,50))
            arrayStyle.draw(rectangle1, context)  # Рисуем первый прямоугольник
            arrayStyle.setActiveStyle('blue') # Меняем активный стиль на значение blue
            rectangle2 = Rectangle(cs_ne, QRectF(500, 200, 50,50))
            arrayStyle.draw(rectangle2, context) # Рисуем второй прямоугольник
