*/
public String geraConteudoVirtualDetalharArvoreItens(String tipoItemClicado){
String strRetorno="";
StringBuffer strBuffer = new StringBuffer();
ItemEstruturaDao itemDao = new ItemEstruturaDao(null);
EstruturaEtt estruturaVirtual = null;
try {
EstruturaDao estruturaDao = new EstruturaDao(null);
List lColunas = estruturaDao.getAtributosAcessoEstruturaArvore(estruturaSelecionada);
SegurancaECAR seguranca = (SegurancaECAR) request.getSession().getAttribute("seguranca");
ValidaPermissao validaPermissao = new ValidaPermissao();
String radConcluido = "";
if("".equals(Pagina.getParamStr(request, "radConcluido"))){
radConcluido = (String) request.getSession().getAttribute("radConcluidoSession");
} else{
radConcluido = Pagina.getParamStr(request, "radConcluido");
}
Map mapItensEstruturaVirtual = null;
// verifica se a estrutura virtual � o pai ou � a selecionada
if(estruturaPai != null && estruturaPai.isVirtual()) {
estruturaVirtual = estruturaPai;
} else if (estruturaSelecionada.isVirtual()) {
estruturaVirtual = estruturaSelecionada;
}
ActionEstrutura action = new ActionEstrutura();
//ja verifica itens e estruturas permiss�es
mapItensEstruturaVirtual = action.montarMapItensEstruturaVirtualComPermissao(estruturaVirtual, seguranca);
strBuffer.append("<table border=\\\"0\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\" width=\\\"100%\\\">");
strBuffer.append( "<tr>");
strBuffer.append( "<td class=\\\"espacadorestrutura\\\" colspan=\\\"" + lColunas.size() + 3+ "\\\"><img src=\\\"../../images/pixel.gif\\\"></td>");
strBuffer.append( "</tr>");
strBuffer.append( "<tr>");
strBuffer.append( "<td>");
strBuffer.append( "<!-- Obtem a Lista Estruturas que funcionam como Key no Map -->");
Iterator itEstruturas = mapItensEstruturaVirtual.keySet().iterator();
while(itEstruturas.hasNext()){
EstruturaEtt estrutura = (EstruturaEtt) itEstruturas.next();
strBuffer.append("<!-- Imprime o cabe�alho com o nome da estrutura -->");
strBuffer.append("<table border=\\\"0\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\" width=\\\"100%\\\" >");
// Obtem a Lista de colunas da estrutura a serem exibidas
List listaColunas = estruturaDao.getAtributosAcessoEstruturaArvore(estrutura);
Iterator itCol = listaColunas.iterator();
strBuffer.append( "<!-- Linha com o nome da estrutura -->");
strBuffer.append( "<tr class=\\\"linha_titulo_estrutura\\\" bgcolor=\\\"" + estrutura.getCodCor1Ett() + "\\\" >");
strBuffer.append( "<td colspan=\\\"" + listaColunas.size()+2 + "\\\">" + estrutura.getNomeEtt() + " </td>");
strBuffer.append( "</tr>");
strBuffer.append("</table>");
strBuffer.append( "<!-- Fim da Linha com o nome da estrutura -->");
strBuffer.append("<table class=\\\"sortable\\\" border=\\\"0\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\" width=\\\"100%\\\" id=\\\"tabelaOrdenada\\\" >");
strBuffer.append( "<thead>");
strBuffer.append( "<!-- Linha com o nome das colunas vis�veis da estrutura -->");
strBuffer.append( "<tr class=\\\"linha_subtitulo_estrutura\\\" bgcolor=\\\"" + estrutura.getCodCor2Ett() + "\\\">");
strBuffer.append( "<td class=\\\"sorttable_nosort\\\" width=\\\"3%\\\"> </td>");
if (!listaColunas.isEmpty()) {
while (itCol.hasNext()) {
ObjetoEstrutura col = (ObjetoEstrutura)itCol.next();
strBuffer.append("<td width=\\\"" + col.iGetLargura() + "% \\\"> "+col.iGetLabel() +" </td>");
}
} else{
strBuffer.append( "<td width=\\\"97%\\\"> </td>");
}
strBuffer.append( "</tr>");
strBuffer.append( "<!-- Fim da Linha com o nome das colunas vis�veis da estrutura -->");
strBuffer.append( "</thead>");
strBuffer.append( "<!-- Linha com os dados de acordo com as colunas visiveis da estrutura -->");
strBuffer.append( "<tbody>");
//este metodo vai buscar os itens associados agrupados por estrutura real e ordenados pela primeira coluna
List listItemEstrutura= itemDao.getItensAssociados(estrutura, listaColunas, estruturaVirtual, seguranca);
listItemEstrutura = itemDao.getItensIndConclusao(listItemEstrutura, radConcluido);
Iterator itItemEstrutura = listItemEstrutura.iterator();
while(itItemEstrutura.hasNext()){
ItemEstruturaIett itemEstrutura = (ItemEstruturaIett) itItemEstrutura.next();
//monta o codigo da estrutura "filha" expandida
String codExpandido = "ett" + estrutura.getCodEtt().toString() + "_pai_ett" + estruturaVirtual.getCodEtt().toString() + "_avo_";
if(itemEstruturaSelecionado != null)
codExpandido += itemEstruturaSelecionado.getCodIett().toString();
strBuffer.append("<tr class=\\\"linha_subtitulo2_estrutura\\\" bgcolor=\\\"" + estrutura.getCodCor3Ett()+ "\\\">");
strBuffer.append("<td sorttable_customkey=\\\"0\\\" width=\\\"5%\\\"><input type=\\\"checkbox\\\" name=\\\"itemSelecionado\\\" value=\\\"" +
itemEstrutura.getCodIett() + "\\\"></td>");
if (!listaColunas.isEmpty()) {
Iterator itColItens = listaColunas.iterator();
boolean primeiraColuna =true;
while (itColItens.hasNext()) {// Itera nas colunas para obter os valores dos itens correspondetes a coluna
ObjetoEstrutura col = (ObjetoEstrutura)itColItens.next();
strBuffer.append("<!-- Imprime os itens da estrutura -->");
strBuffer.append("<td width=\\\"" + col.iGetLargura() + "%\\\" aliasSortableIndex >");
String[] strArray = new String[2];
if("nivelPlanejamento".equals(col.iGetNome())){
String niveis = "";
if(itemEstrutura.getItemEstruturaNivelIettns() != null && !itemEstrutura.getItemEstruturaNivelIettns().isEmpty()){
Iterator itNiveis = itemEstrutura.getItemEstruturaNivelIettns().iterator();
while(itNiveis.hasNext()){
SisAtributoSatb nivel = (SisAtributoSatb) itNiveis.next();
niveis += nivel.getDescricaoSatb() + "; ";
}
niveis = niveis.substring(0, niveis.lastIndexOf(";"));
}
strArray[0] = Dominios.STRING_VAZIA;
strArray[1] = Dominios.STRING_VAZIA;
strBuffer.append("<a href=\\\"javascript:aoClicarConsultarItemEstruturaVirtual(document.form, "+ itemEstrutura.getCodIett() + ", '" + codExpandido + "');\\\">"
+ "<font color=\\\"" + estrutura.getCodCor4Ett() + "\\\">" +
niveis
+ "</font>"
+ " </a>");
} else {
if (col.iGetGrupoAtributosLivres() != null) {//Verifica se a coluna � atributo livre
strArray = montaConteudoAtributoLivre(itemEstrutura,col,itemDao);
String conteudo = strArray[0];
strBuffer.append("<a href=\\\"javascript:aoClicarConsultarItemEstruturaVirtual(document.form, " + itemEstrutura.getCodIett() + ", '" + codExpandido + "');\\\"> "+
"<font color=\\\"" + estrutura.getCodCor4Ett() + "\\\">" +
conteudo
+ "</font>"
+" </a>");
} else { //Quando a coluna n�o � atributo livre
strArray[0] = Dominios.STRING_VAZIA;
strArray[1] = Dominios.STRING_VAZIA;
String valor = col.iGetValor(itemEstrutura).replace("\n", " ").replace("\t", " ").replace("\r", " ");
strBuffer.append("<a href=\\\"javascript:aoClicarConsultarItemEstruturaVirtual(document.form, "+ itemEstrutura.getCodIett() + ", '" + codExpandido + "');\\\">"
+ "<font color=\\\"" + estrutura.getCodCor4Ett() + "\\\">" +
valor
+ "</font>"
+ " </a>");
}
}
strBuffer.append("</td>");
primeiraColuna = false;
//troca o alias aliasSortableIndex inserido na TD por branco se o atributo livre n�o for do tipo ID e pela string sorttable_customkey="x" onde x � o valor do sequencial do atributo livre do tipo ID
strBuffer = inserirSortableColumn (strBuffer,strArray[1]);
}
} else{
strBuffer.append("<!-- Trata quando a estrtura n�o possui colunas associadas para serem vis�veis -->");
strBuffer.append("<td><font color=\\\"" + estrutura.getCodCor4Ett() + "\\\"><a href=\\\"javascript:aoClicarConsultarItemEstruturaVirtual(document.form," +
itemEstrutura.getCodIett() + ", '" + codExpandido + "');\\\"> " + itemEstrutura.getNomeIett() + "</a></font></td>");
}
strBuffer.append("</tr>");
// }
//}