Boa tarde pessoal,
Gerei uma página que exibe um DataModel em um extendedDataTable, mas gostaria de saber como posso mostrar a célula selecionada. Já fiz alguns testes, mas estou em dúvida em relação ao selection. Alguém pode me ajudar?
Página JSF
<h:form>
<rich:extendedDataTable id="edt" value="#{dataTableCarros.dataModel}" var="edt"
width="500px" height="250px"
selection="#{dataTableCarros.selection}" tableState="#{dataTableCarros.tableState}"
sortMode="single" rowKeyVar="rkvar" selectionMode="multi" >
<rich:column id="marca" width="200px" label="Marca" sortBy="#{edt.marca}"
sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon"
filterBy="#{edt.marca}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Marca"/>
</f:facet>
<h:outputText value="#{edt.marca}"/>
</rich:column>
<rich:column id="modelo" width="200px" label="Modelo" sortBy="#{edt.modelo}"
sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon"
filterBy="#{edt.modelo}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Modelo"/>
</f:facet>
<h:outputText value="#{edt.modelo}"/>
</rich:column>
</rich:extendedDataTable>
<a4j:commandButton value="Show Current Selection" reRender="table"
action="#{dataTableCarros.takeSelection}"
oncomplete="javascript:Richfaces.showModalPanel('panel');"/>
</h:form>
Bean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package carros;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.richfaces.model.selection.SimpleSelection;
import org.richfaces.model.ExtendedTableDataModel;
import java.util.Iterator;
import javax.faces.event.ActionEvent;
import org.ajax4jsf.model.ExtendedDataModel;
import org.richfaces.component.html.HtmlExtendedDataTable;
import org.richfaces.model.selection.Selection;
/**
*
* @author james
*/
public class DataTableCarros {
private List<Carros> selectedItems = new ArrayList<Carros>();
private List<Carros> selecaoDeCarros = new ArrayList<Carros>();
private SimpleSelection selection = new SimpleSelection();
private String tableState = null;
private DataModel dataModel;
private Integer scrollerPage;
private HtmlExtendedDataTable dataTable;
public List<Carros> getSelectedItems() {
if(selectedItems == null ){
selectedItems = new ArrayList<Carros>();
}
return selectedItems;
}
public void setSelectedItems(List<Carros> selectedItems) {
this.selectedItems = selectedItems;
}
public String takeSelection() {
return null;
}
public DataModel getDataModel() {
this.setDataModel(new ListDataModel(this.selectedItems));
return dataModel;
}
public DataTableCarros() {
Carros carro = new Carros("GM","Astra",2009,25000.00);
this.selectedItems.add(carro);
carro = new Carros("Fiat","Palio",2010,20000.00);
this.selectedItems.add(carro);
carro = new Carros("VW","Polo",2010,30000.00);
this.selectedItems.add(carro);
carro = new Carros("Fiat","Punto HLX 1.8",2010,45000.00);
this.selectedItems.add(carro);
carro = new Carros("VW","Bora",2010,60000.00);
this.selectedItems.add(carro);
carro = new Carros("Chevrolet","Chevette",1993,6000.00);
this.selectedItems.add(carro);
carro = new Carros("Chevrolet","Omega CD",2003,42000.00);
this.selectedItems.add(carro);
carro = new Carros("Chevrolet","Prisma Joy",2003,32000.00);
this.selectedItems.add(carro);
}
}
//Demais getters e setters omitidos
Tentei, tentei, mas não está rolando.
Para fazer isso é necessário implementar DataProvider?
James