# ViewManager - Менеджер содержимого окон

class axipy.ViewManager

  Менеджер содержимого окон.

  Примечание

  Создание `axipy.ViewManager` не требуется, используйте объект `axipy.view_manager`.

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

      table = provider_manager.openfile(filepath)
      m = Map([table])
      view_manager.create_mapview(m)

  Свойства:

  `active` | Текущее активное окно.
  `count` | Количество окон.
  `data_managers` | Список виджетов управления списком открытых данных.
  `global_parent` | Этот параметр можно использовать как родительское окно 'parent' при открытии диалогов.
  `layer_controls` | Список виджетов управления слоями карты.
  `legendviews` | Список всех окон с легендами.
  `mapviews` | Список всех окон с картами.
  `reportviews` | Список всех окон с отчетами.
  `tableviews` | Список всех окон с таблицами просмотра.
  `views` | Список всех известных окон.

  Методы:

  `activate`(view) | Делает заданное окно активным.
  `add_to_current_mapview`(value) | Добавляет слой в текущее окно.
  `close`(view) | Закрывает окно.
  `close_all`() | Закрывает все окна.
  `create_legendview`(mapview) | Создает окно легенды для карты.
  `create_mapview`(map) | Создает окно из для переданного объекта карты.
  `create_reportview`([report]) | Создает окно с планом отчета.
  `create_tableview`(table) | Создает окно в виде табличного представления из объекта данных.
  `create_view`(value) | Создает окно из для переданного объекта соответствующего типа.

  Сигналы:

  `active_changed` | Активное окно изменилось.
  `count_changed` | Количество окон изменилось.
  `mainwindow_activated` | Возникает когда главное окно приложения инициализировано и активировано.

  Специальные методы:

  `__contains__`(key) | Проверяет существование окна с заданным именем.
  `__getitem__`(key) | Возвращает существующее окно по имени.
  `__iter__`() | Возвращает итератор по объекту (функция `iter()`).
  `__len__`() | Длина объекта (функция `len()`).

  __contains__(key: str) → bool

    Проверяет существование окна с заданным именем.

    Параметры:

      key – Имя окна.

  __getitem__(key: str) → View

    Возвращает существующее окно по имени.

    Исключение:

      KeyError – Окно с заданным именем не найдено.

  __iter__() → Iterator[View]

    Возвращает итератор по объекту (функция `iter()`).

  __len__() → int

    Длина объекта (функция `len()`).

  activate(view: View)

    Делает заданное окно активным.

    Параметры:

      view – Содержимое окна.

  property active: Optional[View]

    Текущее активное окно.

    Результат:

      None, если нет активных окон.

  property active_changed: Signal

    Активное окно изменилось.

    Тип результата:

      Signal[QWidget]

  add_to_current_mapview(value: Union[Layer, DataObject])

    Добавляет слой в текущее окно. Если текущее окно карты отсутствует, создается новое окно.

    Параметры:

      value – Слой или объект данных

  close(view: View)

    Закрывает окно.

    Параметры:

      view – Содержимое окна.

  close_all()

    Закрывает все окна.

  property count: int

    Количество окон.

  property count_changed: Signal

    Количество окон изменилось.

    Тип результата:

      Signal[]

  create_legendview(mapview: MapView) → LegendView

    Создает окно легенды для карты.

    Параметры:

      mapview – Окно с картой.

    Результат:

      Окно с легендой.

  create_mapview(map: Union[Map, Layer, DataObject, List[Layer]]) → MapView

    Создает окно из для переданного объекта карты.

    Параметры:

      map – Карта, слой или объект данных.

    Примечание

    Переданная карта копируется.

    Результат:

      Окно карты.

  create_reportview(report: Optional[Report] = None) → ReportView

    Создает окно с планом отчета.

    Параметры:

      report – План отчета. Если не передан, то создается по умолчанию.

    Результат:

      Окно отчета.

  create_tableview(table: Table) → TableView

    Создает окно в виде табличного представления из объекта данных.

    Параметры:

      table – Таблица.

    Результат:

      Окно таблицы.

  create_view(value: Union[Map, Layer, DataObject, Report, MapView]) → Union[MapView, TableView, ReportView, LegendView]

    Создает окно из для переданного объекта соответствующего типа.

    Параметры:

      value – таблица, слой, карта или отчет.

    Результат:

      Окно.

  property data_managers: Tuple[DataManagerWidget, ...]

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

  property global_parent: QWidget

    Этот параметр можно использовать как родительское окно „parent“ при открытии диалогов. Если не указывать родителя, диалог может отображаться как отдельное окно, независимое от основного окна программы.

    Пример:

        if QMessageBox.question(view_manager.global_parent, 'Вопрос', 'Отменить действие?') == QMessageBox.Yes:
            pass

  property layer_controls: Tuple[LayerControlWidget, ...]

    Список виджетов управления слоями карты.

  property legendviews: List[LegendView]

    Список всех окон с легендами.

  property mainwindow_activated: Signal

    Возникает когда главное окно приложения инициализировано и активировано. Данное событие может использоваться в плагинах, когда есть необходимость обратиться к главному окну приложения. Но ввиду того, что сами плагины загружаются до инициализации главного окна, данную процедуру можно выполнить используя данное событие (`axipy.AxiomaInterface.window`).

    Тип результата:

      Signal[]

  property mapviews: List[MapView]

    Список всех окон с картами.

    Пример:

        for v in view_manager.mapviews:
            print('Widget:', v.title)

        ```>>> Widget: Карта: world```
        ```>>> Widget: Карта: rus_obl```

  property reportviews: List[ReportView]

    Список всех окон с отчетами.

  property tableviews: List[TableView]

    Список всех окон с таблицами просмотра.

  property views: List[View]

    Список всех известных окон.