/*
* No caso de imprimir uma estrutura
*/
if(tipoItemClicado.equals("estrutura") || tipoItemClicado.equals("estruturaVirtual")){
EstruturaEtt estrutura = estruturaSelecionada;
idLinha = "ett" + estrutura.getCodEtt() + "_pai_iett" + codIett;
//label de um item na �rvore de cadastro
String nomeItem = "";
//Gera o nome do item
if(estrutura.getLabelEtt() != null && !"".equals(estrutura.getLabelEtt())){
nomeItem = estrutura.getNomeEtt() + " (" + estrutura.getLabelEtt() + ")";
}
else {
nomeItem = estrutura.getNomeEtt();
}
//Se houver label na estrutura utiliza como hint, sen�o utiliza o nome da estrutura.
String title = "";
String label = estrutura.getLabelEtt();
if (label == null || label.equals(Dominios.STRING_VAZIA)){
title = estrutura.getNomeEtt();
}
else{
title = estrutura.getNomeEtt() + " (" + estrutura.getLabelEtt() + ")";
}
/* Identa��o pelo n�vel do item */
String identacaoImagem = "";
int nivel = 0;
int identacao = 0;
nivel = estruturaDao.getNivel(estrutura);
identacao = 2*(nivel - 1); //f�rmula deduzida por indu��o matem�tica
for(int i = 1; i <= identacao ;i++) {
identacaoImagem += "<img src=\"" + request.getContextPath() +
"/images/pixel.gif\" width=\"22\" height=\"9\" alt=\"\">";
}
//gera o link ajax ou javascript local
String linkComeco = "";
String linkFim = "";
String imagemAbrirFechar = "";
ehCaminho = caminhoArvore.contains(idLinha.substring(0, idLinha.indexOf("_pai_")));
//se � caminho e n�o � a folha, seta javascript local
if( ehCaminho == true ){
linkComeco = "<a href=\"javascript:contrairExpandirArvore('" + idLinha + "')\">";
linkFim = "</a>";
imagemAbrirFechar = "/images/expanded_button.gif"; //imagem menos
String ultimoIdLinhaExpandido = Pagina.getParamStr(request, "ultimoIdLinhaExpandido");
// se a ultima estrutura detalhada
if (!estrutura.isVirtual() && ultimoIdLinhaDetalhado!=null && ultimoIdLinhaDetalhado.contains("ett" + estrutura.getCodEtt().toString() + "_pai")) {
//verificar se a estrutura tem itens filhos
List listaItensEstruturaTotal = itemEstruturaDao.getItensFilho(itemEstruturaSelecionado, estrutura, "");
List listaItensEstrutura = itemEstruturaDao.getItensIndConclusao(listaItensEstruturaTotal, radConcluido);
// se n�o tem filho e a ultima linha expandida � igual a estrutura do loop
if ((listaItensEstrutura == null || listaItensEstrutura.isEmpty() )) {
imagemAbrirFechar = "/images/square.gif";
// retira o link quando j� foi selecionado anteriormente
linkComeco = "";
linkFim = "";
}
}
}
//sen�o seta ajax
else{
linkComeco = "<a href=\"javascript:aoClicarExpandirItem(form, '" + idLinha + "' )\">";
linkFim = "</a>";
imagemAbrirFechar = "/images/collapsed_button.gif"; //imagem mais
}
String consultaItem = "<a href=\\\"javascript:aoClicarConsultarItem(document.form, " + codIett + ", '" + idLinha + "');\\\">";
//gera o conte�do html
StringBuffer conteudoHtml = new StringBuffer("");
conteudoHtml.append("<tr id=\"" + idLinha + "\" class=\"cor_sim\" bgcolor=\"#ffffff\" onmouseout=\"javascript: destacaLinha(this,'out','cor_sim')\" onmouseover=\"javascript:destacaLinha(this,'over','')\">");
conteudoHtml.append("<td>");
conteudoHtml.append("<table>");
conteudoHtml.append( "<tr bgcolor=\"#ffffff\">");
conteudoHtml.append( "<td nowrap=\"\">");
conteudoHtml.append( identacaoImagem);
conteudoHtml.append( "</td>");
conteudoHtml.append( "<td id=\"iconeExpandir" + idLinha + "\" valign=\"top\">");
conteudoHtml.append( linkComeco);
conteudoHtml.append( "<img id=\"imagemMaisMenos" + idLinha +
"\" border=\"0\" alt=\"\" src=\"" + request.getContextPath() + imagemAbrirFechar + "\"/>");
conteudoHtml.append( linkFim);
conteudoHtml.append( "</td>");
conteudoHtml.append( "<td nowrap=\"\" title=\""+title+"\">");
conteudoHtml.append( "<img border=\"0\" alt=\"\" src=\"" + request.getContextPath()
+ "/images/iconePasta.png\"/>");
//se fora a tela de listagem, detalha o item
if (ehTelaListagem){
conteudoHtml.append("<a href=\"javascript:aoClicarDetalharItem(form, '" + idLinha + "' )\">");
}
// se n�o for na tela de listagem, volta para a tela a de listagem
else {
conteudoHtml.append("<a href=\"").append(request.getContextPath()).append("/cadastroItens/listaItem/lista.jsp");
String connector = "?"; // define o primeiro conector para parametros na url
// Prepara o link para retorno na aba correta.
conteudoHtml.append(connector + "ultEttSelecionado=" + estruturaSelecionada.getCodEtt().toString() );
connector = "&";
conteudoHtml.append(connector + "ultimoIdLinhaDetalhado=ett" + estruturaSelecionada.getCodEtt() + "_pai_iett" + codIett);
connector = "&";
conteudoHtml.append(connector + "ultimoIdLinhaExpandido=" + Pagina.getParamStr(request,"ultimoIdLinhaExpandido"));
connector = "&";
conteudoHtml.append("\" >");
}
conteudoHtml.append( "<font color=\"#596d9b\"> " + nomeItem + " </font>");
conteudoHtml.append( "</a>");
conteudoHtml.append( "</td>");
conteudoHtml.append( "</tr>");
conteudoHtml.append("</table>");
conteudoHtml.append("</td>");
conteudoHtml.append("</tr>");
itemHtml = conteudoHtml.toString();
}
/*
* No caso de imprimir uma itemEstrutura
*/
else if(tipoItemClicado.equals("itemEstrutura")){
idLinha = "iett" + itemEstruturaSelecionado.getCodIett() + "_pai_ett" + estruturaSelecionada.getCodEtt();
String nomeItem = "";
ValidaPermissao validaPermissao = new ValidaPermissao();
SegurancaECAR seguranca = (SegurancaECAR) request.getSession().getAttribute("seguranca");
ItemEstruturaIett item = itemEstruturaSelecionado;
validaPermissao.permissoesItem(item, seguranca.getUsuario(), seguranca.getGruposAcesso());
boolean permissaoAcessoItem = validaPermissao.permissaoExcluirItem() || validaPermissao.permissaoConsultarItem();
boolean permissaoAcessoItensFilhos = false;
/* hint de otimiza��o. S� testa se tem permiss�o para os filhos (recursivo) se n�o tiver para si pr�prio */
if(!permissaoAcessoItem){
permissaoAcessoItensFilhos = validaPermissao.permissaoAcessoItensFilhos(item, seguranca.getUsuario(), seguranca.getGruposAcesso());
}
if(permissaoAcessoItem || permissaoAcessoItensFilhos){
nomeItem = itemEstruturaDao.criaColunaConteudoColunaArvoreAjax(item, estruturaSelecionada);
//Se houver label na estrutura utiliza como hint, sen�o utiliza o nome da estrutura.
String titleEstrutura = "";
String label = item.getEstruturaEtt().getLabelEtt();
if (label == null || label.equals(Dominios.STRING_VAZIA)){
titleEstrutura = item.getEstruturaEtt().getNomeEtt();
}
else{
titleEstrutura = item.getEstruturaEtt().getNomeEtt() + " (" + item.getEstruturaEtt().getLabelEtt() + ")";
}
/* Identa��o pelo n�vel do item */
String identacaoImagem = "";
int nivel = 0;
int identacao = 0;
nivel = item.getNivelIett().intValue();
identacao = 2*nivel - 1; //f�rmula deduzida por indu��o matem�tica
for(int i = 1; i <= identacao;i++) {
identacaoImagem += "<img src=\"" + request.getContextPath() +
"/images/pixel.gif\" width=\"22\" height=\"9\" alt=\"\">";
}
/* Links de consultar(strHRef) e pr�ximo n�vel(strHRefProx)*/
String strHRefInicio = "";
String strHRefFim = "";
String strHRefProxInicio = "";
String strHRefProxFim = "";
List lEstruturasFilhas = (new EstruturaDao(request)).getSetEstruturasItem(item);
if (validaPermissao.permissaoConsultarItem()) {
strHRefInicio = "<a href=\"javascript:aoClicarConsultarItem(form, " + codIett + ", '" + idLinha + "')\">";
strHRefFim = "</a>";
strHRefProxInicio = "<a href=\"javascript:aoClicarExpandirItem(form, '" + idLinha + "' )\">";
strHRefProxFim = "</a>";
}
else if (permissaoAcessoItensFilhos && (lEstruturasFilhas != null && lEstruturasFilhas.size() != 0)) {
strHRefProxInicio = "<a href=\"javascript:aoClicarExpandirItem(form, '" + idLinha + "' )\">";
strHRefProxFim = "</a>";
}
//gera o link ajax ou javascript local
String imagemAbrirFechar = "";
if(!strHRefProxInicio.equals("")){
ehCaminho = caminhoArvore.contains(idLinha.substring(0, idLinha.indexOf("_pai_")));
//se � caminho e n�o � a folha, seta javascript local
//if( ehCaminho == true && !caminhoArvore.get(caminhoArvore.size()-1).equals(idLinha.substring(0, idLinha.indexOf("_pai_"))) ){
if( ehCaminho == true ){
strHRefProxInicio = "<a href=\"javascript:contrairExpandirArvore('" + idLinha + "')\">";
strHRefProxFim = "</a>";
imagemAbrirFechar = "/images/expanded_button.gif"; //imagem menos
//verifica se a estrutura do item tem estruturas filhas
boolean existeEstruturaFilhaPodeSerVisualizada = false;
List lEstruturas = estruturaDao.getSetEstruturasItem(item);
//verifica se alguma estrutura filha pode ser visualizada
if(lEstruturas != null && !lEstruturas.isEmpty()) {
Iterator itListaEstruturasFilhas = lEstruturas.iterator();
while(!existeEstruturaFilhaPodeSerVisualizada && itListaEstruturasFilhas.hasNext()) {
EstruturaEtt estruturaFilha = (EstruturaEtt) itListaEstruturasFilhas.next();
existeEstruturaFilhaPodeSerVisualizada = estruturaDao.verificarExibeEstrutura(estruturaFilha, itemEstruturaSelecionado);
}
}