package br.com.citframework.tld; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilI18N; public class JanelaAguarde extends BodyTagSupport { private static final long serialVersionUID = -6496792382410987252L; private String id; private String style; private String title; @Override public int doStartTag() throws JspException { try { final String urlIframe = ((HttpServletRequest) pageContext.getRequest()).getContextPath() + "/include/vazio.jsp"; pageContext.getOut().println("<script type=\"text/javascript\">\n"); pageContext.getOut().println("var " + this.getId() + "_time_id = 0;"); pageContext.getOut().println("function " + this.getId() + "_ajustaPosicao() {"); pageContext.getOut().println(" document.getElementById('" + this.getId() + "').style.top = HTMLUtils.getYOffset() + 'px';"); pageContext.getOut().println("}"); pageContext.getOut().println("HTMLUtils.addEvent(window, 'scroll', " + this.getId() + "_ajustaPosicao, false);"); pageContext.getOut().println("function " + this.getId() + "() { }"); // Cria a funcao de Show pageContext.getOut().println("" + this.getId() + ".setTitle = function(titulo) {\n"); pageContext.getOut().println(" document.getElementById('" + this.getId() + "_titulo').innerHTML = '<b>' + titulo + '</b>';"); pageContext.getOut().println("}\n\n"); pageContext.getOut().println("" + this.getId() + ".show = function() {\n"); pageContext.getOut().println(" " + this.getId() + "_Ajusta_JanelaAguarde();\n"); pageContext.getOut().println(" document.getElementById('" + this.getId() + "').style.display='block';\n"); pageContext.getOut().println(" document.getElementById('divBloqueiaTela_" + this.getId() + "').style.display='block';\n"); pageContext.getOut().println(" F" + this.getId() + "_atualizaZIndexMaior('divBloqueiaTela_" + this.getId() + "');\n"); pageContext.getOut().println(" var leftPos = (document.body.offsetWidth - document.getElementById('" + this.getId() + "').clientWidth) / 2;"); pageContext.getOut().println(" var topPos = (document.body.offsetHeight - document.getElementById('" + this.getId() + "').clientHeight) / 2;"); pageContext.getOut().println(" document.getElementById('" + this.getId() + "').style.left = leftPos + 'px';"); pageContext.getOut().println(" document.getElementById('" + this.getId() + "').style.top = topPos + 'px';"); pageContext.getOut().println(" F" + this.getId() + "_atualizaZIndexMaior('" + this.getId() + "');\n"); pageContext.getOut().println(" document.getElementById('divBloqueiaTela_" + this.getId() + "').style.left = '0px';"); pageContext.getOut().println(" document.getElementById('divBloqueiaTela_" + this.getId() + "').style.top = '0px';"); pageContext.getOut().println(" document.getElementById('divBloqueiaTela_" + this.getId() + "').style.width = document.body.scrollWidth + 'px';"); pageContext.getOut().println(" if (document.body.clientHeight + document.body.clientTop > document.body.scrollHeight) {"); pageContext.getOut().println( " document.getElementById('divBloqueiaTela_" + this.getId() + "').style.height = (document.body.clientHeight + document.body.clientTop) + 'px';"); pageContext.getOut().println(" } else {"); pageContext.getOut().println(" document.getElementById('divBloqueiaTela_" + this.getId() + "').style.height = (document.body.scrollHeight) + 'px';"); pageContext.getOut().println(" }"); pageContext.getOut().println(" if (" + this.getId() + "_time_id == 0) {"); pageContext.getOut().println(" " + this.getId() + "_time_id = setInterval(" + this.getId() + "_Tira_Foco, 20);"); pageContext.getOut().println(" }"); pageContext.getOut().println(" " + this.getId() + "_ajustaPosicao();\n"); pageContext.getOut().println("}\n\n"); // Cria a funcao de Hide pageContext.getOut().println("" + this.getId() + ".hide = function() {\n"); pageContext.getOut().println(" document.getElementById('" + this.getId() + "').style.display='none';\n"); pageContext.getOut().println(" document.getElementById('divBloqueiaTela_" + this.getId() + "').style.display='none';\n"); pageContext.getOut().println(" if (" + this.getId() + "_time_id > 0) {"); pageContext.getOut().println(" clearInterval(" + this.getId() + "_time_id);"); pageContext.getOut().println(" " + this.getId() + "_time_id = 0;"); pageContext.getOut().println(" }"); pageContext.getOut().println("}\n\n"); // Cria a funcao de Controle de Foco pageContext.getOut().println("function " + this.getId() + "_Tira_Foco() {"); pageContext.getOut().println(" if (document.getElementById('" + this.getId() + "').style.display == 'none') {"); pageContext.getOut().println(" if (" + this.getId() + "_time_id > 0) {"); pageContext.getOut().println(" clearInterval(" + this.getId() + "_time_id);"); pageContext.getOut().println(" }"); pageContext.getOut().println(" document.getElementById('divBloqueiaTela_" + this.getId() + "').style.display='none';\n"); pageContext.getOut().println(" }"); pageContext.getOut().println("}"); // Cria a funcao de Ajustar a Janela pageContext.getOut().println("function " + this.getId() + "_Ajusta_JanelaAguarde() {\n"); pageContext.getOut().println(" var dvInterna = document.getElementById('divIntJanelaAguarde_" + this.getId() + "');\n"); pageContext.getOut().println(" var dvCorpo = document.getElementById('divCorpoJanelaAguarde_" + this.getId() + "');\n"); pageContext.getOut().println(" var dvLookup = document.getElementById('divJanelaAguarde_" + this.getId() + "');\n"); pageContext.getOut().println(" var fraLookup = document.getElementById('fraJanelaAguarde_" + this.getId() + "');\n"); pageContext.getOut().println(" dvLookup.style.height = '100px';\n"); pageContext.getOut().println(" fraLookup.style.height = '100px';\n"); pageContext.getOut().println(" dvLookup.style.width = document.getElementById('" + this.getId() + "').style.width;\n"); pageContext.getOut().println(" fraLookup.style.width = document.getElementById('" + this.getId() + "').style.width;\n"); pageContext.getOut().println(" dvInterna.style.height = '135px';\n"); pageContext.getOut().println(" dvInterna.style.width = document.getElementById('" + this.getId() + "').style.width;\n"); pageContext.getOut().println(" dvInterna.style.top = '0px'"); pageContext.getOut().println(" dvCorpo.style.top = '25px'"); pageContext.getOut().println("}\n"); pageContext.getOut().println("</script>\n"); pageContext.getOut().println("<div id='" + this.getId() + "' style='z-index:3001;" + this.getStyle() + "' class='dragme'>\n"); pageContext.getOut().println( "<div style='z-index:2;' id='divJanelaAguarde_" + this.getId() + "'><iframe id='fraJanelaAguarde_" + this.getId() + "' src='" + urlIframe + "'></iframe></div>\n"); pageContext.getOut().println("<div style='position:absolute;background:white;border:1px solid black' id='divIntJanelaAguarde_" + this.getId() + "'>\n"); pageContext.getOut().println("<table width='100%' bgcolor='#CCCCCC'>\n"); pageContext.getOut().println("<tr>\n"); pageContext.getOut().println("<td width='100%' id='" + this.getId() + "_titulo' style='text-align:center; backgroundcollor: #CCCCCC;'>\n"); pageContext.getOut().println(this.getTitle() + "\n"); pageContext.getOut().println("</td>\n"); pageContext.getOut().println("</tr>\n"); pageContext.getOut().println("</table>\n"); pageContext.getOut().println("<div id='divCorpoJanelaAguarde_" + this.getId() + "' style='position:absolute;width:100%'>"); } catch (final IOException e) { throw new JspException(e); } return EVAL_BODY_INCLUDE; } @Override public int doEndTag() throws JspException { try { pageContext.getOut().println(" <br/>"); pageContext.getOut().println("<table width='100%'><tr><td style='text-align:center'>"); final HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); pageContext.getOut().println( " <img src='" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/novoLayout/common/include/imagens/ajax-loader.gif' border='0'>  " + UtilI18N.internacionaliza(request, "citcorpore.comum.aguarde")); pageContext.getOut().println("</td></tr></table>"); pageContext.getOut().println("</div>\n"); pageContext.getOut().println("</div>\n"); pageContext.getOut().println("</div>\n"); pageContext.getOut().println("<script>"); pageContext.getOut().println("F" + this.getId() + "_atualizaZIndexMaior = function(idDiv) {"); pageContext.getOut().println(" var divs = document.getElementsByTagName('div');"); pageContext.getOut().println(" var maiorZIndex = 0;"); pageContext.getOut().println(" if (divs == null || divs == undefined) return;"); pageContext.getOut().println(" for(var i = 0; i < divs.length; i++) {"); pageContext.getOut().println(" if (divs[i].style.display != 'none') {"); pageContext.getOut().println(" if (divs[i].style.zIndex != null && divs[i].style.zIndex != undefined) {"); pageContext.getOut().println(" if (maiorZIndex < divs[i].style.zIndex) {"); pageContext.getOut().println(" maiorZIndex = divs[i].style.zIndex;"); pageContext.getOut().println(" }"); pageContext.getOut().println(" }"); pageContext.getOut().println(" }"); pageContext.getOut().println(" }"); pageContext.getOut().println(" document.getElementById(idDiv).style.zIndex = maiorZIndex + 10;"); pageContext.getOut().println("};"); pageContext.getOut().println("</script>"); // Gera a DIV de Bloqueio da Tela. pageContext.getOut().println( "<div id='divBloqueiaTela_" + this.getId() + "' style='z-index:3000;position:absolute; CURSOR: wait; BACKGROUND-COLOR:gray; filter:alpha(opacity=20);-moz-opacity:.25;opacity:.25;'>"); pageContext.getOut().println("</div>"); } catch (final IOException e) { throw new JspException(e); } return super.doEndTag(); } @Override public String getId() { return id; } @Override public void setId(final String id) { this.id = id; } public String getStyle() { return style; } public void setStyle(final String style) { this.style = style; } public String getTitle() { return title; } public void setTitle(final String title) { this.title = title; } }