Как установить цвет текста pe: timer? - PullRequest
4 голосов
/ 01 октября 2019

Я использую расширение Primefaces для таймера. Я отображаю несколько таймеров в компонентах списка данных, и эти компоненты списка данных отображаются в ячейке таблицы данных.

Я изменяю цвет каждой ячейки с помощью параметра стиля со значением от значения компонента. Для каждой ячейки цвет фона изменился, как и для ячеек таймеров, но цвет текста не изменился.

<p:dataTable id="item_#{synopticLocationBean.id}" var="synopticIdBean" value="#{synopticLocationBean.synopticIdBeans}"
                                resizableColumns="false"
                                rendered="true"
                                rowIndexVar="rowIndex">

    <p:column headerText="ID" style="background-color: #{synopticIdBean.backgroundColor}; color: #{synopticIdBean.foregroundColor};">
        <h:outputText value="#{synopticIdBean.number}" />
    </p:column>

    <p:column headerText="Nom" style="background-color: #{synopticIdBean.backgroundColor}; color: #{synopticIdBean.foregroundColor};">
        <h:outputText value="#{synopticIdBean.name}"/>
    </p:column>

    <p:column headerText="Chrono" rendered="#{dashboardView.manageChronometers}" style="background-color: #{synopticIdBean.backgroundColor}; color: #{synopticIdBean.foregroundColor};">
        <p:dataList value="#{synopticIdBean.synopticCounterBeans}" var="synopticCounterBean" type="definition" class="data-zone">
            <pe:timer id="timer_#{synopticLocationBean.id}" 
                    forward="true" 
                    timeout="10000"
                    formatFunction="return displayElapsedTimeForChrono_save('#{synopticCounterBean.name}',
                                                                            '#{synopticCounterBean.startTime}',
                                                                            '#{synopticCounterBean.pauseTime}',
                                                                            '#{synopticCounterBean.endTime}',
                                                                            '#{synopticCounterBean.counterValue}');"/>
        </p:dataList>
    </p:column>
</p:dataTable>

Когда я устанавливаю параметр стиля для компонента таймера, я получаю следующую ошибку: Ошибка синтаксического анализа /pages / dashboardgeneric / dashboardWip.xhtml: Отслежена ошибка [строка: 846] Атрибут «style» уже был указан для элемента «pe: timer».

Ответы [ 2 ]

3 голосов
/ 02 октября 2019

Похоже, что это должно работать, но в таймере отсутствуют атрибуты style и styleClass из документации, но они должны присутствовать в компоненте. Я создал заявку на обновление документации.

https://github.com/primefaces-extensions/primefaces-extensions.github.com/issues/733

2 голосов
/ 03 октября 2019

Я нашел решение, я добавил стиль в компонент pe: timer, подобный этому:

<p:dataList value="#{synopticIdBean.synopticCounterBeans}" var="synopticCounterBean" type="definition" class="data-zone">
    <pe:timer id="timer_#{synopticLocationBean.id}" 
        forward="true" 
        timeout="10000"
        formatFunction="return displayElapsedTimeForChrono_save('{synopticCounterBean.name}',
    '#{synopticCounterBean.startTime}',
    '#{synopticCounterBean.pauseTime}',
    '#{synopticCounterBean.endTime}',                                                                            '#{synopticCounterBean.counterValue}');"
    style="color : #{synopticMainLocationIdBean.foregroundColor};"/>
            </p:dataList>

Цвет фона, унаследованный от datalist, и цвет переднего плана принимают значение, объявленное от datalist.

...