Указано для чего применяется списковая форма, описан процесс её создания в дизайнере, и объяснено что будет сгенерировано в коде в зависимости от значений свойств, установленных в дизайнере

Форма списка обеспечивает пользовательский интерфейс по отображению списка объектов данных в некотором представлении.

Для описания формы списка необходимо создать в CASE UML-класс со стереотипом “listform”. Например:

Что генерируется

Класс UI-независимой формы списка, наследующийся от ICSSoft.STORMNET.UI.BaseIndpdList.

  • .Net-интерфейс для зависимой формы списка.
  • UI-зависимая форма списка (если включена соотв. опция).
  • Атрибуты формы генерируются следующим образом:
    • Если включена генерация UI-зависимой формы, то генерируется .Net-интерфейс UI-зависимой формы списка с определением свойства, но только, если этот атрибут публичный.
    • В код UI-зависимой формы генерируется реализующее вышеуказанное интерфейсное определение виртуального свойства, а также приватный член и в обоих аксессорах код по установке/получению значения приватного члена, сопровождаемый скобками программиста.
    • В код UI-независимой формы генерируется определение виртуального свойства с указанным модификатором. Если генерация UI-зависимой формы включена, то в код свойства генерируется вызов того же свойства UI-зависимой формы через интерфейс.
  • Методы формы генерируются следующим образом:
    • Если включена генерация UI-зависимой формы, то генерируется .Net-интерфейс UI-зависимой формы списка с определением метода, но только, если этот метод публичный.
    • В код UI-зависимой формы генерируется реализующий вышеуказанное интерфейсное определение виртуальный метод и в нём скобка программиста (подобно тому, как описано здесь).
    • В код UI-независимой формы генерируется определение виртуального метода с указанным модификатором. Если генерация UI-зависимой формы включена, то в код метода генерируется вызов того же метода UI-зависимой формы через интерфейс.

Дополнительно редактируемые свойства и что как генерируется

Самое главное в дополнительных свойствах, - выбрать, какие списки (каких классов и в каких представлениях), должны быть размещены на списковой форме. Это делается на закладке “Составные представления”.

На форме (неважно, универсальной или генерируемой) будет размещено столько списковых контролов (ObjectListView), сколько указано составных представлений.

Составные представления генерируются следующим образом:

  • Для универсальной формы - перегрузкой метода GetDpdForm в независимой форме, в котором конструируется и возвращается стандартная зависимая форма ICSSoft.STORMNET.UI.UniWinListStandard. Форма конструируется с соответствующими параметрами (представление, объекты данных, операции и т.п.).
  • Для генерируемой формы - все указанные параметры составных представлений генерируются прямо в код зависимой формы, а метод GetDpdForm независимой формы возвращает экземпляр этой зависимой формы. Каждое составное представление включает следующие свойства:
ViewForForm - представление, в котором в списке будут ображаться данные Для того, чтобы выбрать класс и представление, нажмите на кнопку “…”:

DataObjectTypes - классы данных, объекты которых должны “закачиваться” в список. Это может быть класс, чьё представление указано во ViewForForm и любые его наследники.

Для того, чтобы отредактировать состав типов, нажмите на кнопку “…”:

Также, для каждого типа указывается, какая форма должна использоваться при редактировании и создании объектов этого типа.

Описание используемых типов генерируется перегрузкой метода GetEditor в независимой форме.

ListFormOperations - перечисление доступных для данного списка операций.| Позволяет указать, какие операции доступны на этом списке (соответственно, какие кнопки появляются на панели управления):
Для того, чтобы отредактировать состав доступных операций, нажмите на кнопку “…”:

Операции:

  • ColVisibleEdit - доступна возможность редактирования состава, порядка расположения, настроек колонок;
  • CopyDataToClipboard - доступна возможность копирования содержимого списка в буфер обмена;
  • Delete - можно ли удалять объекты;
  • Edit - можно ли редактировать объекты;
  • New - можно ли создавать объекты;
  • NewByExample - можно ли создавать объекты на основе;
  • PageSetup - можно ли отредактировать настройки страниц для вывода на печать;
  • Preview - доступна кнопка предварительного просмотра списка на печать;
  • Print - доступна ли печать списка;
  • Refresh - доступна ли кнопка обновления списка;
  • Search - доступен ли поиск по списку;
  • ShowMarks - доступна ли возможность выделения галочками объектов в списке, а также соответствующая группа кнопок на панели инструментов;

Генерируется:

  • Если используется универсальная форма (галочка GenerateDependedForm не установлена), генерируется параметром при вызове конструктора зависимой формы в методе GetDpdForm() независимой формы;
  • Если используется генерируемая форма, генерируется напрямую в зависимой форме установкой видимости кнопок панели инструментов.

HierarchicalMaster - указывает имя мастерового атрибута - ссылки на вышестоящий объект

Если указано, то считается, что данный список иерархический. Соответственно, либо генерируется зависимая форма с контролом ObjectHierarchicalView, либо используется универсальная зависимая форма иерархического списка UniWinListHierarchical.

Закладка “Форма”

Свойство-Описание Генерация в .Net-язык
Name - имя UML-класса Имя .Net-класса независимой формы и производное от него для зависимой (например, winformXXXXXX).
Description - некоторое описание класса. DocComment перед определением класса независимой формы
Caption - некоторое пользовательское имя (отображается в пользовательском интерфейсе) Заголовок на форме
GenerateDependedForm Если галочка установлена, - генерируется UI-зависимая (WinForm) форма пользовательского интерфейса в исходном коде, что позволяет “вручную” изменить расположение автоматически размещённых элементов управления или добавить новые. Если галочка не установлена, используется универсальная UI-независимая форма, на которой автоматически размещаются элементы управления - списки ObjectListView.
FixDependedForm Если галочка установлена, - UI-зависимая (WinForm) форма не перегенерируется. Это сделано для уверенности в том, что внесённые в форму изменения в части состава и расположения элементов управления не будут потеряны, что иногда происходит из-за наличия (к сожалению) ошибок в среде Visual Studio .Net.
Если галочка не установлена, UI-зависимая (WinForm) перегенерируется, исключая часть, где указан состав и расположение элементов управления.
Packet, NamespacePostfix - позволяют настроить сборку и пространство имен см. Расположение сборок после генерации кода.
PBCustomAttributes - позволяет указать, необходима ли скобка программиста непосредственно перед описанием класса для “ручного” внесения атрибутов Если галочка указана - генерируется скобка программиста для “ручного” внесения .Net атрибутов перед классом независимой формы.
PBMembers Если галочка указана - генерируется скобка программиста для “ручного” внесения членов класса независимой формы.
ScriptName - имя сценария, который должен использоваться этой формой. Соответствует имени EBSD-диаграммы, использующейся для описания сценария. Метод GetScript в классе независимой формы перегружается таким образом, что возвращает из провайдера сценариев сценарий с указанным именем.
PublishToEBSD Если галочка указана - перед классом независимой формы генерируется указание атрибута PublishToEBSDAttribute, который указывает доступность данного класса для использования в редакторе диаграмм сценариев.

Свойства атрибутов

Свойства атрибутов аналогичны указанным в статье Атрибуты классов данных, с учётом вышеуказанных (в п 4 “Что генерируется”) замечаний.

Свойства методов

Свойства методов аналогичны указанным в статье Методы классов и параметры методов, с учётом вышеуказанных (в п 5”Что генерируется”) замечаний.

См. также

L-представление