# Редактор шаблонов

(руководство разработчика)

Редактор шаблонов служит дял создание (редактирования) взаимосвязанных компонентов проетка.

## Создание окна

При создании диалогового окна, создаются две области

1. Область навигации - m_treeNavigator.
   Служит для выбора панелей редактирования.
2. Область панелей редактирования - m_workPanels.
   Панель выбора шаблона доступна всегда. После выбора шаблона, в панели навигации добавляются дополнительные узлы дерева, позволяющие вызывать панели редактирования свойств компонентов.

Кроме того изначально создаётся две панели:

1. Панель выбора шаблонов - m_treeTemplateList.
   Содержит список с деревом доступных шаблонов.
2. Панель редактирования основных свойств шаблона - m_pageTemplate.
   Панель содержить ссылку на корневой узел шаблона - m_root (изначально нулевой - т.е. шаблон не выбран).

## Связывание с редактором проекта.

Перед вызовом редактора шаблонов, его необходимо связать с редактором проекта вызвав функцию TemplateDialog::setEditor(ProjectEditor *editor).

При этом загрузятся настройки диалогового окна и будет создано дерево выбора шаблонов.

## Загрузка шаблона

При двойном клике в дереве выбора шаблонов или клике на кнопку "Загрузить", происходит создание выбранного шаблона (вызывается TemplateDialog::templateLoad()).

В рамках этой процедуры загружается соответсвующий файл и, по его содержимому, создаются элементы шаблона (TemplatePart) образующие дерево. Корень дерева - m_root.

Изначально элементы шаблона не ссылаются на компоненты проэкта (TemplatePart::*projectComponent() == 0).

## Создание новых компонентов проэкта

Кликнув по кнопке "Создать", мы создаём компоненты в проекте согласно выбранному шаблону (createComponents()). После создания каждый компонент верхнего уровня входящий в шаблок добавляется в проект (его дочерние компоненты добавляются автоматически).