String coordenador = "";
// Caso n�o existam itens a serem exibidos,
// O slide � exibido apenas com a informa��o de que nenhum item foi encontrado.
if (root.getElementsByTagName("semItens").getLength() > 0) {
Slide s = ppt.createSlide();
adicionaTitulo(request, root, s, ppt, caminhoImagens);
TextBox semItens = adicionaTextBox(s, "Nenhum item foi encontrado para os par�metros deste relat�rio.",
null, 5, 102, 600, 20, 0);
formataFonte(semItens, 14, "Arial", true, false, false, Color.blue, TextBox.AlignLeft);
adicionaRodape(root, s);
ppt.write(out);
exibePPT(request, response, out, caminhoCompleto);
}
NodeList itens = root.getElementsByTagName("item");
ArrayList slides = new ArrayList();
Slide s1;
int quantidadeSlides = 0;
int posicaoYQuebraSlide = 548;
int incrementoParaOutroParecer = 0;
int desceEtapas = 0;
for (int i = 0; i < itens.getLength(); i++) {
Node item = itens.item(i);
NodeList filhosItemCorrente = item.getChildNodes();
Node nd = null;
NamedNodeMap map = item.getAttributes();
nd = map.getNamedItem("nomeItem");
if (!nd.getNodeValue().equals("")) {
nomeItem = nd.getNodeValue();
}
// Obtendo a tag ocorrencias do item corrente
// Obtendo os pareceres do item corrente
Node noOcorrenciaCorrente = null;
Node noParecerCorrente = null;
ArrayList pareceres = new ArrayList();
String nomeNo;
for (int o = 0; o < filhosItemCorrente.getLength(); o++) {
nomeNo = filhosItemCorrente.item(o).getNodeName();
if (nomeNo.equals("ocorrencias")) {
noOcorrenciaCorrente = filhosItemCorrente.item(o);
} else if (nomeNo.equals("parecer")) {
noParecerCorrente = filhosItemCorrente.item(o);
pareceres.add(noParecerCorrente);
desceEtapas++;
}
}
// Se a tag item corrente tem o atributo nomeItem != "", cria-se um novo slide
if (!nd.getNodeValue().equals("")) {
// Criando o slide
s1 = null;
incrementoParaOutroParecer = 0;
slides.add(quantidadeSlides, ppt.createSlide());
s1 = (Slide)slides.get(quantidadeSlides);
quantidadeSlides++;
// Caso contr�rio, continuamos a escrever no mesmo slide
} else {
s1 = (ppt.getSlides()[ppt.getSlides().length - 1]);
}
// ************** Montagem do T�tulo ****************** //
adicionaTitulo(request, root, s1, ppt, caminhoImagens);
// ************** Montagem do �rgao ****************** //
// Obtendo o �rg�o no XML
nd = map.getNamedItem("orgaoItem");
String orgao = nd.getNodeValue();//pegarAtributo(doc, "item", "orgao");
// Obtendo o Respons�vel T�cnico no XML
nd = map.getNamedItem("labelRespTecnicoIett");
if (!nd.getNodeValue().trim().equals("")) {
coordenador = nd.getNodeValue();
nd = map.getNamedItem("valorRespTecnicoIett");
coordenador += "" + nd.getNodeValue();
}
//Texto do label DR1 - N�mero de Ocorrencias (label)
nd = map.getNamedItem("labelDR1");
String labelDR1 = nd.getNodeValue() + ":";
//Texto do valor DR1 - N�mero de Ocorrencias (valor)
nd = map.getNamedItem("valorDR1");
String valorDR1 = nd.getNodeValue();
adicionaOrgao (s1, orgao, nomeItem, coordenador);
if (valorDR1 != "") {
//montagem do label DR1
TextBox ctLabelDR1 = adicionaTextBox(s1, labelDR1, null, 0, 156, 198, 16, 1);
ctLabelDR1.setVerticalAlignment(1);
formataFonte(ctLabelDR1, 12, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
//montagem do valor DR1
TextBox ctValorDR1 = adicionaTextBox(s1, valorDR1, null, 160, 155, 198, 16, 1);
ctValorDR1.setVerticalAlignment(1);
formataFonte(ctValorDR1, 12, "Arial", false, false, false, Color.black, TextBox.AlignLeft);
}
// ************** Pareceres (Situa��o) **************** //
Iterator pareceresItem = pareceres.iterator();
while(pareceresItem.hasNext()) {
noParecerCorrente = (Node)pareceresItem.next();
// adicionando novo slide caso o parecer corrente n�o caiba no slide atual:
if ((174 + incrementoParaOutroParecer) >= posicaoYQuebraSlide) {
adicionaRodape(root, s1);
incrementoParaOutroParecer = 0;
// criando o novo slide
s1 = ppt.createSlide();
slides.add(quantidadeSlides, s1);
quantidadeSlides++;
// a partir daqui estamos escrevendo num novo slide
adicionaTitulo(request, root, s1, ppt, caminhoImagens);
adicionaOrgao (s1, orgao, nomeItem, coordenador);
}
//montagem do label situa��o
TextBox ctSituacao = adicionaTextBox(s1, "Situa��o:", null, 0, 174 + incrementoParaOutroParecer, 99, 17, 1);
ctSituacao.setVerticalAlignment (1);
formataFonte(ctSituacao, 12, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
//Texto da situa��o
String situacao = noParecerCorrente.getAttributes().getNamedItem("situacaoParecer").getNodeValue().toString();
//Deve-se remover as quebras de linha das strings exibidas para que n�o percam a formata��o de fonte.
situacao = situacao.replace("\n", " ");
//montagem do valor Situa��o
TextBox ctValorSituacao = adicionaTextBox(s1, situacao, null, 58, 174 + incrementoParaOutroParecer, 99, 17, 1);
ctValorSituacao.setVerticalAlignment(1);
formataFonte(ctValorSituacao, 12, "Arial", false, false, false, Color.black, TextBox.AlignLeft);
String pathImagemParecer = "";
//imagem da situa��o
try {
pathImagemParecer = noParecerCorrente.getAttributes().getNamedItem("caminhoImagem").getNodeValue().toString();
int beginIndex = pathImagemParecer.lastIndexOf("/");
pathImagemParecer = caminhoImagens + pathImagemParecer.substring(beginIndex, pathImagemParecer.length());
int idImagemParecer = ppt.addPicture(new File(pathImagemParecer), Picture.PNG);
Picture imagemParecer = new Picture(idImagemParecer);
imagemParecer.setAnchor(new java.awt.Rectangle(12, 190 + incrementoParaOutroParecer, 21,21));
s1.addShape(imagemParecer);
} catch (Exception e) {
System.out.println("Imagem n�o econtrada:" + pathImagemParecer);
}
//Texto do Label Parecer