Selection - Класс информации о выделении
======================================================

.. currentmodule:: axioma.core.dp

.. class:: Selection

	Класс информации о выделении

		.. method:: Selection()

			Конструктор класса

		.. method:: Selection(table, ids)

			Конструктор класса

			:param table: таблица, которой принадлежат выделенные записи
			:type table: :class:`~axioma.core.dp.Table`
			:param ids: список идентификаторов записей для выделения
			:type ids: :class:`list` [:class:`~PyQt5.QtCore.QVariant`]

		.. attribute:: table

			Таблица с выделенными записями

			:type: :class:`~axioma.core.dp.Table`


		.. method:: setIds(ids)

			Задать список идентификаторов выделенных записей; если идентификаторы не уникальны - \
			дубликаты не будут добавлены. Также идентификаторы будут отсортированы с использованием \
			функтора сравнения идентификаторов таблицы (см. :class:`~axioma.core.dp.VariantComparator`)

			.. code-block:: python
				:name: axioma.core.dp.Selection.setIds

				# ...
				# selection - выделение
				# ...
				ids = [21, 140, 27, 42, 27]
				selection.setIds(ids)

				print selection.ids()
				# >>> [21, 27, 42, 140]

			:param ids: список идентификаторов
			:type: :class:`list` [:class:`~PyQt5.QtCore.QVariant`]

		.. method:: ids()

			Получить список идентификаторов выделенных записей

			:return: список идентификаторов
			:rtype: :class:`list` [:class:`~PyQt5.QtCore.QVariant`]

		.. method:: size()

			Размер выделения, то есть количество выделенных записей \
			(количество элементов в списке идентификаторов)

			:return: количество выделенных записей
			:rtype: :class:`int`
