TableLayer
=================

.. currentmodule:: axioma.render

.. class:: TableLayer

	Класс слоя, относящегося к таблице для просмотра и редактирования в нем данных.

	Унаследован от: :class:`FeatureLayer`

	От него наследуются: :class:`CosmeticLayer`

		.. py:method:: TableLayer(table,  parent)

			Конструктор

			:param table: Ссылка на таблицу - источник данных.
			:type table: :class:`~axioma.core.dp.Table`
			:param parent: Родительский объект.
			:type parent: :class:`~PyQt5.QtCore.QObject`

		.. py:method:: TableLayer(other)

			Копирующий конструктор

			:param other: Исходный слой, на базе которого создается слой.
			:type other: :class:`TableLayer`

		.. py:method:: table()

			Таблица, на которой базируется слой.

			:return: Ссылка на таблицу
			:rtype: :class:`~axioma.core.dp.Table`

		.. py:method:: sourceTable()

			Исходная таблица.

			:return: Ссылка на таблицу
			:rtype: :class:`~axioma.core.dp.Table`

		.. py:method:: isReadOnly()

			Доступен ли слой только на чтение.

			:return:  True, если слой доступен только на чтение, False, если слой доступен на чтение и запись
			:rtype: :class:`bool`

		.. py:method:: tableSchema()

			Схема (структура) таблицы слоя.

			:return:  Возвращает структуру таблицы, на которой основан слой
			:rtype: :class:`~axioma.core.dp.TableSchema`

		.. py:method:: geometryAttribute()

			Геометрический атрибут таблицы.

			:return:  Возвращает описание геометрии слоя
			:rtype: :class:`~axioma.core.dp.GeometryAttributeDefinitionInterface`

		.. py:method::hidden: prepareCoordSystem(cs, outSchema, gind)
		.. py:method::hidden: visibleFeatures(georect, attributes)

		.. py:method::hidden: featuresById(ids, attributes)

		.. py:method:: featuresById(idlist, attributes)
		
			Возвращает записи по их идентификаторам в виде итератора

			:param idlist: Список идентификаторов
			:type idlist: :class:`list` [ :class:`~PyQt5.QtCore.QVariant` ]
			:param attributes: Список атрибутов, которые должны быть представлены в результирующем курсоре
			:type attributes: :class:`list` [ :class:`str` ]
			:return: Результирующий итератор
			:rtype: :class:`~axioma.core.dp.Cursor`

		.. py:method::hidden: featuresById(ids)
		
		.. py:method:: featuresById(idlist)

			Возвращает записи по их идентификаторам в виде итератора

			:param idlist: Список идентификаторов
			:type idlist: :class:`list` [ :class:`~PyQt5.QtCore.QVariant` ]
			:return: Результирующий итератор
			:rtype: :class:`~axioma.core.dp.Cursor`

		.. py:method:: featuresInRect(georect, attributes)

			Возвращает записи, попадающие в определенный регион в виде итератора

			:param georect: Область карты в координатах cs и сама КС.
			:type georect: :class:`~axioma.core.dp.GeoRect`
			:param attributes: Список атрибутов, которые должны быть представлены в результирующем курсоре
			:type attributes: :class:`list` [ :class:`str` ]
			:return: Результирующий итератор
			:rtype: :class:`~axioma.core.dp.Cursor`

		
		.. py:method::hidden: less(first, second)

		.. py:method::hidden: isExactMbrCalculation() const;
		.. py:method::hidden: setExactMbrCalculation(timeout = 100);

		.. py:method:: hasModified()

			Присутствуют ли изменения в базовой таблице.

			:return:  True, если да
			:rtype: :class:`bool`

		.. py:method:: updateFeatures(features, description = "")

			Обновление существующих записей

			:param  features:  Список записей
			:type features: :class:`list` [:class:`~axioma.core.dp.Feature`]
			:param description: Текстовое описание действия
			:type description: :class:`str`

		.. py:method:: deleteFeatures(features, description = "")

			Удаление существующих записей

			:param  features:  Список записей
			:type features: :class:`list` [:class:`~axioma.core.dp.Feature`]
			:param description: Текстовое описание действия
			:type description: :class:`str`

		.. py:method:: insertFeatures(features, description = "")

			Вставка новых записей

			:param  features:  Список записей
			:type features: :class:`list` [:class:`~axioma.core.dp.Feature`]
			:param description: Текстовое описание действия
			:type description: :class:`str`
			
		.. py:method:: hasModified()

			Проверяется, имеются ли изменения в таблице

			:return: True, если да. В противном случае False
			:rtype: :class:`bool`

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

.. literalinclude:: ../../../../../examples/editLayer.py
        :language: python
        :linenos:
