Senhores, estou um problema interessante.
Uso JSF e Richfaces, e estou fazendo uma tabela de horários de aula.
Bem, o problema é que a turma deve aparecer apenas uma vez na tabela de horário, e depois uma lista simples com os dados dos professores, matérias e horários para a semana.
O header da tabela é o seguinte:
ps: x seria o campo vazio
turma - professor - matéria - x - mês
x - x - x - x - semana
x - x - x - x - STQQSSD
x - tia lú - geografia - x - xx9:30xxxx
1º serie A - tia jú - Matemática - x - xx9:30xxxx
x - tio Zé - Matemática - x - xx9:30xxxx
O problema é fazer a tal da turma aparecer apenas uma vez. Segue o código do header:
<f:facet name="header">
<rich:columnGroup>
<rich:column colspan="1">
<h:outputText value="#{mensagens.lblTurma}" />
</rich:column>
<rich:column colspan="1">
<h:outputText value="#{mensagens.professor}" />
</rich:column>
<rich:column colspan="1">
<h:outputText value="#{mensagens.materia}" />
</rich:column>
<rich:column colspan="1">
<h:outputText value="xxxxxx" />
</rich:column>
<rich:column colspan="1">
<h:outputText value="xxxxxx" />
</rich:column>
<rich:column colspan="7">
<h:outputText value="mês" />
</rich:column>
<rich:column breakBefore="true"
colspan="1">
<rich:spacer width="10px" />
</rich:column>
<rich:column colspan="1">
<rich:spacer width="10px" />
</rich:column>
<rich:column colspan="1">
<rich:spacer width="10px" />
</rich:column>
<rich:column colspan="1">
<rich:spacer width="10px" />
</rich:column>
<rich:column colspan="1">
<rich:spacer width="10px" />
</rich:column>
<rich:column
colspan="7">
<h:outputText value="semana" />
</rich:column>
<rich:column breakBefore="true">
<rich:spacer width="10px" />
</rich:column>
<rich:column >
<rich:spacer width="10px" />
</rich:column>
<rich:column >
<rich:spacer width="10px" />
</rich:column>
<rich:column >
<rich:spacer width="10px" />
</rich:column>
<rich:column >
<rich:spacer width="10px" />
</rich:column>
<rich:column >
<h:outputText value="#{mensagens.SEGUNDAshort}" />
</rich:column>
<rich:column >
<h:outputText value="#{mensagens.TERCAshort}" />
</rich:column>
<rich:column >
<h:outputText value="#{mensagens.QUARTAshort}" />
</rich:column>
<rich:column >
<h:outputText value="#{mensagens.QUINTAshort}" />
</rich:column>
<rich:column >
<h:outputText value="#{mensagens.SEXTAshort}" />
</rich:column>
<rich:column >
<h:outputText value="#{mensagens.SABADOshort}" />
</rich:column>
<rich:column >
<h:outputText value="#{mensagens.DOMINGOshort}" />
</rich:column>
</rich:columnGroup>
</f:facet>
Agora o código da tabela mesmo, com dados fake:
<rich:column >
<h:outputText value="turma a" />
</rich:column>
<rich:column >
<h:outputText value="tia lú" />
</rich:column>
<rich:column >
<h:outputText value="matemática" />
</rich:column>
<rich:column >
<h:outputText value="xxxxx" />
</rich:column>
<rich:column >
<h:outputText value="xxxxx" />
</rich:column>
<rich:column >
<h:panelGrid columns="1" >
<h:outputText value="7:30" />
<h:outputText value="9:30" />
</h:panelGrid>
</rich:column>
<rich:column >
<h:panelGrid columns="1" >
<h:outputText value="7:30" />
<h:outputText value="9:30" />
</h:panelGrid>
</rich:column>
<rich:column >
<h:panelGrid columns="1" >
<h:outputText value="7:30" />
<h:outputText value="9:30" />
</h:panelGrid>
</rich:column>
<rich:column >
<h:panelGrid columns="1" >
<h:outputText value="7:30" />
<h:outputText value="9:30" />
</h:panelGrid>
</rich:column>
<rich:column >
<h:panelGrid columns="1" >
<h:outputText value="7:30" />
<h:outputText value="9:30" />
</h:panelGrid>
</rich:column>
<rich:column >
<h:panelGrid columns="1" >
<h:outputText value="7:30" />
<h:outputText value="9:30" />
</h:panelGrid>
</rich:column>
<rich:column >
<h:panelGrid columns="1" >
<h:outputText value="7:30" />
<h:outputText value="9:30" />
</h:panelGrid>
</rich:column>
Onde diz “turma a” deve ser exibido apenas uma vez em toda a tabela, e não uma vez por linha. A minha grande dificuldade está sendo justamente mesclar as células da turma.
Eu suprimi do código estilos e mascaras para que ficasse mais legível.