Форум Сообщества Аналитиков
Общий раздел => Методологии => MDA => Тема начата: Galogen от 01 Июля 2008, 14:37:33
-
Так обращаюсь с гуру по работе с BOLDом.
Задача: создать представление в виде иерахического дерева с изменяющимися иконками (в зависимости от тех или иных условий).
Условия для реализации. Модель: Факультет - Группа - Студент.
Что удалось сделать - удается сделать, если в качестве источника- дескриптора использую коллекцию Факультет - она отображается в гриде, а список групп и студентов уже отображается в дереве. А хочу чтобы все в дереве,
-
Надо подумать.
Я вот так сразу не соображу счас можеш исходники выслать?
-
Ну исходников нет, а чего их высылать? Помнишь модель деканат я тебе высылал.
Я не могу допетрить как сформировать верхний узел - Факультеты, дальше вроде все ясно понятно более или менее.
Т.е. процесс таков: создаешь listFaculty для которого рутхандлер - общее объектное пространство. OCL - Faculty.allinstanses
Далее уже делаешь тривью от этого хандлера, но там верхний узел - это группа, а как сделать чтобы факультет был - не могу понять
-
Посмотри в свойствах TreeView
Должно быть ShowRoot типа болиен
-
Посмотри в свойствах TreeView
Должно быть ShowRoot типа болиен
Тимур, ну так не пойдет - или объясняй подробно или не объясняй вообще, т.е. если не сложно сценарий. Я по книге Грибачева хотя и въехал как делать дерево при начально заданном listHandel, но говорю не пойму как начать от объектного пространства (ОП), посути от Root Handel. Как ты понимаешь в свойствах BoldTreeView следует указать дескриптор, но это не может быть Root Handel, если это ОП.
Я посмотрю конечно завтра еще поковыряюсь пока студенты пишут контрольный пример :)
-
Благодаря активной помощи yumata, я могу опубликовать сценарий решения поставленной мною же задачи.
Модель задачи такова:
(http://www.isuct.ru/~ivt/foruml2/VUSY.jpg)
Далее организуем объектное пространство и болдификацию модели (это процесс я опускаю, его изучить можно по примерам из статей Константина Грибачева (http://www.uml2.ru/index.php?option=com_content&task=view&id=160&Itemid=64).
Создадим форму.
Поместим на нее компонент TBoldTreeView с палитры BoldControls. Свойство Align=alClient (нравится мне так).
Поместим на нее же компонент listBoldHandler с палитры BoldHandlers. RootHandel = TBoldSystemHandel1 и StaticSystemHadel - аналогично
В свойствах TBoldTreeView BoldHandel укажем listBoldHandler (с вашим именем конечно)
Далее открываем редактор Node Description Editor
Выделяем Root и добавлем add List Fragment. Выделим появившейся фрагмент и зададим такие свойства:
ElementExpression = 'Faculty.allInstances'
ControllerExpression =
'oclType.asstring->union(oclType.allsupertypes.asString)->union('#39 +
'<Default>'#39')'
InterpretAsList = True
Добавляем Add Node Description
выделяем его и задаем свойства:
Name = Faculty
TextControler: Expresion = asString
Выделяем Faculty и добавлем add List Fragment. Выделим появившейся фрагмент и зададим такие свойства:
ElementExpression = 'is_part_of'
ControllerExpression =
'oclType.asstring->union(oclType.allsupertypes.asString)->union('#39 +
'<Default>'#39')'
InterpretAsList = True
Добавляем Add Node Description
выделяем его и задаем свойства:
Name = Gruppa
TextControler: Expresion = 'Группа '+asString
Выделяем Gruppa и добавлем add List Fragment. Выделим появившейся фрагмент и зададим такие свойства:
ElementExpression = 'has_students'
ControllerExpression =
'oclType.asstring->union(oclType.allsupertypes.asString)->union('#39 +
'<Default>'#39')'
InterpretAsList = True
Добавляем Add Node Description
выделяем его и задаем свойства:
Name = Student
TextControler: Expresion = fio+' '+birthDay.asString
Запускаем и радуемся.
Ну еще можно узлы ассоциировать с картинками
-
Как связать выбранную позицию в дереве с данными?
Условия для реализации. Модель: Факультет - Группа - Студент.
Что удалось сделать - удается сделать, если в качестве источника- дескриптора использую коллекцию Факультет - она отображается в гриде, а список групп и студентов уже отображается в дереве. А хочу чтобы все в дереве,
А если немного поменять: Факультет и список групп уже отображается в дереве, а студентов нужно отображать в отдельном гриде, причем только тех, чья группа выбрана в дереве. Как связать выбраную группу в дереве с отображением студентов в гриде. При кликах на группах в дереве listBoldHandler для факультета и listBoldHandler для групп не меняют свою навигацию.
-
Как связать выбранную позицию в дереве с данными?
А если немного поменять: Факультет и список групп уже отображается в дереве, а студентов нужно отображать в отдельном гриде, причем только тех, чья группа выбрана в дереве. Как связать выбраную группу в дереве с отображением студентов в гриде. При кликах на группах в дереве listBoldHandler для факультета и listBoldHandler для групп не меняют свою навигацию.
Ой так давно все было. Если честно пока не имею времени поразбираться, попрошу yumata ответить на вопрос если что.
-
To Drakena:
По клику можно определить выбранный объект в дереве - TreeView.CurrentElement as TMyBoldObject;
Это значение можно присвоить ReferenceHandle, к которому прикреплен Grid!