Atualizar componente após o download do arquivo

Estou usando o PrimeFaces TabView, CommandButton e FileDownload para baixar um arquivo de log. Depois que o arquivo de log tiver sido baixado, desejo oferecer a opção de excluir o conteúdo do log do servidor.

Inicialmente, o botão Excluir arquivo de registro (deleteEventLogButton) é desativado e possui uma legenda personalizada indicando "Excluir registros - Exportação necessária". Depois que o registro for exportado, o botão deve estar ativado e a legenda deve conter "Excluir registros".

O problema que estou tendo é que o botão Excluir arquivo de log ainda está desativado e a legenda lê "Excluir logs - exportação necessária" mesmo depois que o evento de exportação for concluído com êxito.

Meu palpite é que o exportEventLogButton-> Update = "deleteEventLogButton" está sendo chamado antes do valor fileDownload.

Depois de exportar os logs, posso pressionar 'F5' e atualizar a página, e o deleteEventLogButton está ativado mostrando a legenda correta.

JSF - Snippet

<p:tabView id="logView">
    <p:tab id="eventLogTab" title="Security Events">
        <p:panelGrid ...>

            <p:commandButton id="exportEventLogButton" icon="ui-icon-disk" styleClass="c25" ajax="false" title="Export Log" disabled="#{empty managedCmsLogsBean.eventLogEntityList}" update="deleteEventLogButton">
                <p:fileDownload value="#{managedCmsLogsBean.exportEventLogFiles()}"/>
            </p:commandButton>

            <p:commandButton id="deleteEventLogButton" icon="ui-icon-trash" styleClass="c25" ajax="false" title="#{managedCmsLogsBean.deleteEventLogCaption}" disabled="#{! managedCmsLogsBean.eventLogExported}" action="#{managedCmsLogsBean.clearEventLogs()}" update="eventLogTab" />    

        </p:panelGrid>

        <p:dataTable value="#{managedCmsLogsBean.eventLogEntityList}" ...>
            ...
        </p:dataTable>

    </p:tab>
</p:tabView>

Feijão de Apoio - Snippet

private boolean eventLogExported;

public StreamedContent exportEventLogFiles() {
    eventLogExported = true;
    return logFileUtility.exportSecurityEventLog(eventLogEntityList, eventLogStartDate, eventLogStopDate);
}

public boolean isEventLogExported() {
    return eventLogExported;
}

public void setEventLogExported(boolean value) {
    eventLogExported = value;
}

public String getDeleteEventLogCaption() {
    return eventLogExported ? "Delete Logs" : "Delete Logs - Export Required";
}

Eu tentei mover o evento de atualização dentro do FileDownload, mas isso não fez diferença.

<p:commandButton id="exportEventLogButton" icon="ui-icon-disk" styleClass="c25" ajax="false" title="Export Log" disabled="#{empty managedCmsLogsBean.eventLogEntityList}">
    <p:fileDownload value="#{managedCmsLogsBean.exportEventLogFiles()}">
        <p:ajax update="deleteEventLogButton"/>
    </p:fileDownload>
</p:commandButton>

Eu procurei por um par de dias agora e encontrei muitos problemas que chegam muito perto deste ... mas nenhum que ajudou. :(

Só para deixar as coisas bem claras ... NÃO estou tendo problemas com a exportação. O problema é que o botão Excluir arquivo de log não está ativado após a conclusão da exportação.

questionAnswers(3)

yourAnswerToTheQuestion