6.4 Проектирование и реализация примитивов отображения -- Реализация
На данном этапе планируется реализация моделей данных и образов визуализатора Vision для всех базовых элементов: "ElFigure", "FormEl", "Text", "Media", "Diagram", "Protocol", "Document", "Function", "Box", "Link".
6.4.1 Примитив элементарная фигура (ElFigure)
Реализована поддержка элементарных фигур: линии, эллиптической дуги и кривой Безье, обладающих свойствами?. Для элементарных фигур реализованы следующие операции:
- создание/удаление фигур;
- перемещение и изменение размеров фигур с помощью мыши и клавиатуры;
- возможность связывать элементарные фигуры друг с другом, получая более сложные, для которых доступны все свойства исходных элементарных фигур;
- возможность одновременного перемещения нескольких несвязанных фигур;
- копирование фигур;
- заливка замкнутого контура цветом и/или изображением;
- генерация событий клавиш мыши, в момент клика мышью на залитые контура;
- масштабирование;
- поворот.
Общая концепция создания и управления элементарными фигурами.
Фигуры, лежащие в основе данного, виджета содержат точки(начальная и конечная), которые могут привязываться к соответственными точками других фигур, и точки, с помощью которых изменяется геометрия фигуры.
Добавить фигуру можно с помощью мыши:
- Выбрать желаемую фигуру из контекстного меню.
- Задать с помощью левой кнопки мыши начальную и конечную точки (для линии при удерживании клавиши SHIFT происходит ортогональная её отрисовка).
Удалить фигуру можно нажатием DEL, имея выделенную(ые) фигуру(ы).
Передвинуть/изменить габариты фигуры можно с помощью мыши или клавиатуры:
- Выделить фигуру, клацнув по ней левой кнопкой мыши.
- Перетащить (с помощью мыши или управляющих клавиш) фигуру или одну из её контрольных точек в желаемое место и отпустить кнопку мыши(клавишу).
При перемещении/изменении размеров фигур с помощью клавиатуры для того, чтобы новые координаты точек сохранились, необходимо любое перемещение мыши.
Существует возможность копировать выделенную(ые) фигуру(ы).
Можно выделить все фигуры, нажав CTRL+A. С выделенными таким образом фигурами доступны все вышеперечисленные действия.
Связать фигуры друг с другом можно следующим образом:
- Убедиться, что кнопка "Holds" нажата или нажать её.
- Выделить одну из фигур и переместить её, её начальную или конечную точку к желаемой начальной или конечной точке другой фигуры так, чтобы она попадала в появившуюся окружность. Связанные фигуры перемещаются также как и отдельные, общая точка перемещается для всех фигур, к котрым она относится(приоритет отдается дуге). Дуги нельзя связывать непосредственно друг с другом.
Залить замкнутый контур из фигур можно следующим образом:
- Активировать привязки(нажатием кнопки Holds).
- Создать замкнутый контур.
- Два раза клацнуть мышкой внутри его.
Удалить заливку замкнутого контура можно, разорвав контур либо клацнув два раза левой кнопкой мыши по залитому контуру.
Поворот фигуры осуществляется вокруг центра виджета.
На рис. 6.4.1 представлена часть экрана с кадром, содержащим вышеперечисленные элементарные фигуры.
file:el_fig_new.png
Рис.6.4.1 Реализация элементарных фигур в Vision.
6.4.2 Примитив элементов формы (FormEl)
Реализована поддержка элементов формы на кадрах СВУ. Реализованы заложенные свойства?, включая следующие элементы формы:
Редактор строки -- Представлено следующими видами: "Текст", "Combo", "Целое", "Вещественное", "Время", "Дата", "Время и Дата". Все виды редактора строки поддерживают подтверждение ввода.
Редактор текста -- Представляет редактор плоского текста с подтверждением или отказом от ввода.
Поле флажка -- Предоставляет поле бинарного флажка.
Кнопка -- Предоставляет кнопку с поддержкой: цвета кнопки, изображения в кнопке и режима фиксации.
Выбор из списка -- Предоставляет поле выбора элемента, со списка указанных элементов.
Список -- Предоставляет поле списка с контролем за текущим элементом.
Слайдер -- Элемент слайдера.
Прогрес-бар -- Полоска прогресс-бара.
Были реализованы режимы: "Включен" и "Активен", а также передача изменений и событий? в модель данных СВУ (движок).
На рис. 6.4.2 представлена часть экрана с кадром, содержащим вышеперечисленные элементы формы.
file:vision_formel.png
Рис.6.4.2 Реализация элементов формы в Vision.
6.4.3 Примитив текста (Text)
Реализована поддержка элемента текста со свойствами?:
- Шрифт со свойствами: типа/класса шрифта, размера, усиления, наклонности, подчёркивания и перечёркивания.
- Цвет текста.
- Ориентация текста.
- Автоматический перенос по словам.
- Выравнивание текста по горизонтали и вертикали со всеми вариантами.
- Отображение фона в виде цвета и/или изображения.
- Отображение бордюра вокруг текста, с указанным цветом, шириной и стилем.
- Формирование текста из атрибутов различного типа и свойств.
На рис.6.4.3 представлена часть экрана с кадром, содержащим примеры текста с использованием различных параметров.
file:vision_text.png
Рис.6.4.3 Реализация базового элемента текста в Vision.
6.4.4 Примитив отображения медиа-материалов (Media)
Реализована поддержка элемента отображения медиа-материалов со свойствами:
- Указания источника медиа данных (изображения или видео-материала).
- Просмотра изображений большинства известных форматов с возможностью их вписывания в размер виджета.
- Проигрывания простых анимированных форматов изображений и видео, с возможностью управления скоростью проигрывания.
- Отображение фона в виде цвета и/или изображения.
- Отображение бордюра вокруг текста, с указанным цветом, шириной и стилем.
- Формирования активных областей и генерация событий при их активации.
На рис.6.4.4 представлена часть экрана с кадром, содержащим примеры просмотра/проигрывания медиа-данных.
file:vision_media.png
Рис.6.4.4 Реализация базового элемента отображения медиа-материалов в Vision.
6.4.5 Примитив построения диаграм/графиков (Diagram)
Реализована поддержка элемента построения диаграм/трендов со свойствами:
- Построение графиков/трендов:
- Построения графика для: архивных данных, текущих данных и формирования промежуточного буфера отображения для параметров без архива.
- Построение как одиночных графиков со значением параметра по оси ординат, так и сводных графиков, включающих до 10 параметров, с процентной шкалой.
- Возможность адаптации графика параметра к значениям данным, подгон шкалы.
- Широкий диапазон масштабирования и адаптации горизонтальной шкалы, с автоматическим усреднением на уровне сервера и самого примитива.
- Возможность отображение размерной сетки и маркеров по горизонтали и вертикали, с адаптацией к диапазону отображения.
- Поддержка активного режима, с курсором и получением значений под курсором.
На рис.6.4.5 представлена часть экрана с кадром, содержащим примеры диаграммы-тренда.
file:vision_diagramm.png
Рис.6.4.5 Реализация базового элемента отображения диаграммы-тренда в Vision.
6.4.6 Примитив формирования протокола (Protocol)
Реализована поддержка элемента формирования протокола со свойствами?:
- Формирование протокола из архива сообщений за указанное время и глубину.
- Запрос данных из указанных архиваторов сообщений.
- Выборка данных из архивов по уровню важности и шаблону категории сообщений.
- Поддержка режима слежение за появлением сообщений в архиве сообщений.
На рис.6.4.6 представлена часть экрана с кадром, содержащим примеры протоколов со слежением и фиксированным указанием времени.
file:vision_prot.png
Рис.6.4.6 Реализация базового элемента отображения протоколов в Vision.
6.4.7 Примитив контейнера (Box)
Реализована поддержка примитива контейнера, по совместительству выполняющего роль страниц проектов. Данный примитив является единственным элементом-контейнером, который может включать в себя ссылки на кадры из библиотеки, формируя тем самым пользовательские элементы нужной конфигурации. Примитив реализует предусмотренные проектом свойства. Перечислим по пунктам свойства данного примитива:
Контейнер -- Позволяет формировать нужные объекты путём группировки базовых в рамках данного примитива.
Страница -- Элементы построенные на данном примитиве могут выполнять роль страницы пользовательского интерфейса.
Контейнер страниц -- Свойство замещения собственного содержимого другой страницей, в процессе исполнения. Используется для формирования фреймов на страницах пользовательского интерфейса. Например, главная страница традиционной SCADA системы с объектами сигнализации строится именно таким образом.
Фон -- Поддерживает возможность указания фона в виде цвета или изображения.
Бордюр -- Поддерживает возможность изображения бордюра с указанным цветом, толщиной и стилем.