Коллеги!
Подскажите, пожалуйста. Не могу найти, как задать программно htmlEnabled=true для опций ComboBox?
Храню в БД сроку описания опции + HEX-код цвета. Задача - отразить эти цвета в выпадающем списке опций.
Добрый день.
Опции компонента ComboBox не поддерживают HTML разметку, но можно задать style provider и возвращать предопределенные стили, посмотреть демо можно тут.
Глеб
Глеб, спасибо. Про предопределенные стили понятно. В данном случае цвет Hex - произвольный…
Как вариант можно заэкстендить ComboBox
MyComboBoxImpl<V> extends ComboBoxImpl<V>
В конфигурации добавить
@Bean
open fun myComboBoxImplComponent(): ComponentRegistration {
return ComponentRegistrationBuilder.create(ComboBox.NAME)
.withComponentClass(MyComboBoxImpl::class.java)
.withComponentLoaderClass(ComboBoxLoader::class.java)
.build()
}
Там поставить OptionStyleProvider
внутри которого вы будите создавать стили и при помощи
Page.getCurrent().getJavaScript().execute(
"var s = document.createElement('style'); " +
"s.type = 'text/css'; " +
"s.innerText = ' " + styleString + "'; " +
"document.getElementsByTagName('head')[0].appendChild(s);");
Пушить их на страницу.