<?xml version="1.0" encoding="UTF-8"?>

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:p="http://primefaces.org/ui" xmlns:e="http://www.ivu.de/elect/tags">

    <!--@elvariable id="erfassenView" type="de.ivu.elect.presentation.stimmeingabe.AbstractStimmeingabeReferendumOptionStimmenErfassenView"-->
    <ui:param name="erfassenView" value="#{erfassenView}" />

    <ui:param name="stimmeingabenReferendumOptionStimmenReadonly" value="#{erfassenViewErfassungGesperrt eq true}" />

    <p:dataTable id="tblStimmeingabenReferendumVorlageStimmen" rendered="#{not empty erfassenView.stimmeingabenReferendumVorlageStimmen}" value="#{erfassenView.stimmeingabenReferendumVorlageStimmen}"
        var="stimmeingabeReferendumVorlageStimmen" rowKey="#{stimmeingabeReferendumVorlageStimmen.pk}" rowIndexVar="rowIndexZeroBased" emptyMessage="#{msgs['component.data.table.empty.message']}">

        <ui:param name="anzahlEingabeColReferendumVorlageStimmenIndexZeroBased" value="0" />
        <ui:param name="anzahlEingabeColReferendumVorlageStimmenTabIndexRelativePerCol" value="#{anzahlEingabeColReferendumVorlageStimmenIndexZeroBased * stimmeingabenReferendumVorlageStimmenRowCount + rowIndexZeroBased + 1}" />
        <ui:param name="anzahlEingabeColReferendumVorlageStimmenTabIndexRelativePerRow" value="#{rowIndexZeroBased * stimmeingabenReferendumVorlageStimmenColCount + anzahlEingabeColReferendumVorlageStimmenIndexZeroBased + 1}" />

        <!-- Tab-Index ist für alle Optionen identisch, sorgt aber trotzdem dafür, dass in der korrekten Reihenfolge gesprungen wird! -->
        <ui:param name="anzahlEingabeColReferendumVorlageStimmenTabIndex" value="#{stimmeingabenReferendumVorlageStimmenTabIndexOffset + (erfassenViewTabIndexPerCol ? anzahlEingabeColReferendumVorlageStimmenTabIndexRelativePerCol : anzahlEingabeColReferendumVorlageStimmenTabIndexRelativePerRow)}" />

        <p:columnGroup type="header">
            <p:row>
                <p:column headerText="#{stimmeingabeReferendumOptionStimmenMeta.stimmeingabeKennungEinzahlMessage}" />
                <p:column headerText="#{stimmeingabeReferendumOptionStimmenMeta.stimmeingabeBezeichnungEinzahlMessage}" />
                <p:column headerText="#{erfassenView.stimmeingabenReferendumOptionStimmenReferendumStimmeBezeichnung}" />
            </p:row>
        </p:columnGroup>

        <!--@elvariable id="stimmeingabeReferendumOptionStimmen" type="de.ivu.elect.business.stimmeingabe.entity.StimmeingabeReferendumOptionStimmen"-->
        <p:subTable value="#{stimmeingabeReferendumVorlageStimmen.stimmeingabeReferendumOptionStimmen}" var="stimmeingabeReferendumOptionStimmen">

            <!-- NOTE, dass für PrimeFaces-SubTables keine rowStyleClass unterstützt wird ... -->
            <ui:param name="rowStyleClass" value="#{stimmeingabeReferendumOptionStimmen.rowStyleClass}" />

            <!-- NOTE, dass das Setzen des name Attributes ein Hack ist, um den Header nur bedingt in die Seite zu schreiben. -->
            <f:facet name="#{erfassenView.stimmeingabenReferendumVorlageStimmenBezeichnungRendered ? 'header' : 'DO-NOT-RENDER'}">
                <h:outputText value="#{stimmeingabeReferendumVorlageStimmen.bezeichnung}" />
            </f:facet>

            <p:column styleClass="#{rowStyleClass} ui-dt-td-kennung">
                <h:outputText value="#{stimmeingabeReferendumOptionStimmen.stimmeingabeKennung}" />
            </p:column>

            <p:column styleClass="#{rowStyleClass} ui-dt-td-bezeichnung">
                <h:outputText value="#{stimmeingabeReferendumOptionStimmen.stimmeingabeBezeichnung}" />
            </p:column>

            <p:column styleClass="#{rowStyleClass} ui-dt-td-anzahl ui-dt-td-numeric">
                <ui:fragment rendered="#{stimmeingabeReferendumOptionStimmen.anzahlEingabeRendered}">
                    <ui:param name="stimmeingabeReferendumOptionStimmenDisabled" value="#{stimmeingabenReferendumOptionStimmenReadonly}" />

                    <div id="#{erfassenView.getStimmeingabeBezugId(stimmeingabeReferendumOptionStimmen.stimmeingabe)}" class="ui-datatable-plausi-fehler-target">
                        <ui:fragment rendered="#{stimmeingabeReferendumOptionStimmenDisabled}">
                            <e:outputLong rendered="#{stimmeingabeReferendumOptionStimmen.hasAnzahl()}" value="#{stimmeingabeReferendumOptionStimmen.anzahl}" />
                            <h:outputText rendered="#{not stimmeingabeReferendumOptionStimmen.hasAnzahl()}" value="#{stimmeingabeReferendumOptionStimmen.getAnzahlEingabeOrDefault(erfassenView.stimmeingabeAnzeigenAnzahlDefault)}" styleClass="ui-dt-c-numeric" />
                        </ui:fragment>

                        <e:inputNumberKeyboard rendered="#{not stimmeingabeReferendumOptionStimmenDisabled}" autocomplete="false" tabindex="#{anzahlEingabeColReferendumVorlageStimmenTabIndex}" value="#{stimmeingabeReferendumOptionStimmen.anzahlEingabe}" styleClass="#{stimmeingabeReferendumOptionStimmen.stimmeingabeStyleClass}" />
                    </div>
                </ui:fragment>
            </p:column>
        </p:subTable>
    </p:dataTable>

    <br />
</ui:composition>
