sem_new.mbx (Редактор семантики)
Версия 1.1

(C)Андрей Багровский (оригинальная версия), Дмитрий Мазуров (текущая версия).


			Введение.

	Программа sem_new представляет собой редактор семантики и оформления объектов карты и опирается на базу данных условных знаков, называемую классификатором. Классификатор представляет собой папку, где обязательно присутствуют файлы s_ugod.dbf, xar.dbf, spr_xar.dbf и uz_mi.dbf. Для разработки классификаторов служит отдельная программа, Редактор классификатора. Вкратце, программа sem_new предоставляет пользователю возможность выбранному объекту сопоставить некоторый вид объекта из классификатора. При этом программой изменяются стили оформления объекта (стиль символа, стиль линии и/или стиль штриховки) и в специальные колонки vid_kod и vid_name записываются код и название вида объекта по классификатору. Угол разворота точечных объектов не меняется программой.
	Классификатор имеет иерархическую структуру. Все виды объектов поделены на слои, такие как, например, Гидрография, Растительность и т.п.. Слои, в свою очередь, поделены на группы объектов. Например, слой Гидрография может содержать группы Реки, Озера и т.п. Чтобы выбрать вид объекта, обычно требуется сначала указать слои и группу объектов. Другой способ - через поиск по названию вида объекта. Код объекта представляет из себя строку из 8 символов:
СС.ГГ.ОО, где СС- номер слоя, ГГ- номер группы в слое, ОО- номер объекта в группе.
	Также в редакторе семантики есть возможность редактирования характеристик объекта, т.е. пар вида Имя_характеристики=Значение, при этом Значение  можно набрать вручную или выбрать из предлагаемого списка. Состав характеристик и их списки значений определяются классификатором. Все характеристики хранятся в одной колонке notes в виде последовательности
Имя:Значение:Имя:Значение: ... Имя:Значение:
	Программа позволяет выбирать используемый классификатор и обновлять его с сетевого сервера "на лету".

			
			Ограничения.

	Для работы программы требуется, чтобы в изменяемой таблице присутствовали три строковых колонки: 
vid_kod - код вида объекта (8 знаков);
vid_name - имя вида объекта (порядка 100 знаков, длина зависит от максимальной длины имени вида объекта в используемом классификаторе);
notes - характеристики объекта (255 знаков, максимум длины колонки).
	На данный момент программа поддерживает редактирование только точечных, линейных и площадных объектов. Текстовые объекты, группы точек и коллекции не поддерживаются. 
	Для функционирования программы требуется, чтобы в Windows был установлен BDE (Borland Database Engine - система доступа к базам данных фирмы Борланд). Для этого можно, например, воспользоваться установочным пакетом mi_sem_install (типичная установка).


			Порядок работы.

	После запуска sem_new.mbx, в MapInfo появляется панель инструментов mi_sem (MapInfo SEMantics) с единственной кнопкой "mi_sem", открывающей главный диалог программы, редактор семантики. Вместо нажатия на кнопку можно воспользоваться клавишным сокращением Ctrl+~ (клавиша с символом ~ (тильда) располагается под клавишей Esc). Перед вызовом редактора семантики нужно выбрать объекты, семантику и оформление которых требуется изменить. При выборе множества объектов им всем будет сопоставлен один вид объекта. Можно вызвать редактор семантики, не выбирая ничего, чтобы просмотреть состав классификатора. При первом запуске программа попросит вас выбрать классификатор.


		Главный диалог.

	Начнем сверху.

"Классификатор:" [кнопка с названием классификатора] [кнопка обновить].
	Название классификатора - это просто имя папки, в которой содержатся его таблицы (*.dbf). Если нажать кнопку с именем классификатора, появится окно обзора папок, позволяющее выбрать для использования другой классификатор. 
	Кнопка Обновить позволяет обновить текущий классификатор с сетевого сервера. Для этого в настройках программы должна быть указана папка на сервере, в которой размещаются последние версии классификаторов. Кнопка вызова диалога настроек находится в левом нижнем углу главного диалога.

Код объекта: здесь указывается текущий код объекта.

Имя (по семантике): текущий вид объекта.

Имя (по классификатору): вид объекта, по классификатору соответствующий текущему коду.

Слой/Группа объектов: путь к виду объекта в иерархическом дереве классификатора.

Кнопка справа (изображена рука с карандашом): вызывает диалог выбора нового вида объекта.

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

Ниже идет список характеристик объекта. Состав характеристик определяется только группой, к которой принадлежит объект.

Изначально (сразу после вызова) редактор семантики находится в состоянии просмотра. Если был выбран другой вид объекта (с помощью соответствующего диалога), редактор переходит в состояние редактирования. В этом состоянии отображается как старый, так и новый код объекта, а также старое и новое имя. Других отличий нет.

Кнопка в левом нижнем углу вызывает диалог настроек(см.ниже).

		Диалог выбора вида объекта.

	Основную часть диалога занимает дерево классификатора. Раскрываем нужный слой, затем нужную группу и выбираем нужный вид объекта. Замечу, что отображаются только один объекты одного типа: точечные, линейные или площадные, в зависимости от типа выбранного объекта(ов). Если объекты не были выбраны перед вызовом редактора семантики, отображаются все объекты. Для подтверждения выбора нужно нажать ОК или два раза щелкнуть на нужном виде объекта. 
	Над деревом располагается группа элементов управления, служащая для поиска вида объекта по названию. В поле ввода нужно ввести часть названия (регистр букв не учитывается). Кнопка "Вперед" запустит поиск вниз, "Назад" - вверх по дереву. Если галочка "Заново" установлена, поиск будет вестись с начала/конца дерева (в зависимости от направления поиска). Если галочка снята, будет найдено следующее вхождение.

		Диалог настроек.

	Здесь задается папка с обновлениями классификаторов - это обычно расположенная где-то в сети папка, где выкладываются последнии версии классификаторов.
	
	Ниже идут две галки:
"Сохранять характеристики, которых нет в классификаторе" - если снять эту галочку, то характеристики, отсутствующие в определении группы объектов в используемом классификаторе, будут безжалостно удаляться.
"Сохранять характеристики с пустым значением" - если снять эту галку, характеристики, значение для которых не задано, будут удаляться из поля notes. Это не помешает задать их значение позже, воспользовавшись редактором семантики.


			Заключение.

	Настоятельно не рекомендуется редактировать поле notes вручную. Меняйте характеристики в редакторе семантики!