Ускорение процесса разработки
В рамках реализации требований от аналитиков на проекте столкнулись со следующим кейсом: необходимо релизовать цветовыделение контролов свойств с возможностью выбора из справочника, и настройки цвета у значений из справочника.
Например такое может быть полезно для задачи:
В веб-клиенте Directum RX существует функциональность цветовыделения контролов свойств. Есть возможность задавать подсветку предопределённой палитрой цветов Colors.Common или же использовать код цвета модели RGB глубиной 8 бит #RRGGBB (шестнадцатеричное представление красного, зелёного и синего каналов цвета от 0x00 до 0xFF соответственно). У системы есть возможность динамически менять цвет контрола при каждом обращении к нему или при обновлении формы. Получить итоговый цвет можно получить из строкового представления.
При использовании данного метода были выявлен недостаток — отсутствие визуализации цвета при определении его кодом #RRGGBB. Иначе говоря, увидеть цвет можно только по факту его определения в дополнительном свойстве и нужно использовать сторонние палитры цветов (например, в поисковике Яндекса).
Приняли решение реализовать универсальный контрол с палитрой цветов модели RGB глубиной 8 бит.
Данный функционал позволит:
В рамках выполняемой задачи были определены следующие ограничения:
При реализации палитры цветов были учтены следующие нюансы:
Палитра цветов создается с помощью дистрибутива сторонних контролов на языке программирования TypeScript в связке с фреймворком ReactJS:
Добавлена логика поддержки цветового кода с помощью свойства типа Строка и ранее созданного стороннего контрола со стороны Directum RX:
С точки зрения разработки добавляется новое свойство типа Строка для хранения кода цвета, добавляется связка стороннего контрола с этим свойством и идёт обращение к данному значению вида:
_obj.State.Properties.Name.HighlightColor = Colors.Parse(_obj.ColorCode);
где _obj.ColorCode — строковое преставление кода #RRGGBB, которое можно подтянуть через API со стороннего контрола палитры (без альфа-канала).
Теперь значение цвета можно визуально задавать в проводнике системы.
Получился сторонний контрол, который позволяет дать новый опыт user-story и даёт возможность вынести часть функционала в проводник системы.
Расширена функциональность. Добавлены новые возможности для настройки, расширяющие возможности системы Directum RX 4.9 и выше.
Дает ускорение процесса разработки. Добавление логики контрола будет минимум вдвое быстрее написания жёсткой логики задания цвета (не менее 2 часов). Нет необходимости дополнительно обращаться к разработчикам, чтобы задать определённый цвет в разработке.
Оригинальное решение. Реализован функционал, который ранее не использовался в Directum RX.
Опубликовано:
10 февраля в 16:40
Обсудите реализацию с экспертом Directum