/* * Sistema de Ouvidoria: um canal através do qual os usuários * podem encaminhar suas reclamações, elogios e sugestões. * * Copyright (C) 2011 SERPRO * * Este programa é software livre; você pode redistribuí-lo e/ou * modificá-lo sob os termos da Licença Pública Geral GNU, conforme * publicada pela Free Software Foundation; tanto a versão 2 da * Licença como (a seu critério) qualquer versão mais nova. * * Este programa é distribuído na expectativa de ser útil, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais * detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU, * sob o título "LICENCA.txt", junto com esse programa. Se não, * acesse o Portal do Software Público Brasileiro no endereço * http://www.softwarepublico.gov.br/ ou escreva para a Fundação do * Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02111-1301, USA. * * Contatos através do seguinte endereço internet: * http://www.serpro.gov.br/sistemaouvidoria/ */ package br.gov.serpro.ouvidoria.struts.action; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import br.gov.serpro.ouvidoria.controller.ExibirMensagemGenericaCtrl; import br.gov.serpro.ouvidoria.controller.gerencial.administracao.FuncionarioCtrl; import br.gov.serpro.ouvidoria.model.Assunto; import br.gov.serpro.ouvidoria.model.Funcionalidade; import br.gov.serpro.ouvidoria.model.Funcionario; import br.gov.serpro.ouvidoria.model.TipoMensagem; import br.gov.serpro.ouvidoria.struts.ActionSupport; import br.gov.serpro.ouvidoria.util.Constants; /** * * @author SERPRO * @version $Revision: 1.1.2.4 $, $Date: 2011/10/20 15:30:36 $ * @version 0.1, 2005/04/01 */ public class ExibirMensagemGenericaAction extends ActionSupport { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ExibirMensagemGenericaCtrl exibirMensagemGenericaCtrl = new ExibirMensagemGenericaCtrl( getDaoFactory()); ActionErrors errors = new ActionErrors(); String texto = ""; if (request.getParameter("tela").compareToIgnoreCase( "CanaisComunicacao") == 0) { texto = this.getOrgao(request).getConfiguracoes() .getTextoCanaisComunicacaoFormatado(); } if (request.getParameter("tela").compareToIgnoreCase("Legislacao") == 0) { texto = this.getOrgao(request).getConfiguracoes() .getTextoLegislacaoOuvidoriaFormatado(); } if (request.getParameter("tela").compareToIgnoreCase( "ResultadosOuvidoria") == 0) { texto = this.getOrgao(request).getConfiguracoes() .getTextoInformacaoOuvidoriaFormatado(); } if (request.getParameter("tela").compareToIgnoreCase("TiposMensagem") == 0) { List lista = this.getOrgao(request).listarTipoMensagemAtivos(); TipoMensagem tipoMensagem; Iterator iter = lista.iterator(); int i = 2; while (iter.hasNext()) { tipoMensagem = (TipoMensagem) iter.next(); texto += "<h2 tabindex=" + i + "> " + tipoMensagem.getDescricao() + "</h2>"; i++; texto += "<p tabindex=" + i + ">" + tipoMensagem.getDescricaoDetalhada() + "</p>"; i++; } } if (request.getParameter("tela").compareToIgnoreCase("TiposAssunto") == 0) { List lista = this.getOrgao(request).getListaAssuntosSubOrgaos(); Assunto assunto; Iterator iter = lista.iterator(); int i = 2; while (iter.hasNext()) { assunto = (Assunto) iter.next(); texto += "<h2 tabindex=" + i + "> " + assunto.getDescricao() + "</h2>"; i++; texto += "<p tabindex=" + i + ">" + assunto.getDescricaoDetalhada() + "</p>"; i++; } } if (request.getParameter("tela").compareToIgnoreCase( "InformacoesOuvidoria") == 0) { texto += "<a tabindex=2 title='Legislação' href='../ExibirMensagemGenerica.do?titulo=Legislação&tela=Legislacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Legislação</font></a><br>"; texto += "<a tabindex=3 title='Tipos de Mensagem' href='../ExibirMensagemGenerica.do?titulo=Tipos de Mensagem&tela=TiposMensagem' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Mensagem</font></a><br>"; texto += "<a tabindex=4 title='Tipos de Assunto' href='../ExibirMensagemGenerica.do?titulo=Tipos de Assunto&tela=TiposAssunto' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Assunto</font></a><br>"; texto += "<a tabindex=5 title='Resultados da Ouvidoria' href='../ExibirResultadoOuvidoria.do?titulo=Resultados%20da%20Ouvidoria' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Resultados da Ouvidoria</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("FaleOuvidoria") == 0) { texto += "<a tabindex=2 title='Acionamento' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Acionamento</font></a></label><br>"; texto += "<a tabindex=3 title='Outros Canais de Comunicação' href='../ExibirMensagemGenerica.do?titulo=Outros Canais de Comunicação&tela=CanaisComunicacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Outros Canais de Comunicação</font></a><br>"; } if (request.getParameter("funcionalidade") != null) { Long funcionarioId = (Long) request.getSession().getAttribute(Constants.PA_FUNCIONARIO); FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(getDaoFactory()); Funcionario funcionario = (Funcionario) funcionarioCtrl.get(funcionarioId); if (funcionario == null) { return mapping.findForward(Constants.LOGIN_FORWARD); } Funcionalidade funcionalidade = exibirMensagemGenericaCtrl .getFuncionalidade(new Integer(request .getParameter("funcionalidade"))); List subFuncionalidades = exibirMensagemGenericaCtrl.getSubMenu( funcionario, funcionalidade); Iterator iter; iter = subFuncionalidades.iterator(); int i = 2; while (iter.hasNext()) { funcionalidade = (Funcionalidade) iter.next(); texto += "<font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> <a tabindex=" + i + " title='" + funcionalidade.getDescricao() + "' href='.." + funcionalidade.getPath() + "'" + " target='conteudo'> " + funcionalidade.getDescricao() + "</a></font><br>"; i++; } } if (request.getParameter("tela").compareToIgnoreCase("AjudaInternet") == 0) { texto += "<a tabindex=2 title='Tópicos da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Tópicos de Ajuda</font></a><br>"; texto += "<a tabindex=3 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteInternet' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("AjudaIntranet") == 0) { texto += "<a tabindex=2 title='Tópicos da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Tópicos de Ajuda</font></a><br>"; texto += "<a tabindex=3 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteIntranet' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("AjudaLogado") == 0) { texto += "<a tabindex=2 title='Tópicos da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Tópicos de Ajuda</font></a><br>"; texto += "<a tabindex=3 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteLogado' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela") .compareToIgnoreCase("MapaSiteInternet") == 0) { texto += "<a tabindex=2 title='Sistema Ouvidoria' href='../Main.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Sistema Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Fale com a Ouvidoria' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Fale com a Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Acionamento' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Acionamento</font></a><br>"; texto += "<a tabindex=3 title='Outros Canais de Comunicação' href='../ExibirMensagemGenerica.do?titulo=Outros Canais de Comunicação&tela=CanaisComunicacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Outros Canais de Comunicação</font></a><br>"; texto += "<a tabindex=4 title='Consulte sua Resposta' href='../andamento/ConsultarResposta.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Consulte sua Resposta</font></a><br>"; texto += "<a tabindex=5 title='Informações da Ouvidoria' href='../ExibirMensagemGenerica.do?titulo=Informações da Ouvidoria&tela=InformacoesOuvidoria' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Informações da Ouvidoria</font></a><br>"; texto += "<a tabindex=6 title='Legislação' href='../ExibirMensagemGenerica.do?titulo=Legislação&tela=Legislacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Legislação</font></a><br>"; texto += "<a tabindex=7 title='Tipos de Mensagem' href='../ExibirMensagemGenerica.do?titulo=Tipos de Mensagem&tela=TiposMensagem' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Mensagem</font></a><br>"; texto += "<a tabindex=8 title='Tipos de Assunto' href='../ExibirMensagemGenerica.do?titulo=Tipos de Assunto&tela=TiposAssunto' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Assunto</font></a><br>"; texto += "<a tabindex=9 title='Resultados da Ouvidoria' href='../ExibirResultadoOuvidoria.do?titulo=Resultados%20da%20Ouvidoria' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Resultados da Ouvidoria</font></a><br>"; texto += "<a tabindex=10 title='Ajuda' href='../ExibirMensagemGenerica.do?titulo=Ajuda&tela=AjudaInternet' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Ajuda</font></a><br>"; texto += "<a tabindex=11 title='Tópico da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tópicos da Ajuda</font></a><br>"; texto += "<a tabindex=12 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteInternet' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela") .compareToIgnoreCase("MapaSiteIntranet") == 0) { texto += "<a tabindex=2 title='Sistema Ouvidoria' href='../Main.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Sistema Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Fale com a Ouvidoria' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Fale com a Ouvidoria</font></a><br>"; texto += "<a tabindex=3 title='Acionamento' href='../acionamento/EnviarMensagemWeb.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Acionamento</font></a><br>"; texto += "<a tabindex=3 title='Outros Canais de Comunicação' href='../ExibirMensagemGenerica.do?titulo=Outros Canais de Comunicação&tela=CanaisComunicacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Outros Canais de Comunicação</font></a><br>"; texto += "<a tabindex=4 title='Consulte sua Resposta' href='../andamento/ConsultarResposta.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Consulte sua Resposta</font></a><br>"; texto += "<a tabindex=5 title='Informações da Ouvidoria' href='../ExibirMensagemGenerica.do?titulo=Informações da Ouvidoria&tela=InformacoesOuvidoria' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Informações da Ouvidoria</font></a><br>"; texto += "<a tabindex=6 title='Legislação' href='../ExibirMensagemGenerica.do?titulo=Legislação&tela=Legislacao' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Legislação</font></a><br>"; texto += "<a tabindex=7 title='Tipos de Mensagem' href='../ExibirMensagemGenerica.do?titulo=Tipos de Mensagem&tela=TiposMensagem' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Mensagem</font></a><br>"; texto += "<a tabindex=8 title='Tipos de Assunto' href='../ExibirMensagemGenerica.do?titulo=Tipos de Assunto&tela=TiposAssunto' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tipos de Assunto</font></a><br>"; texto += "<a tabindex=9 title='Resultados da Ouvidoria' href='../ExibirResultadoOuvidoria.do?titulo=Resultados%20da%20Ouvidoria' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Resultados da Ouvidoria</font></a><br>"; texto += "<a tabindex=10 title='Ajuda' href='../ExibirMensagemGenerica.do?titulo=Ajuda&tela=AjudaIntranet' target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> Ajuda</font></a><br>"; texto += "<a tabindex=11 title='Tópico da Ajuda' href='../Ajuda.do' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Tópicos da Ajuda</font></a><br>"; texto += "<a tabindex=12 title='Mapa do Site' href='../ExibirMensagemGenerica.do?titulo=Mapa do Site&tela=MapaSiteIntranet' target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> Mapa do Site</font></a><br>"; } if (request.getParameter("tela").compareToIgnoreCase("MapaSiteLogado") == 0) { Long funcionarioId = (Long) request.getSession().getAttribute(Constants.PA_FUNCIONARIO); FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(getDaoFactory()); Funcionario funcionario = (Funcionario) funcionarioCtrl.get(funcionarioId); if (funcionario == null) { return mapping.findForward(Constants.LOGIN_FORWARD); } Funcionalidade funcionalidade; Funcionalidade funcionalidadeSub; List lista = exibirMensagemGenericaCtrl.getMenu(funcionario); Collection listaSubItem = new ArrayList(); class FuncionalidadeComparator implements Comparator { public final int compare(Object a, Object b) { return (((Funcionalidade) a).getOrdemItemMenu()) .compareTo((((Funcionalidade) b).getOrdemItemMenu())); } // end compare } // end class StringComparator Collections.sort(lista, new FuncionalidadeComparator()); Iterator iter; Iterator iter2; iter = lista.iterator(); texto += "<a tabindex=2 title='Sistema Ouvidoria' href='../Main.do' target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> Sistema Ouvidoria</font></a><br>"; int i = 3; while (iter.hasNext()) { funcionalidade = (Funcionalidade) iter.next(); if (funcionalidade.getListaSubItemMenu(funcionario).size() > 0) { texto += "<a tabindex=" + i + " title='" + funcionalidade.getDescricao() + "'" + " href='.." + funcionalidade.getPath() + "'" + " target='conteudo'> <font class='mapaSiteNiv1Pai'><img src='images/bullet1a.gif'> " + funcionalidade.getDescricao() + "</font></a><br>"; i++; listaSubItem = funcionalidade .getListaSubItemMenu(funcionario); iter2 = listaSubItem.iterator(); while (iter2.hasNext()) { funcionalidadeSub = (Funcionalidade) iter2.next(); texto += "<a tabindex=" + i + " title='" + funcionalidadeSub.getDescricao() + "'" + " href='.." + funcionalidadeSub.getPath() + "'" + " target='conteudo'> <font class='mapaSiteNiv2'><img src='images/bullet1b.gif'> " + funcionalidadeSub.getDescricao() + "</font></a><br>"; i++; } } else { texto += "<a tabindex=" + i + " title='" + funcionalidade.getDescricao() + "'" + " href='.." + funcionalidade.getPath() + "'" + " target='conteudo'> <font class='mapaSiteNiv1'><img src='images/bullet1a.gif'> " + funcionalidade.getDescricao() + "</font></a><br>"; i++; } } } if (request.getParameter("tela").equalsIgnoreCase("Ajuda")) { texto = request.getParameter("texto"); } request.setAttribute("titulo", request.getParameter("titulo")); request.setAttribute("texto", texto); if (errors.isEmpty()) { return (mapping.findForward("success")); } return (mapping.findForward("failure")); } }