Ordenar tabela no IceFaces

0 respostas
J

Oi pessoal!
A única maneira de ordenar uma tabela usando o IceFaces ou o JSF é implementando no bean o método de ordenação? Estou em um projeto grande, estamos aprendendo a lidar com esse framework agora e ter que implementar ordenação para todos os beans vai dar um trabalho gigantesco. Estou tentando pegar os dados de cada coluna de uma tabela sendo exibida para ordenar, mas o getValue só pega null. O código no bean é o seguinte, adaptado de um exemplo :

import java.util.<em>;

import javax.faces.component.</em>;

import javax.faces.context.<em>;

import javax.faces.event.</em>;

import java.util.ArrayList;

public class SortBean
{

private UICommand commandAlterar;
private UICommand commandRemover;
private UIInput inputNome;

public SortBean() 
{
    
    // inicia os componentes
    initComponents();
    
}

ArrayList entrada= new ArrayList();;
[color=red]    /*

* Método actionListener para ordenar uma coluna

*/

public void ordenar( ActionEvent event )

{
// obtém os valores dos componentes
    String nome = (String) getInputNome().getValue();
    
    //Ainda estou só testando se consigo pegar os nomes e colocar na List
    entrada.add(nome);
            
    // reinicia os componentes
    initComponents();
        
 }[/color]

private void initComponents()
{

setCommandAlterar(new UICommand());
    setCommandRemover(new UICommand());
    setInputNome(new UIInput());
}
/*

* Getters e setters.

*/

public UICommand getCommandAlterar() {

return commandAlterar;

}
public void setCommandAlterar(UICommand commandAlterar) {
    this.commandAlterar = commandAlterar;
}

public UICommand getCommandRemover() {
    return commandRemover;
}

public void setCommandRemover(UICommand commandRemover) {
    this.commandRemover = commandRemover;
}

 public UIInput getInputNome() {
    return inputNome;
}

public void setInputNome(UIInput inputNome) {
    this.inputNome = inputNome;
}

}

E o facelet:

<f:view xmlns:h=“http://java.sun.com/jsf/html” xmlns:f=“http://java.sun.com/jsf/core” xmlns:ice=“http://www.icesoft.com/icefaces/component”>

Resultado da busca


<ice:form id="tableForm">
<br/><br/>
	<ice:dataTable id="table1" rows="3" value="#{agenda.table}" var="item" 
    sortColumn="#{agenda.sortColumnName}" sortAscending="#{agenda.sortAscending}">   
	    <ice:column>
	       <f:facet name="header">
	         <ice:panelGroup>
    		    <ice:commandSortHeader columnName="nome" arrow="true" actionListener="#{sort.ordenar}">
	            	 <ice:outputText value="Nome"/>
				</ice:commandSortHeader>
			 </ice:panelGroup>
	       </f:facet>
           <h:inputText id="nome" value="#{item.nome}" binding="#{sort.inputNome}" styleClass="inputsForms"/>
	       <ice:outputText value="#{item.nome}" />
		[color=red]</ice:column>
		
		<ice:column>
	       <f:facet name="header">
	         <ice:panelGroup>
    		    <ice:commandSortHeader columnName="pagina" arrow="true" >
	            	 <ice:outputText value="Pagina"/>
				</ice:commandSortHeader>
			 </ice:panelGroup>
	       </f:facet>
	       <ice:outputText value="#{item.pagina}"/>
		</ice:column>[/color]
		
		<ice:column>
	       <f:facet name="header">
	         <ice:panelGroup>
    		    <ice:commandSortHeader columnName="nota" arrow="true" >
	            	 <ice:outputText value="Nota"/>
				</ice:commandSortHeader>
			 </ice:panelGroup>
	       </f:facet>
	       <ice:outputText value="#{item.nota}"/>
		</ice:column>

	</ice:dataTable>
 	<ice:dataPaginator id="dataScroll" for="table1" paginator="true" fastStep="3" paginatorMaxPages="4">
     	<f:facet name="first">
        		<ice:graphicImage url="./pics/arrow-first.gif" style="border:none;" title="First Page"/>
        </f:facet>
        <f:facet name="last">
        		<ice:graphicImage url="./pics/arrow-last.gif" style="border:none;" title="Last Page"/>
         </f:facet>
         <f:facet name="previous">
         		<ice:graphicImage url="./pics/arrow-previous.gif" style="border:none;" title="Previous Page"/>
         </f:facet>
          <f:facet name="next">
          		<ice:graphicImage url="./pics/arrow-next.gif" style="border:none;" title="Next Page"/>
          </f:facet>
          <f:facet name="fastforward">
          		<ice:graphicImage url="./pics/arrow-ff.gif" style="border:none;" title="Fast Forward"/>
          </f:facet>
          <f:facet name="fastrewind">
          		<ice:graphicImage url="./pics/arrow-fr.gif" style="border:none;" title="Fast Backwards"/>
          </f:facet>
	</ice:dataPaginator>    
</ice:form>                           
<ice:outputLink value="inicio.iface">
	<f:verbatim>voltar</f:verbatim>
</ice:outputLink>

</f:view>

Qualquer ajuda é bem-vinda!

Criado 4 de abril de 2008
Respostas 0
Participantes 1