<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:p="http://primefaces.org/ui"
    xmlns:e="http://www.ivu.de/elect/tags">

    <!--@elvariable id="backingView" type="de.ivu.elect.presentation.exchange.AbstractImportFormatFestlegenView"-->

    <e:form id="frmKonfiguration">
        <ui:param name="dateiImport" value="#{backingView.selectedEntity}" />
        <ui:param name="dateiImportFormatFestlegenMoeglich" value="#{dateiImport.formatFestlegenMoeglich}" />
        <ui:param name="dateiImportCsvSelected" value="#{dateiImport.datei.isCsvDatei()}" />

        <p:panel id="ctnFormat">
            <!-- Cf. /WEB-INF/templates/exchange/export-search.xhtml! -->
            <e:selectOneMenu id="inFileType" required="true" value="#{backingView.selectedFileFormat}" label="#{dateiMeta.formatEinzahlMessage}" converterId="fileFormatConverter">
                <p:ajax event="change" process="@this" update="@form" resetValues="true"  />

                <f:selectItem itemLabel="#{msgs['component.selection.required']}" itemValue="#{null}" />
                <f:selectItems value="#{backingView.supportedFileFormats}" var="fileFormat" itemLabel="#{fileFormatFormatter.format(fileFormat)}" />
            </e:selectOneMenu>

            <ui:fragment rendered="#{dateiImportCsvSelected}">
                <e:selectOneMenu id="inZeichensatz" required="true" value="#{backingView.zeichensatz}" label="#{msgs['datei.import.format.festlegen.csv.format.zeichensatz']}">
                    <p:ajax event="change" process="ctnFormat" update="tblCsvPreview" />

                    <f:selectItems value="#{backingView.zeichensatzValues}" var="item" itemLabel="#{msgs['CsvZeichensatz.'.concat(item)]}" />
                </e:selectOneMenu>

                <e:selectOneMenu id="inputAnzahlKopfzeilen" required="true" value="#{backingView.anzahlKopfzeilen}" label="#{msgs['datei.import.format.festlegen.csv.format.kopfzeilen']}">
                    <p:ajax event="change" process="ctnFormat" update="tblCsvPreview" />

                    <f:selectItems value="#{backingView.anzahlKopfzeilenValues}" />
                </e:selectOneMenu>

                <e:selectOneMenu id="inputTrennzeichen" required="true" value="#{backingView.trennzeichen}" label="#{msgs['datei.import.format.festlegen.csv.format.trennzeichen']}">
                    <p:ajax event="change" process="ctnFormat" update="tblCsvPreview" />

                    <f:selectItems value="#{backingView.trennzeichenValues}" var="item" itemLabel="#{msgs['CsvTrennzeichen.'.concat(item)]}" />
                </e:selectOneMenu>

                <e:selectOneMenu id="inputAnfuehrungszeichen" required="true" value="#{backingView.anfuehrungszeichen}" label="#{msgs['datei.import.format.festlegen.csv.format.anfuehrungszeichen']}">
                    <p:ajax event="change" process="ctnFormat" update="tblCsvPreview" />

                    <f:selectItems value="#{backingView.anfuehrungszeichenValues}" var="item" itemLabel="#{msgs['CsvAnfuehrungszeichen.'.concat(item)]}" />
                </e:selectOneMenu>
            </ui:fragment>

            <f:facet name="footer">
                <p:commandButton id="btnRegistrieren" rendered="#{dateiImportFormatFestlegenMoeglich}" action="#{backingView.formatFestlegen}" ajax="false" value="#{msgs['datei.import.edit.action.format.festlegen']}"
                    icon="#{icons.iconRegister}" onclick="PF('ctnContentBlockUI').show()" />

                <p:commandButton id="btnApply" rendered="#{dateiImportFormatFestlegenMoeglich}" action="#{backingView.uebernehmen}" ajax="false" value="#{msgs['datei.import.edit.action.commit']}" icon="#{icons.iconCommit}"
                    onclick="PF('ctnContentBlockUI').show()" />

                <p:commandButton id="btnCancel" action="#{backingView.cancel}" ajax="false" immediate="true" value="#{msgs['entity.edit.action.cancel']}" styleClass="ui-button--flat" />
            </f:facet>
        </p:panel>

        <p:dataTable id="tblCsvPreview" rendered="#{dateiImportCsvSelected}" var="item" value="#{backingView.previewData}">
            <f:facet name="header">
                <h:outputText value="#{msgs['datei.import.format.festlegen.vorschau.legend']}" />
            </f:facet>

            <p:columns value="#{backingView.columns}" var="column" columnIndexVar="colIndex">
                <f:facet name="header">
                    <h:outputText value="#{column.header}" />
                </f:facet>

                <h:outputText value="#{item[column.property]}" />
            </p:columns>
        </p:dataTable>
    </e:form>
</ui:composition>
