Amigos fiz a coisa o que me sugeriram deu cert quanto a visibilidade da coluna na tabela porém a pagina necessita de nova de novo reload para que funcione…
Se puderem dar uma ajuda…
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<ui:composition>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Titulo da pagina aqui</title>
<link href="css/default.css" rel="stylesheet" type="text/css" />
<link href="css/estilos.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="fundo">
<img name="topo" id="topo" src="imagens/afacabecalho.gif" alt="imagem afa"/>
<div id="cabecalho" class="especial">
<h:form id="fa">
<h:panelGrid columns="7">
<label jsfc="h:outputLabel" for="esquadrao">Esquadrões:</label>
<h:selectOneMenu id="esquadrao" value="#{consulta.turmaSelecionada}" converterMessage="Esquadrões: Não estou conseguindo">
<f:selectItems value="#{consulta.mapaTurma}" />
</h:selectOneMenu>
<label jsfc="h:outputLabel" for="quadro">Quadro:</label>
<h:selectOneMenu id="quadro" value="#{consulta.quadro}" converterMessage="Situação: Não estou conseguindo">
<f:selectItems value="#{consulta.mapaQuadro}" />
</h:selectOneMenu>
<h:commandButton value="Buscar" type="submit" styleClass="ffatd" action="#{consulta.buscar}"/>
<h:commandButton value="voltar" styleClass="ffatd" action="#{consulta.voltar}" immediate="true"/>
<h:commandButton value="Limpar seleção" styleClass="ffatd" action="#{consulta.limpar}" immediate="true"/>
</h:panelGrid>
<h:panelGrid columns="2">
<rich:dataTable value="#{consulta.lista}" var="cap" id="table"
width="150px" columns="1" >
<h:column>
<f:facet name="header" >
<h:outputText value="Atributos"/>
</f:facet>
<rich:toolTip>
<span>Clique no link para inserir o atributo na pesquisa:</span>
</rich:toolTip>
<a4j:commandLink value="#{cap}" action="#{consulta.inserirSelection}" reRender="va"/>
<!--<h:commandLink value="#{cap}" action="#{consulta.inserirSelection}" >
<a4j:support reRender="va,fa,table2" event="onclick" ajaxSingle="true"/>
</h:commandLink>-->
</h:column>
</rich:dataTable>
<a4j:outputPanel id="va">
<rich:extendedDataTable value="#{consulta.consulta}" var="cap" id="table2" width="700px">
<rich:column visible="#{consulta.nguerra}" sortable="true" sortBy="#{cap.nguerra}" filterBy="#{cap.nguerra}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="N. Guerra" />
</f:facet>
<h:outputText value="#{cap.nguerra}" />
</rich:column>
<rich:column visible="#{consulta.numeroAfa}" sortable="true" sortBy="#{cap.numeroAfa}" filterBy="#{cap.numeroAfa}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Número" />
</f:facet>
<h:outputText value="#{cap.numeroAfa}" />
</rich:column>
<rich:column width="200px" visible="#{consulta.ncompleto}" sortable="true" sortBy="#{cap.ncompleto}" filterBy="#{cap.ncompleto}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="N. Completo" />
</f:facet>
<h:outputText value="#{cap.ncompleto}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.quadros}" sortBy="#{cap.quadro}" filterBy="#{cap.quadro}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Quadro" />
</f:facet>
<h:outputText value="#{cap.quadro}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.cpf}" sortBy="#{cap.cpf}" label="CPF" filterBy="#{cap.cpf}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="CPF" />
</f:facet>
<h:outputText value="#{cap.cpf}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.trigrama}" sortBy="#{cap.trigrama}" label="Trigrama" filterBy="#{cap.trigrama}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Trigrama" />
</f:facet>
<h:outputText value="#{cap.trigrama}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.merito}" sortBy="#{cap.nomeMerito}" label="Mérito" filterBy="#{cap.nomeMerito}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Mérito" />
</f:facet>
<h:outputText value="#{cap.nomeMerito}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.identidade}" sortBy="#{cap.identidade}" label="Identidade" filterBy="#{cap.identidade}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Identidade" />
</f:facet>
<h:outputText value="#{cap.identidade}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.sexo}" sortBy="#{cap.nomeSexo}" label="Sexo" filterBy="#{cap.nomeSexo}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Sexo" />
</f:facet>
<h:outputText value="#{cap.nomeSexo}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.datadesl}" sortBy="#{cap.datadesligado}" label="Data desligado" filterBy="#{cap.datadesligado}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Data desligado" />
</f:facet>
<h:outputText value="#{cap.datadesligado}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.databol}" sortBy="#{cap.tipoDesligado}" label="Data Bol.desligado" filterBy="#{cap.tipoDesligado}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Data Bol.desligado" />
</f:facet>
<h:outputText value="#{cap.tipoDesligado}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.bol}" sortBy="#{cap.boldesligado}" label="Bol.desligado" filterBy="#{cap.boldesligado}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Bol.desligado" />
</f:facet>
<h:outputText value="#{cap.boldesligado}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.desligado}" sortBy="#{cap.tipoDesligado}" label="Tipo Desligado" filterBy="#{cap.tipoDesligado}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Tipo Desligado" />
</f:facet>
<h:outputText value="#{cap.tipoDesligado}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.nacionalidade}" sortBy="#{cap.nacionalidade.nome}" label="Nacionalidade" filterBy="#{cap.nacionalidade.nome}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Nacionalidade" />
</f:facet>
<h:outputText value="#{cap.nacionalidade.nome}" />
</rich:column>
<rich:column sortable="true" visible="#{consulta.turmaAula}" sortBy="#{cap.turmaAula.nome}" label="Turma Aula" filterBy="#{cap.turmaAula.nome}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Turma Aula" />
</f:facet>
<h:outputText value="#{cap.turmaAula.nome}" />
</rich:column>
</rich:extendedDataTable>
</a4j:outputPanel>
</h:panelGrid>
</h:form>
</div>
</div>
</body>
</ui:composition>
</html>
bean
public class Consulta {
@Resource
private AlunosFacade alunosFacade;
@Resource
private TurmaFacade turmaFacade;
private Map<String, Object> mapa;
private Map<String, Object> mapaTurma;
private Long turmaSelecionada;
private String quadro;
private DataModel consulta;
private DataModel lista;
private List<String>selecionada;
private Map<String, Object> param;
private String query;
private boolean nguerra;
private boolean numeroAfa;
private boolean ncompleto;
private boolean quadros;
private boolean cpf;
private boolean trigrama;
private boolean sexo;
private boolean merito;
private boolean identidade;
private boolean datadesl;
private boolean databol;
private boolean bol;
private boolean desligado;
private boolean nacionalidade;
private boolean turmaAula;
public Consulta() {
}
public String buscar() {
StringBuilder sb = new StringBuilder("SELECT f FROM Alunos f ");
param = new HashMap<String, Object>();
boolean ja=false;
if (!quadro.equals("")) {
sb.append(" where (f.quadro = :quadro) ");
param.put("quadro", quadro);
ja=true;
}
if (turmaSelecionada > 0) {
if(ja)sb.append(" AND (f.turma= :tur) ");
else sb.append(" where (f.turma= :tur) ");
intraer.afa.model.Turma t = turmaFacade.obterPorId(turmaSelecionada);
param.put("tur", t);
}
query = sb.toString();
return null;
}
/**
* @return the alunosFacade
*/
public AlunosFacade getAlunosFacade() {
return alunosFacade;
}
/**
* @param alunosFacade the alunosFacade to set
*/
public void setAlunosFacade(AlunosFacade alunosFacade) {
this.alunosFacade = alunosFacade;
}
/**
* @return the mapa
*/
public Map<String, Object> getMapa() {
return mapa;
}
/**
* @param mapa the mapa to set
*/
public void setMapa(Map<String, Object> mapa) {
this.mapa = mapa;
}
public Map<String, Object> getMapaQuadro() {
setMapa(new LinkedHashMap<String, Object>());
getMapa().put("Todos", "");
getMapa().put("CFOAV", "CFOAV");
getMapa().put("CFOINT", "CFOINT");
getMapa().put("CFOINF", "CFOINF");
return getMapa();
}
public DataModel getAtributosSelecao() {
List<String>li=new ArrayList<String>();
String[] or={"N. Guerra","Número","N. Completo","Quadro","CPF","Trigrama","Mérito","Identidade","Sexo","Data desligado","Data Bol.desligado","Bol.desligado","Tipo Desligado",
"Nacionalidade","Turma Aula"};
for(String s:or){
li.add(s);
}
DataModel m=new ListDataModel(li);
return m;
}
public String voltar(){
//selecionada=new ArrayList<String>();
return "ccaer";
}
public String limpar(){
selecionada=new ArrayList<String>();
return null;
}
public String inserirSelection(){
String s=(String)lista.getRowData();
if(selecionada==null){
selecionada=new ArrayList<String>();
selecionada.add(s);
}
else {
selecionada.add(s);
}
//ajuste param
if(selecionada!=null && selecionada.contains("N. Guerra"))nguerra= true;
else nguerra= false;
if(selecionada!=null && selecionada.contains("Número"))numeroAfa= true;
else numeroAfa= false;
if(selecionada!=null && selecionada.contains("N. Completo")) ncompleto= true;
else ncompleto= false;
if(selecionada!=null && selecionada.contains("Quadro")) quadros= true;
else quadros= false;
if(selecionada!=null && selecionada.contains("CPF")) cpf= true;
else cpf= false;
if(selecionada!=null && selecionada.contains("Trigrama")) trigrama= true;
else trigrama= false;
if(selecionada!=null && selecionada.contains("Mérito")) merito= true;
else merito= false;
if(selecionada!=null && selecionada.contains("Identidade")) identidade= true;
else identidade= false;
if(selecionada!=null && selecionada.contains("Sexo")) sexo= true;
else sexo= false;
if(selecionada!=null && selecionada.contains("Data desligado")) datadesl= true;
else datadesl= false;
if(selecionada!=null && selecionada.contains("Data Bol.desligado")) databol= true;
else databol= false;
if(selecionada!=null && selecionada.contains("Bol.desligado")) bol= true;
else bol= false;
if(selecionada!=null && selecionada.contains("Tipo Desligado")) desligado= true;
else desligado= false;
if(selecionada!=null && selecionada.contains("Nacionalidade")) nacionalidade= true;
else nacionalidade= false;
if(selecionada!=null && selecionada.contains("Turma Aula")) turmaAula= true;
else turmaAula= false;
return null;
}
public void initTurma() {
List<intraer.afa.model.Turma> li = getTurmaFacade().obterPorCcaer();
mapaTurma =new TreeMap<String, Object>();
mapaTurma.put("Todas", 0l);
for (intraer.afa.model.Turma t : li) {
mapaTurma.put(t.getNome(), t.getId());
}
}
/**
* @return the mapaTurma
*/
public Map<String, Object> getMapaTurma() {
if (mapaTurma == null) {
initTurma();
}
return mapaTurma;
}
/**
* @param mapaTurma the mapaTurma to set
*/
public void setMapaTurma(Map<String, Object> mapaTurma) {
this.mapaTurma = mapaTurma;
}
/**
* @return the turmaSelecionada
*/
public Long getTurmaSelecionada() {
return turmaSelecionada;
}
/**
* @param turmaSelecionada the turmaSelecionada to set
*/
public void setTurmaSelecionada(Long turmaSelecionada) {
this.turmaSelecionada = turmaSelecionada;
}
/**
* @return the quadro
*/
public String getQuadro() {
return quadro;
}
/**
* @param quadro the quadro to set
*/
public void setQuadro(String quadro) {
this.quadro = quadro;
}
/**
* @return the consulta
*/
public DataModel getConsulta() {
consulta=new ListDataModel();
if(query!=null){
consulta=new ListDataModel(alunosFacade.obterPorWhere(query, param));
}
return consulta;
}
/**
* @param consulta the consulta to set
*/
public void setConsulta(DataModel consulta) {
this.consulta = consulta;
}
/**
* @return the turmaFacade
*/
public TurmaFacade getTurmaFacade() {
return turmaFacade;
}
/**
* @param turmaFacade the turmaFacade to set
*/
public void setTurmaFacade(TurmaFacade turmaFacade) {
this.turmaFacade = turmaFacade;
}
/**
* @return the param
*/
public Map<String, Object> getParam() {
return param;
}
/**
* @param param the param to set
*/
public void setParam(Map<String, Object> param) {
this.param = param;
}
/**
* @return the query
*/
public String getQuery() {
return query;
}
/**
* @param query the query to set
*/
public void setQuery(String query) {
this.query = query;
}
/**
* @return the lista
*/
public DataModel getLista() {
if(lista==null){
lista=getAtributosSelecao();
}
return lista;
}
/**
* @param lista the lista to set
*/
public void setLista(DataModel lista) {
this.lista = lista;
}
/**
* @return the selecionada
*/
public List<String> getSelecionada() {
return selecionada;
}
/**
* @param selecionada the selecionada to set
*/
public void setSelecionada(List<String> selecionada) {
this.selecionada = selecionada;
}
public int getQtdeSelecionada(){
if(selecionada!=null){
return selecionada.size();
}
else return 0;
}
/**
* @return the nguerra
*/
public boolean isNguerra() {
return nguerra;
}
/**
* @param nguerra the nguerra to set
*/
public void setNguerra(boolean nguerra) {
this.nguerra = nguerra;
}
/**
* @return the numeroAfa
*/
public boolean isNumeroAfa() {
return numeroAfa;
}
/**
* @param numeroAfa the numeroAfa to set
*/
public void setNumeroAfa(boolean numeroAfa) {
this.numeroAfa = numeroAfa;
}
/**
* @return the ncompleto
*/
public boolean isNcompleto() {
return ncompleto;
}
/**
* @param ncompleto the ncompleto to set
*/
public void setNcompleto(boolean ncompleto) {
this.ncompleto = ncompleto;
}
/**
* @return the quadros
*/
public boolean isQuadros() {
return quadros;
}
/**
* @param quadros the quadros to set
*/
public void setQuadros(boolean quadros) {
this.quadros = quadros;
}
/**
* @return the cpf
*/
public boolean isCpf() {
return cpf;
}
/**
* @param cpf the cpf to set
*/
public void setCpf(boolean cpf) {
this.cpf = cpf;
}
/**
* @return the trigrama
*/
public boolean isTrigrama() {
return trigrama;
}
/**
* @param trigrama the trigrama to set
*/
public void setTrigrama(boolean trigrama) {
this.trigrama = trigrama;
}
/**
* @return the sexo
*/
public boolean isSexo() {
return sexo;
}
/**
* @param sexo the sexo to set
*/
public void setSexo(boolean sexo) {
this.sexo = sexo;
}
/**
* @return the merito
*/
public boolean isMerito() {
return merito;
}
/**
* @param merito the merito to set
*/
public void setMerito(boolean merito) {
this.merito = merito;
}
/**
* @return the identidade
*/
public boolean isIdentidade() {
return identidade;
}
/**
* @param identidade the identidade to set
*/
public void setIdentidade(boolean identidade) {
this.identidade = identidade;
}
/**
* @return the datadesl
*/
public boolean isDatadesl() {
return datadesl;
}
/**
* @param datadesl the datadesl to set
*/
public void setDatadesl(boolean datadesl) {
this.datadesl = datadesl;
}
/**
* @return the databol
*/
public boolean isDatabol() {
return databol;
}
/**
* @param databol the databol to set
*/
public void setDatabol(boolean databol) {
this.databol = databol;
}
/**
* @return the bol
*/
public boolean isBol() {
return bol;
}
/**
* @param bol the bol to set
*/
public void setBol(boolean bol) {
this.bol = bol;
}
/**
* @return the desligado
*/
public boolean isDesligado() {
return desligado;
}
/**
* @param desligado the desligado to set
*/
public void setDesligado(boolean desligado) {
this.desligado = desligado;
}
/**
* @return the nacionalidade
*/
public boolean isNacionalidade() {
return nacionalidade;
}
/**
* @param nacionalidade the nacionalidade to set
*/
public void setNacionalidade(boolean nacionalidade) {
this.nacionalidade = nacionalidade;
}
/**
* @return the turmaAula
*/
public boolean isTurmaAula() {
return turmaAula;
}
/**
* @param turmaAula the turmaAula to set
*/
public void setTurmaAula(boolean turmaAula) {
this.turmaAula = turmaAula;
}
}