Olá,
Estou desenvolvendo uma aplicação Web e me deparei com a seguinte dúvida, tenho uma lista que aplicação me devolve com todos as salas que possuem um tipo de reunião agendada e gostaria que fossem mostradas apenas 3 itens por vez numa tabela no html e depois aquela div desse um refresh com mais 3 itens até que toda lista fosse exibida e voltasse ao ponto inicial. Estou usando Richfaces + Hibernate + JPA + JSF. Alguem teria alguma ideia de como fazer essa “paginação”?
Segue trecho do meu codigo:
public List<AgendamentoSalaVO> getAgendamentosAtuaisSala() {
List<AgendamentoSalaVO> todosAgendamentos = getAgendamentosSala();
List<AgendamentoSalaVO> agendamentosAtuais = new ArrayList<AgendamentoSalaVO>();
Calendar agora = Calendar.getInstance();
for (AgendamentoSalaVO agendamento : todosAgendamentos) {
Calendar fimReuniao = Calendar.getInstance();
fimReuniao.setTime(agendamento.getData().getTime());
fimReuniao.set(Calendar.HOUR_OF_DAY,
Integer.parseInt(agendamento.getHoraFim()));
fimReuniao.set(Calendar.MINUTE,
Integer.parseInt(agendamento.getMinutoFim()));
if (fimReuniao.after(agora)) {
agendamentosAtuais.add(agendamento);
}
}
return agendamentosAtuais;
}
xhtml:
<ui:repeat value="#{salaDeReuniaoMBean.salasDeReuniaoAtuais}" var="salaDeReuniao">
<tr style="height: 10px;">
<td></td>
</tr>
<tr valign="top">
<td align="center" valign="top" width="100%">
<table class="tableizer-table" style="font-weight: normal;color:#504444; width:97%;" id="tabRotina">
<tr>
<td colspan="4" style="background: #E6E6FA; color: #1C1C1C; font-weight: none; text-align:center; font-size:18px;"><h:outputText value="#{salaDeReuniao.nome} - #{salaDeReuniao.local}"/>
</td>
</tr>
<h:panelGroup rendered="#{!salaDeReuniao.reuniaoAgendada}">
<tr class="TrSubTituloSala">
<td width="14%" class="TdConteudoSala">Data</td>
<td width="26%" class="TdConteudoSala">Período</td>
<td width="60%" class="TdConteudoSala">Assunto</td>
</tr>
<ui:repeat value="#{agendamentoSala.agendamentosAtuaisSala}" var="agendamentoSala">
<tr class="TrConteudoSala">
<td class="TdConteudoSala">
<h:outputText value="#{agendamentoSala.data.time}">
<f:convertDateTime timeZone="#{informacoesSistemaMBean.timeZone}"
pattern="dd/MM" />
</h:outputText>
</td>
<td class="TdConteudoSala">
<h:outputText value="#{agendamentoSala.dataInicio} a #{agendamentoSala.dataFim}"/>
</td>
<td class="TdConteudoSala">
<h:outputText value="#{agendamentoSala.assunto}"/>
</td>
</tr>
</ui:repeat>
</h:panelGroup>
<h:panelGroup rendered="#{salaDeReuniao.reuniaoAgendada}">
<tr class="TrConteudoSala">
<td align="center" class="TdConteudoSala">
<h:outputText value="Não há reuniões agendadas."/>
</td>
</tr>
</h:panelGroup>
</table>
</td>
</tr>
</ui:repeat>