Любой вновь создаваемый виджет основывается на одном из нескольких примитивов (конечный элемент визуализации), путём установки родственной связи как прямо на примитив, так и посредством нескольких промежуточных пользовательских виджетов. Каждый из примитивов содержит механизм (логику) модели данных. Экземпляр виджета хранит значения свойств конфигурирования примитива, специально для себя.
В задачи интерфейса визуализации входит поддержка и работа с моделью данных примитивов виджетов. Примитивы виджетов должны быть тщательно проработаны и унифицированы с целью охватить как можно больше возможностей в как можно меньшем количестве слабо связанных друг с другом, по назначению, примитивов.
В таблице 4.12.a приведён перечень примитивов виджетов (базовых элементов отображения).
Таблица 4.12.a. Библиотека примитивов виджетов (базовых элементов отображения)
Каждый примитив, и виджет вообще, содержит общий набор свойств/атрибутов в составе приведенном в таблице 4.12.b:
Таблица 4.12.b. Общий набор свойств/атрибутов в виджете
Примитив является основой для отрисовки элементарных графических фигур со всевозможной комбинацией их в одном объекте. Учитывая широкий спектр всевозможных фигур, которые должен поддерживать примитив, и в тоже время являться достаточно простым в использовании, и, по возможности, в реализации, решено было ограничить перечень базовых фигур, используемых для построения результирующих графических объектов до таких фигур: линия, дуга, кривая Безье и заливка. Основываясь уже на этих базовых фигурах, можно строить производные фигуры комбинируя базовыми.
Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.1.
Таблица 4.12.1. Набор дополнительных свойств/атрибутов в примитиве ElFigure
Примитив, предназначенный для предоставления стандартных элементов формы в распоряжение пользователя. Общий перечень атрибутов зависит от типа элемента. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.2.
Таблица 4.12.2. Набор дополнительных свойств/атрибутов в примитиве FormEl
Id | Имя | Номер | Значение |
elType | Element type | 20 | Тип элемента (Строка редактирования; Редактор текста; Флажок; Кнопка; Выбор из списка; Список; Слайдер; Полоса прокрутки). От его значения зависит перечень дополнительных атрибутов. |
Строка редактирования: | |||
value | Value | 21 | Содержимое строки. |
view | View | 22 | Вид строки редактирования (Текст; Комбобокс; Целое; Вещественное; Время; Дата; Дата и время). |
cfg | Config | 23 | Конфигурация строки. Формат значения данного поля для различных видов строки: Текст — указывается шаблон ввода в формате библиотеки QT.
Комбобокс — содержит список значений редактируемого комбобокса. Целое — содержит конфигурацию поля ввода целочисленного представления в формате: <Минимум>:<Максимум>:<Шаг изменения>:<Префикс>:<Суффикс>. Вещественное — содержит конфигурацию поля ввода вещественного представления в формате: <Минимум>:<Максимум>:<Шаг изменения>:<Префикс>:<Суффикс>:<Число знаков после запятой>. Время, Дата, Дата и время — формировать дату по шаблону с параметрами: d — номер дня (1-31); dd — номер дня (01-31); ddd — сокращённое наименование дня ('Mon' ... 'Sun'); dddd — полное наименование дня ('Monday' ... 'Sunday'); M — номер месяца (1-12); MM — номер месяца (01-12); MMM — сокращённое имя месяца ('Jan' ... 'Dec'); MMMM — полное имя месяца ('January' ... 'December'); yy — последние две цифры года; yyyy — год полностью; h — час (0-23); hh — час (00-23); m — минуты (0-59); mm — минуты (00-59); s — секунды (0-59); ss — секунды (00-59); AP,ap — отображать AM/PM или am/pm. |
font | Font | 25 | Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
Редактор текста: | |||
value | Value | 21 | Содержимое редактора. |
wordWrap | Word wrap | 22 | Автоматический перенос текста по словам. |
font | Font | 25 | Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
Флажок: | |||
name | Name | 26 | Имя/метка флажка. |
value | Value | 21 | Значение флажка. |
font | Font | 25 | Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
Кнопка: | |||
name | Name | 26 | Имя, надпись на кнопке. |
value | Value | 21 | Значение для фиксированной кнопки. |
img | Image | 22 | Изображение на кнопке. |
color | Color | 23 | Цвет кнопки. |
colorText | Color:text | 27 | Цвет текста. |
checkable | Checkable | 24 | Признак функционирования как фиксированная кнопка. |
font | Font | 25 | Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
Выбор из списка: | |||
value | Value | 21 | Текущее значение списка. |
items | Items | 22 | Перечень элементов списка. |
font | Font | 25 | Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
Список: | |||
value | Value | 21 | Выбранное значение списка. |
items | Items | 22 | Перечень элементов списка. |
font | Font | 25 | Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
Слайдер и полоса прокрутки: | |||
value | Value | 21 | Положение слайдера. |
cfg | Config | 22 | Конфигурация слайдера в формате: "{VertOrient}:{Min}:{Max}:{SinglStep}:{PageStep}". Где:
|
Данный примитив предназначен для вывода простого текста, используемого в роли меток и различных подписей. С целью простого создания частого декоративного оформления, примитив должен поддерживать обвод текста рамкой. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.3.
Таблица 4.12.3. Набор дополнительных свойств/атрибутов в примитиве Text
Данный примитив предназначен для проигрывания различных медиа-материалов, начиная от простых изображений и заканчивая полноценными аудио и видео потоками. Учитывая многообразность способов и библиотек проигрывания полноценных аудио и видео потоков, а также достаточно серьёзную трудоёмкость по имплиминтации всех этих механизмов в данный виджет, решено было на первоначальном этапе реализовать только работу с изображениями и простыми анимационными форматами изображений и видео. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.4.
Таблица 4.12.4. Набор дополнительных свойств/атрибутов в примитиве Media
backColor | Background:color | 20 | Фоновый цвет. |
backImg | Background:image | 21 | Фоновое изображение. |
bordWidth | Border:width | 22 | Ширина бордюра. |
bordColor | Border:color | 23 | Цвет бордюра. |
bordStyle | Border:style | 24 | Стиль бордюра (None;Dotted;Dashed;Solid;Double;Groove;Ridge;Inset;Outset). |
src | Source | 25 | Источник медиа-данных. |
fit | Fit to widget size | 26 | Признак — "Согласовать содержимое с размером виджета". |
type | Type | 27 | Тип медиа (Image;Movie). |
areas | Map areas | 28 | Количество активных областей. |
Атрибуты видеоролика (Movie) | |||
speed | Play speed | 29 | Скорость проигрывания, в процентах от оригинальной скорости. Если значение меньше 1%, то проигрывание прекращается. |
Активные области | |||
area{x}shp | Area {x}:shape | 40+3*x | Вид области (Rect;Poly;Circle). |
area{x}coord | Area {x}:coordinates | 40+3*x+1 | Координаты областей. Через запятую идут координаты: "x1,y1,x2,y2,xN,yN" |
area{x}title | Area {x}:title | 40+3*x+2 | Заголовок области. |
Данный примитив предназначен для построения различных диаграмм, включая и графики/тренды отображения текущего процесса и архивных данных. На данный момент реализованы следующие типы диаграмм:
Процесс доступа к архивным данным оптимизирован, путём ведения промежуточного буфера, для отображения, а также упаковки трафика данных при запросе. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.5.
Таблица 4.12.5. Набор дополнительных свойств/атрибутов в примитиве Diagram
Id | Имя | Номер | Значение |
backColor | Background:color | 20 | Фоновый цвет. |
backImg | Background:image | 21 | Фоновое изображение. |
bordWidth | Border:width | 22 | Ширина бордюра. |
bordColor | Border:color | 23 | Цвет бордюра. |
bordStyle | Border:style | 24 | Стиль бордюра (None;Dotted;Dashed;Solid;Double;Groove;Ridge;Inset;Outset). |
trcPer | Tracing period (s) | 25 | Режим и периодичность слежения. |
type | Type | 26 | Тип диаграммы: "Trend". |
Атрибуты тренда/графика (Trend) | |||
tSek | Time:sek | 27 | Текущее время, секунд. |
tUSek | Time:usek | 28 | Текущее время, микросекунды. |
tSize | Size, sek | 29 | Размер тренда, секунды. |
curSek | Cursor:sek | 30 | Положение курсора, секунды. |
curUSek | Cursor:usek | 31 | Положение курсора, микросекунды. |
curColor | Cursor:color | 32 | Цвет курсора. |
sclColor | Scale:color | 33 | Цвет шкалы/решетки. |
sclHor | Scale:horizontal | 34 | Режим горизонтальной шкалы/решетки: "No draw", "Grid;Markers" и "Grid and markers". |
sclVer | Scale:vertical | 35 | Режим вертикальной шкалы/решетки: "No draw", "Grid", "Markers", "Grid and markers", "Grid (log)", "Marker (log)", "Grid and markers (log)". |
sclMarkColor | Scale:Markers:color | 36 | Цвет маркеров шкалы/решетки. |
sclMarkFont | Scale:Markers:font | 37 | Шрифт маркеров шкалы/решетки в виде "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
valArch | Value archivator | 38 | Архиватор архивов параметров. |
parNum | Parameters number | 39 | Количество параметров, отображаемых на одном тренде. |
Индивидуальные атрибуты параметров тренда/графика | |||
prm{X}addr | Parametr {X} :address | 50+10*{X} | Полный адрес к параметру {X} или архиву значений. |
prm{X}bordL | Parametr {X} :view border:lower | 50+10*{X} +1 | Нижняя граница значений параметра {X}. |
prm{X}bordU | Parametr {X} :view border:upper | 50+10*{X} +2 | Верхняя граница значений параметра {X}. |
prm{X}color | Parametr {X} :color | 50+10*{X} +3 | Цвет отображения тренда параметра {X}. |
prm{X}val | Parametr {X} :value | 50+10*{X} +4 | Значение параеметра {X} под курсором. |
Примитив предназначен для визуализации данных архива сообщений, путём формирования протоколов с различными способами визуализации, начиная от статического сканирующего просмотра и заканчивая динамическим отслеживанием протокола сообщения. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.6.
Таблица 4.12.6. Набор дополнительных свойств/атрибутов в примитиве Protocol
Id | Имя | Номер | Значение |
backColor | Background:color | 20 | Фоновый цвет. |
backImg | Background:image | 21 | Фоновое изображение. |
font | Font | 22 | Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
time | Time, sek | 24 | Текущее время, секунд. |
tSize | Size, sek | 25 | Размер запроса, секунды. |
trcPer | Tracing period (s) | 26 | Режим и периодичность слежения. |
arch | Archival | 27 | Архиватор архива сообщений. |
tmpl | Template | 28 | Шаблон запроса в архиве. |
lev | Level | 29 | Уровень сообщений. |
viewOrd | View order | 30 | Порядок отображения ("По времени", "По уровню", "По категории", "По сообщению", "По времени (обратно)", "По уровню (обратно)", "По категории (обратно)", "По сообщению (обратно)"). |
col | View columns | 31 | Отображаемые колонки. |
itProp | Item's properties | 32 | Количество свойств элементов. |
Индивидуальные атрибуты свойств элементов | |||
it{X}lev | Item {X}:level | 40+5*{X} | Критерий: уровень элемента {X}. Более или равно указанному. |
it{X}tmpl | Item {X}:template | 41+5*{X} | Критерий: шаблон категории элемента {X}. Включая специальные символы '*' и '?'. |
it{X}fnt | Item {X}:font | 42+5*{X} | Шрифт элемента {X}. |
it{X}сolor | Item {X}:color | 43+5*{X} | Цвет элемента {X}. |
Примитив предназначен для формирования отчётной, оперативной и иной документации на основе шаблонов документов.Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.7.
Таблица 4.12.7. Набор дополнительных свойств/атрибутов в примитиве Document
Id | Имя | Номер | Значение |
style | CSS | 20 | Стиль документа (CSS). |
tmpl | Template | 21 | XHTML исходный шаблон документа. |
doc | Document | 22 | Псевдо-виртуальный атрибут текущего (выбранного) документа. |
font | Font | 26 | Базовый шрифт текста документа в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}". |
bTime | Time:begin | 24 | Время начала документа, секунд. |
time | Time:current | 23 | Время генерации документа, секунд. |
n | Archive size | 25 | Количество документов или глубина архива. |
Атрибуты включеного режима архивирования | |||
aCur | Cursor:archive | - | Позиция текущего документа в архиве. Запись значения <0 производит архивацию текущего документа. |
vCur | Cursor:view | - | Текущий визуализируемый документ архива. Запись значения -1 -- выбор следующего документа, -2 -- выбор предыдущего документа. |
Атрибуты архива | |||
doc{X} | Document {X} | - | Архивный документ X (0...(n-1)) |
Action source page doesn't exist yet(/Doc / VCA / part 4 / part 12 / doc?)
Примитив контейнера, используется для формирования составных виджетов и/или страниц пользовательского интерфейса. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.8.
Таблица 4.12.8. Набор дополнительных свойств/атрибутов в примитиве Box
Id | Имя | Номер | Значение |
pgOpenSrc | Page:open source | 3 | Полный адрес страницы, которая включена внутрь данного контейнера. |
pgGrp | Page:group | 4 | Группа контейнера страниц. |
backColor | Background:color | 20 | Фоновый цвет. |
backImg | Background:image | 21 | Фоновое изображение. |
bordWidth | Border:width | 22 | Ширина бордюра. |
bordColor | Border:color | 23 | Цвет бордюра. |
bordStyle | Border:style | 24 | Стиль бордюра (None;Dotted;Dashed;Solid;Double;Groove;Ridge;Inset;Outset). |