Форма BaseTreeDictionaryListForm (из пространства имен Ultima.Client.Dictionaries) наследуется от BaseDictionaryListForm и является общим предком для всех списковых форм древовидных справочников:
CommonForm
BaseListForm
BaseDictionaryListForm
BaseTreeDictionaryListForm
Наиболее частая причина создания собственной списковой формы справочника – реализация master-detail интерфейса, также называемой фильтром. Поэтому в форме BaseTreeDictionaryListForm уже размещен унаследованный от BaseDictionaryListForm элемент управления SplitContainer, на правой панели которого расположен элемент управления DictionaryTreeViewPanel, предназначенный для представления списка записей древовидного справочника. Элемент содержит панель инструментов со всем стандартным функционалом – подбором колонок, фильтрами и т.д. Для использования прикладному разработчику доступна только левая панель, которая зарезервирована под размещение фильтра. Если оставить эту область пустой – она будет скрыта в итоговой форме:
Для реализации собственной списковой формы древовидного справочника необходимо унаследовать ее от формы BaseTreeDictionaryListForm и реализовать интерфейсы IRecordBrowser<T> и IRecordSelector<T>, где Т – тип справочника. Система для показа списка записей будет искать форму, реализующую интерфейс IRecordBrowser<T>, а для выбора записей форму, реализующую IRecordSelector<T>. Если в системе не окажется ни одной такой формы, откроется базовая списковая форма справочника. Если в системе окажется более одной такой формы, то система выдаст ошибку. Это позволяет избежать неочевидного поведения системы при ошибке настройки системы администратором.
Класс формы BaseTreeDictionaryListForm реализует следующие методы и обладает следующими свойствами:
•DictionaryType типа type – возвращает тип справочника;
•SelectedID типа long – возвращает идентификатор выбранной в элементе управления DictionaryTreeViewPanel записи справочника;
•SelectedList типа IDList – возвращает список идентификаторов выбранных в элементе управления DictionaryTreeViewPanel записей справочника;
•LoadRecords() – загружает записи справочника в элемент управления DictionaryTreeViewPanel;
•TreePanel типа DictionaryTreeViewPanel – возвращает элемент управления DictionaryTreeViewPanel. Через это свойство можно, например, задавать значения свойств DictionaryTreeViewPanel, настраивая внешний вид этого элемента управления.