Конструктор графического полотна

Обзор

Файл конфигурации представляет собой своего рода чертёж графического полотна — он описывает структуру, расположение и параметры элементов. Однако сам по себе этот чертёж не даёт возможности взаимодействовать с графиками.

Для преобразования конфигурации в полноценное графическое полотно используется специальный конструктор. Он читает файл конфигурации и создаёт реальные визуальные элементы на его основе, обеспечивая интерактивность и отображение данных.

Типы данных

Библиотека JAGM поддерживает различные форматы входных данных, которые классифицируются по типу поступления и формату представления. Правильная настройка конфигурации зависит от того, с каким типом и форматом данных вы работаете.

По формату представления данных

В библиотеке JAGM существует два вида данных:

  • Сырые (Raw) данные — данные, поступающие в своих физических величинах и требующие предварительного преобразования в пиксели для отображния на графическом полотне.
  • Подготовленные (Prepared) данные — данные, уже преобразованные в пиксели.

По способу поступления данных

В библиотеке JAGM существуте два типа данных:

  • Offline данные — заранее подготовленные массивы, доступные целиком до начала визуализации.
  • Online данные — поступают в реальном времени, по частям (например, поток с сервера или с устройства).

Варианты конфигурации

Комбинация формата представления и способа поступления данных определяет конкретный тип конфигурации конструктора. Всего в библиотеке JAGM предусмотрено четыре таких конфигурации — по одной для каждой возможной комбинации.

Формат данных Способ поступления Конфигурация конструктора
Raw (сырые) Online (потоковые) RawOnlineVisualizatorConfigJsUnpacker
Raw (сырые) Offline (массив) RawOfflineVisualizatorConfigJsUnpacker
Prepared (подготовленные) Online (потоковые) PreparedOnlineVisualizatorConfigJsUnpacker
Prepared (подготовленные) Offline (массив) PreparedOfflineVisualizatorConfigJsUnpacker

Выбранная конфигурация конструктора определяет тип графического полотна, которое может обрабатывать только те данные, которые соответствуют заданному формату представления и способу поступления. Использование неподходящего типа данных приведёт к некорректной работе или полной невозможности визуализации

Объявление конструктора

Для работы с сырыми (Raw) потоковыми (Online) данными

  import { 
    JagmRootProvider 
  } from "@incartdev/jagm-core";                 // Импорт объекта конструктороа
  import { 
    RawOnlineVisualizatorConfigJsUnpacker 
  } from "@incartdev/jagm-visualizator";         // Импорт объекта конфигурации для работы с сырыми (Raw) потоковыми (Online) данными

  // Детали работы с методами жизненного цикла разрабатываемого компонента опущены

  const constructor = new JagmRootProvider(new RawOnlineVisualizatorConfigJsUnpacker());

Для работы с подготовленными (Prepared) потоковыми (Online) данными

  import { 
    JagmRootProvider 
  } from "@incartdev/jagm-core";                 // Импорт объекта конструктороа
  import { 
    PreparedOnlineVisualizatorConfigJsUnpacker  
  } from "@incartdev/jagm-visualizator";         // Импорт объекта конфигурации для работы с подготовленными (Prepared) потоковыми (Online) данными

  // Детали работы с методами жизненного цикла разрабатываемого компонента опущены

  const constructor = new JagmRootProvider(new PreparedOnlineVisualizatorConfigJsUnpacker());

Для работы с сырыми (Raw) статическими (Offline) данными

  import { 
    JagmRootProvider 
  } from "@incartdev/jagm-core";                 // Импорт объекта конструктороа
  import { 
    RawOfflineVisualizatorConfigJsUnpacker 
  } from "@incartdev/jagm-visualizator";         // Импорт объекта конфигурации для работы с сырыми (Raw) статическими (Offline) данными

  // Детали работы с методами жизненного цикла разрабатываемого компонента опущены

  const constructor = new JagmRootProvider(new RawOfflineVisualizatorConfigJsUnpacker());

Для работы с подготовленными (Prepared) статическими (Offline) данными

  import { 
    JagmRootProvider 
  } from "@incartdev/jagm-core";                 // Импорт объекта конструктороа
  import { 
    PreparedOfflineVisualizatorConfigJsUnpacker 
  } from "@incartdev/jagm-visualizator";         // Импорт объекта конфигурации для работы с подготовленными (Prepared) статическими (Offline) данными

  // Детали работы с методами жизненного цикла разрабатываемого компонента опущены

  const constructor = new JagmRootProvider(new PreparedOfflineVisualizatorConfigJsUnpacker());

Создание графического полотна

Графическое полотно размещается внутри заранее подготовленного div-элемента в DOM-дереве.

Убедитесь, что у контейнера (div) задана ненулевая высота. В противном случае полотно не будет отображаться корректно

  import VisualSettings from "./VisualSettings.json" // Импорт файла конфигурации

  constructor.create({
    settings: VisualSettings,
    rootHtml: document.querrySelect(".canvas-wrap")
  });

Метод create используется для создания и инициализации графического полотна на основе переданного файла конфигурации. Он является основным методом конструктора JagmRootProvider и отвечает за генерацию визуальных компонентов, их размещение и привязку к DOM-элементу.

Название Тип Значение поумолчанию Описание
settings object ОБЯЗАТЕЛЬНОЕ Объект конфигурации, описывающий структуру, расположение и параметры всех элементов графического полотна. Обычно загружается из JSON-файла.
rootHtml HTMLElement ОБЯЗАТЕЛЬНОЕ div, внутри которого будет построено и отрисовано графическое полотно.

Пример

Предыдущая
Следующая