# StyleBuilder `StyleBuilder` - Инструмент, предназначенный для настройки и управления стилями, предоставляя разработчикам необходимые инструменты для работы с цветами, шрифтами и парсингом стилей. ## Инструменты, предназначенные для работы с цветом 1. `setBackgroundColor` - Устанавливает цвет заднего фона, подавать на вход можно hex код, GS код или GS константы. При передаче пустой строки происходит обнуление параметра. 2. `getBackgroundColor` - Возвращает цвет заднего фона. ## Инструменты, предназначенные для работы с шрифтом 1. `setFont` - Устанавливает шрифт по названию. При передаче пустой строки происходит обнуление параметра. 2. `getFont` - Возвращает название шрифта. 3. `setFontSize` - Устанавливает размер шрифта. При передаче null-значения происходит обнуление параметра. 4. `getFontSize` - Возвращает размер шрифта. 5. `setFontColor` - Устанавливает цвет шрифта. При передаче пустой строки происходит обнуление параметра. 6. `getFontColor` - Возвращает цвет шрифта. 7. `setFontBold` - Устанавливает значение, указывающее, используется ли жирный шрифт. При передаче null-значения происходит обнуление параметра. 8. `isFontBold` - Возвращает значение, указывающее, используется ли жирный шрифт. 9. `setFontItalic` - Устанавливает значение, указывающее, используется ли курсив. При передаче null-значения происходит обнуление параметра. 10. `isFontItalic` - Возвращает значение, указывающее, используется ли курсив. 11. `setFontUnderLine` - Устанавливает значение, указывающее, задает ли этот стиль горизонтальную линию под шрифтом. При передаче null-значения происходит обнуление параметра. 12. `isFontUnderLine` - Возвращает значение, указывающее, задает ли этот стиль горизонтальную линию под шрифтом. 13. `setFontStrikeOut` - Устанавливает значение, указывающее, задает ли этот стиль горизонтальную линию через шрифт. При передаче null-значения происходит обнуление параметра. 14. `isFontStrikeOut` - Возвращает значение, указывающее, задает ли этот стиль горизонтальную линию через шрифт. ## Использование ```{note} val style = StyleBuilder() .setBackgroundColor(Color.Blue) .setFontColor("#FFAAFF") .setFont(Font.Impact) .setFontUnderLine(1.nn) .build() ``` ## Color `Color` - Объект, предназначенный для парснига цвета, поскольку цвет, выбранный в редакторе(`editorType="colorPick"`), сохраняется в десятичном формате. Есть список предопределённых цветов для удобства использования `ru.bitec.app.btk.sel.utils.StyleBuilder.Color#Black` ## Использование ```{attention} Необходимо переопределить onRefresh если цвет сохраняется не в десятичном формате, а как Hex ``` ```{note} override def onRefresh: Recs = { ConfigBase.fromJson(vShapeList) match { case image: ImageConfig => image case line: LineConfig => line.copy( fill = line.fill.optionMap(fill => Color.clToDec(Color(fill.getOrElse).getGsHex()).ns).getOrElse(NString()), stroke = line.stroke.optionMap(stroke => Color.clToDec(Color(stroke.getOrElse).getGsHex()).ns).getOrElse(NString()) ) case _ => null } } @Setter def setfill(event: SetterEvent): Unit = { val color = Color(Color.decToCl(event.attr.asNNumber).getOrElse("")).getHex() processSetter { case image: ImageConfig => ??? case line: LineConfig => line.copy(fill = color) } } ```