Связывание интерфейса с моделью


1) Сформируем три дескриптора ЕСО: ehLecturer, ehSubject (экземпляры класса ExpressionHandle) для организации доступа к объектам модели и пространства ЕСО во время работы программы и cmhLecturer (экземпляр класса CurrensyManagerHandle), который будет служить для указания на текущий объект таблицы Преподаватели.

2) Настроим таблицу Дисциплины так, чтобы она отражала список дисциплин, принадлежащих выбранному преподавателю в первой таблице. Свяжем дескриптор cmhLecturer с таблицей dgLecturer через свойство BindingContext. Теперь он отслеживает выделенную строку этой таблицы.

3) Настроим дескриптор cmhLecturer на связь с родительским объектом. Зададим ссылку на объект ehLecturer в свойстве RootHandle, определяющем корневой идентификатор ЕСО.

4) В свойстве RootHandle дескриптора ehSubject выберем значение cmhLecturer. Так задают место данного идентификатора в цепочке доступа к объектному пространству ЕСО.

5) В качестве выражения OCL введем в свойство Expression объекта ehSubject строку self.roleSubjects. Здесь roleSubjects – это имя роли класса Subject в его ассоциативной связи с классом Преподаватель. Это выражение определяет список дисциплин, предложенных и назначенных преподавателю, который выбран в таблице Преподаватели.

6) Свяжем таблицу Преподаватели с дескриптором ehLecturer через ее свойство DataSource, а таблицу Дисциплины – с дескриптором ehSubject. Теперь таблицы отображают поля классов Преподаватель и Дисциплина. Кроме этого, в таблице Дисциплины появилось поле SubjectState, которое будет автоматически отображать текущее состояние дисциплин.

7) Настроим стили таблиц. Воспользуемся свойством таблицы TableStyles. Присвоим полям таблиц русскоязычные названия.

8) Настроим функционирование кнопок. Выделим в окне Проектировщика кнопку Button1. В свойстве EcoListAction выберем значение Add. В свойстве RootHandle выберем подходящий поставщик объектов ЕСО – идентифика­тор ehSubject. Свяжем результат действия кнопки (созданный экземпляр класса Дисциплина) с визу­альным элементом, отображающим этот экземпляр, в нашем случае — с таблицей dgSubject. Для этого в свойстве BindingContext выберем имя dgSubject. Аналогично настроим кнопку Button2 на операцию удаления. Выберем компонент EcoListActions, в его свойстве CaptionAdd введем слово Добавить, а в свойстве CaptionDelete – Удалить. Кнопки автоматически получила название Добавить и Удалить. В свойстве Text кнопки Button3 введем значение Сохранить (см. Рисунок 9.6).

9) Запустим приложение. Добавим несколько объектов в таблицу Дисциплины для выбранного преподавателя. В поле Состояние таблицы Дисциплины все объекты имеют одинаковое значение ChosenLecturer. На данный момент это состояние неизменяемо. Чтобы иметь возможность изменять состояния, произведем следующую модификацию пользовательского интерфейса.



Дата добавления: 2021-12-14; просмотров: 246;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.