You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/AnaliseAcidentesTrabalho/src/java/pdf/PdfGenerator.java

520 lines
24 KiB

package pdf;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.Time;
import java.util.Calendar;
import java.util.Date;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
import analiseacidentestrabalho.Acidentado;
import analiseacidentestrabalho.AnaliseAcidente;
import analiseacidentestrabalho.Causa;
import analiseacidentestrabalho.Estabelecimento;
import analiseacidentestrabalho.Medida;
import analiseacidentestrabalho.Recomendacao;
import analiseacidentestrabalho.Seccao;
import analiseacidentestrabalho.Utilizador;
import com.evolute.utils.fop.FOPCreator;
import com.evolute.utils.fop.PDFCreator;
public class PdfGenerator
{
protected final String imagePath;
protected final Estabelecimento estabelecimento;
protected final Utilizador tecnicoSuperior;
protected final Utilizador medico;
protected final AnaliseAcidente analiseAcidente;
protected final Acidentado acidentado;
protected final Seccao seccao;
protected final Recomendacao recomendacoes[];
protected final Medida medidas[];
protected final Causa causa;
public PdfGenerator(
String imagePath,
Estabelecimento estabelecimento,
Utilizador tecnicoSuperior,
Utilizador medico,
AnaliseAcidente analiseAcidente,
Acidentado acidentado,
Seccao seccao,
Recomendacao recomendacoes[],
Medida medidas[],
Causa causa )
{
this.imagePath = imagePath;
this.estabelecimento = estabelecimento;
this.tecnicoSuperior = tecnicoSuperior;
this.medico = medico;
this.analiseAcidente = analiseAcidente;
this.acidentado = acidentado;
this.seccao = seccao;
this.recomendacoes = recomendacoes;
this.medidas = medidas;
this.causa = causa;
}
public byte[] generatePdf()
throws Exception
{
Document doc = new Document( createXml() );
ByteArrayOutputStream baos = new ByteArrayOutputStream();
new XMLOutputter().output( doc, baos );
ByteArrayOutputStream out = new ByteArrayOutputStream();
InputStream xmlIn = new ByteArrayInputStream( baos.toByteArray() );
InputStream xslStream = getClass().getClassLoader().getResourceAsStream( "pdf/analise_acidentes_trabalho.xsl" );
FOPCreator.getFOPCreator().createFOfromXML( xmlIn, xslStream, out );
return PDFCreator.getPDFCreator().createPdfFromFo( out.toByteArray() );
}
protected Element createXml()
{
Element rootElement = new Element( "AnaliseAcidente" );
Element numeroElement = new Element( "Numero" );
numeroElement.setText( analiseAcidente.getAnalise_nr() );
rootElement.addContent( numeroElement );
Date data = analiseAcidente.getData_acidente();
rootElement.addContent( createDataElement( "Data", data ) );
rootElement.addContent( createEntidadeEmpregadoraElement() );
rootElement.addContent( createSeguroElement() );
rootElement.addContent( createEmpresaSHSTElement() );
rootElement.addContent( createAcidentadoElement() );
rootElement.addContent( createAcidenteElement() );
rootElement.addContent( createRecomendacoesSIPRPElement() );
rootElement.addContent( createMedidasElement() );
rootElement.addContent( createTomadaConhecimentoElement() );
return rootElement;
}
protected Element createEntidadeEmpregadoraElement()
{
Element entidadeEmpregadoraElement = new Element( "EntidadeEmpregadora" );
Element identificacaoElement = new Element( "IdentificacaoCompleta" );
identificacaoElement.setText( "Companhia Portuguesa de Hipermercados, S.A., com sede na Travessa Teixeira J\u00fanior, 1 - 1300-553 Lisboa" );
entidadeEmpregadoraElement.addContent( identificacaoElement );
Element actividadeElement = new Element( "Actividade" );
actividadeElement.setText( "Com\u00e9rcio a Retalho em Supermercados e Hipermercados" );
entidadeEmpregadoraElement.addContent( actividadeElement );
Element lojaElement = new Element( "Loja" );
lojaElement.setText( estabelecimento.getNome() );
entidadeEmpregadoraElement.addContent( lojaElement );
return entidadeEmpregadoraElement;
}
protected Element createSeguroElement()
{
Element seguroElement = new Element( "Seguro" );
Element empresaElement = new Element( "Empresa" );
empresaElement.setText( "Mapfre Seguros Gerais, S.A." );
seguroElement.addContent( empresaElement );
Element apoliceElement = new Element( "Apolice" );
apoliceElement.setText( "1500591100500" );
seguroElement.addContent( apoliceElement );
return seguroElement;
}
protected Element createEmpresaSHSTElement()
{
Element empresaSHSTElement = new Element( "EmpresaSHST" );
Element identificacaoElement = new Element( "IdentificacaoCompleta" );
identificacaoElement.setText(
"SIPRP - Sociedade Ib\u00e9rica de Preven\u00e7\u00e3o de Riscos Profissionais Lda., "
+ "com sede no Edif\u00edcio Atrium Saldanha, Pra\u00e7a Duque de Saldanha, 1 - 9\u00ba G"
+ " - 1050-094 Lisboa " );
empresaSHSTElement.addContent( identificacaoElement );
Element tecnicoSuperiorHSTElement = new Element( "TecnicoSuperiorHST" );
Element nomeTecnicoSuperiorHSTElement = new Element( "Nome" );
nomeTecnicoSuperiorHSTElement.setText( tecnicoSuperior.getNome() );
tecnicoSuperiorHSTElement.addContent( nomeTecnicoSuperiorHSTElement );
Element capElement = new Element( "CAP" );
capElement.setText( tecnicoSuperior.getCap() );
tecnicoSuperiorHSTElement.addContent( capElement );
empresaSHSTElement.addContent( tecnicoSuperiorHSTElement );
Element medicoTrabalhoElement = new Element( "MedicoTrabalho" );
Element nomeMedicoTrabalhoElement = new Element( "Nome" );
nomeMedicoTrabalhoElement.setText( medico.getNome() );
medicoTrabalhoElement.addContent( nomeMedicoTrabalhoElement );
Element cedulaElement = new Element( "Cedula" );
cedulaElement.setText( medico.getNumero_cedula() );
medicoTrabalhoElement.addContent( cedulaElement );
empresaSHSTElement.addContent( medicoTrabalhoElement );
return empresaSHSTElement;
}
protected Element createAcidentadoElement()
{
Element acidentadoElement = new Element( "Acidentado" );
Element nomeElement = new Element( "Nome" );
nomeElement.setText( acidentado.getNome() );
acidentadoElement.addContent( nomeElement );
Element estabelecimentoOrigemElement = new Element( "EstabelecimentoOrigem" );
Element nomeEstabelecimentoOrigemElement = new Element( "Nome" );
nomeEstabelecimentoOrigemElement.setText( acidentado.getEstabelecimento_origem() );
estabelecimentoOrigemElement.addContent( nomeEstabelecimentoOrigemElement );
acidentadoElement.addContent( estabelecimentoOrigemElement );
Date dataNascimento = acidentado.getData_nascimento();
acidentadoElement.addContent( createDataElement( "DataNascimento", dataNascimento ) );
Element biElement = new Element( "BilheteIdentidade" );
Element numeroBiElement = new Element( "Numero" );
numeroBiElement.setText( acidentado.getBilhete_identidade() );
biElement.addContent( numeroBiElement );
acidentadoElement.addContent( biElement );
Element moradaElement = new Element( "Morada" );
moradaElement.setText( acidentado.getMorada() + ", " + acidentado.getCod_postal() + " " + acidentado.getLocalidade() );
acidentadoElement.addContent( moradaElement );
Element telefoneElement = new Element( "Telefone" );
telefoneElement.setText( acidentado.getContacto_telefonico() );
acidentadoElement.addContent( telefoneElement );
Date dataAdmissao = acidentado.getData_admissao();
acidentadoElement.addContent( createDataElement( "DataAdmissao", dataAdmissao ) );
Element funcaoElement = new Element( "Funcao" );
funcaoElement.setText( acidentado.getFuncao() );
acidentadoElement.addContent( funcaoElement );
Element turnoElement = new Element( "Turno" );
String turno = acidentado.getTurno();
if( "m".equals( turno ) )
{
turno = "Manh\u00e3";
}
else if( "t".equals( turno ) )
{
turno = "Tarde";
}
else if( "n".equals( turno ) )
{
turno = "Noite";
}
turnoElement.setText( turno );
acidentadoElement.addContent( turnoElement );
Element superiorElement = new Element( "Superior" );
Element nomeSuperiorElement = new Element( "Nome" );
nomeSuperiorElement.setText( acidentado.getNome_superior_hierarquico() );
superiorElement.addContent( nomeSuperiorElement );
Element emailSuperiorElement = new Element( "Email" );
emailSuperiorElement.setText( acidentado.getEmail_superior_hierarquico() );
superiorElement.addContent( emailSuperiorElement );
acidentadoElement.addContent( superiorElement );
return acidentadoElement;
}
protected Element createAcidenteElement()
{
Element acidenteElement = new Element( "Acidente" );
Element averiguadorElement = new Element( "Averiguador" );
Element nomeAveriguadorElement = new Element( "Nome" );
nomeAveriguadorElement.setText( analiseAcidente.getAveriguador() );
averiguadorElement.addContent( nomeAveriguadorElement );
acidenteElement.addContent( averiguadorElement );
Date dataOcorrencia = analiseAcidente.getData_acidente();
acidenteElement.addContent( createDataElement( "DataOcorrencia", dataOcorrencia ) );
Time horaOcorrencia = analiseAcidente.getHora_acidente();
acidenteElement.addContent( createHoraElement( "HoraOcorrencia", horaOcorrencia ) );
Element horasTrabalhadasElement = new Element( "HorasTrabalhadas" );
horasTrabalhadasElement.setText( "" + analiseAcidente.getHoras_turno() );
acidenteElement.addContent( horasTrabalhadasElement );
Element localElement = new Element( "Local" );
Element seccaoElement = new Element( "Seccao" );
seccaoElement.setText( seccao.getDescricao() );
localElement.addContent( seccaoElement );
Element localEspecificoElement = new Element( "LocalEspecifico" );
localEspecificoElement.setText( analiseAcidente.getLocal_trabalho() );
localElement.addContent( localEspecificoElement );
acidenteElement.addContent( localElement );
Element actividadeElement = new Element( "Actividade" );
Element descricaoActividadeElement = new Element( "Descricao" );
descricaoActividadeElement.setText( analiseAcidente.getTarefa() );
actividadeElement.addContent( descricaoActividadeElement );
Element objectosActividadeElement = new Element( "Objectos" );
objectosActividadeElement.setText( analiseAcidente.getSubstancias() );
actividadeElement.addContent( objectosActividadeElement );
Element condicoesActividadeElement = new Element( "Condicoes" );
condicoesActividadeElement.setText( analiseAcidente.getCondicoes() );
actividadeElement.addContent( condicoesActividadeElement );
acidenteElement.addContent( actividadeElement );
Element testemunhasElement = new Element( "Testemunhas" );
testemunhasElement.setText( analiseAcidente.getTestemunhas() );
acidenteElement.addContent( testemunhasElement );
Element causasElement = new Element( "Causas" );
causasElement.setText( causa.getCausa() );
acidenteElement.addContent( causasElement );
Element descricaoElement = new Element( "Descricao" );
descricaoElement.setText( analiseAcidente.getDescricao() );
acidenteElement.addContent( descricaoElement );
Element imagensElement = new Element( "Imagens" );
//PERGUNTAR
String imagens[] = new String[]{};
for( int i = 0; i < imagens.length; i++ )
{
String imagem = imagens[ i ];
Element imagemElement = new Element( "Imagem" );
imagemElement.setText( imagem );
imagensElement.addContent( imagemElement );
}
acidenteElement.addContent( imagensElement );
Element conclusoesElement = new Element( "Conclusoes" );
conclusoesElement.setText( analiseAcidente.getConclusoes() );
acidenteElement.addContent( conclusoesElement );
Element accoesTomadasElement = new Element( "AccoesTomadas" );
accoesTomadasElement.setText( analiseAcidente.getAccoes() );
acidenteElement.addContent( accoesTomadasElement );
Element formacaoSHSTElement = new Element( "FormacaoSHST" );
Element teveFormacaoSHSTElement = new Element( "TeveFormacao" );
teveFormacaoSHSTElement.setText( analiseAcidente.getFormacao_shst() );
formacaoSHSTElement.addContent( teveFormacaoSHSTElement );
Element motivoFormacaoSHSTElement = new Element( "Motivo" );
motivoFormacaoSHSTElement.setText( analiseAcidente.getFormacao_shst_nao_porque() );
formacaoSHSTElement.addContent( motivoFormacaoSHSTElement );
acidenteElement.addContent( formacaoSHSTElement );
Element outrasOcorrenciasMesmoPostoElement = new Element( "OutrasOcorrenciasMesmoPosto" );
Element quantidadeOutrasOcorrenciasMesmoPostoElement = new Element( "Quantidade" );
boolean outrasOcorrenciasMesmoPosto = "y".equals( analiseAcidente.getOutros_acidentes_com_colaborador() );
quantidadeOutrasOcorrenciasMesmoPostoElement.setText(
outrasOcorrenciasMesmoPosto ? "" + analiseAcidente.getNr_acidentes_com_colaborador() : "0" );
outrasOcorrenciasMesmoPostoElement.addContent( quantidadeOutrasOcorrenciasMesmoPostoElement );
Element relatoriosOutrasOcorrenciasMesmoPostoElement = new Element( "Relatorios" );
Integer relatorioMesmoPosto1 = analiseAcidente.getNr_relatorio_acidente_colaborador1();
Integer relatorioMesmoPosto2 = analiseAcidente.getNr_relatorio_acidente_colaborador2();
Integer relatorioMesmoPosto3 = analiseAcidente.getNr_relatorio_acidente_colaborador3();
Integer relatorioMesmoPosto4 = analiseAcidente.getNr_relatorio_acidente_colaborador4();
String numerosRelatoriosOutrasOcorrenciasMesmoPosto[] =
new String[]{
relatorioMesmoPosto1 != null ? "" + relatorioMesmoPosto1 : null,
relatorioMesmoPosto2 != null ? "" + relatorioMesmoPosto2 : null,
relatorioMesmoPosto3 != null ? "" + relatorioMesmoPosto3 : null,
relatorioMesmoPosto4 != null ? "" + relatorioMesmoPosto4 : null
};
for( int r = 0; r < numerosRelatoriosOutrasOcorrenciasMesmoPosto.length; r++ )
{
if( numerosRelatoriosOutrasOcorrenciasMesmoPosto[ r ] == null )
{
continue;
}
String numeroRelatorio = numerosRelatoriosOutrasOcorrenciasMesmoPosto[ r ];
Element relatorioElement = new Element( "Relatorio" );
relatorioElement.setText( numeroRelatorio );
relatoriosOutrasOcorrenciasMesmoPostoElement.addContent( relatorioElement );
}
outrasOcorrenciasMesmoPostoElement.addContent( relatoriosOutrasOcorrenciasMesmoPostoElement );
acidenteElement.addContent( outrasOcorrenciasMesmoPostoElement );
Element outrasOcorrenciasOutrosTrabalhadoresElement = new Element( "OutrasOcorrenciasOutrosTrabalhadores" );
Element quantidadeOutrasOcorrenciasOutrosTrabalhadoresElement = new Element( "Quantidade" );
boolean outrasOcorrenciasOutrosTrabalhadores = "y".equals( analiseAcidente.getAcidentes_outros_colaboradores() );
quantidadeOutrasOcorrenciasOutrosTrabalhadoresElement.setText(
outrasOcorrenciasOutrosTrabalhadores ? "" + analiseAcidente.getNr_acidentes_outros_colaboradores() : "0" );
outrasOcorrenciasOutrosTrabalhadoresElement.addContent( quantidadeOutrasOcorrenciasOutrosTrabalhadoresElement );
Element relatoriosOutrasOcorrenciasOutrosTrabalhadoresElement = new Element( "Relatorios" );
Integer relatorioOtrosTrabalhadores1 = analiseAcidente.getNr_relatorio_acidente_outros_colaboradores1();
Integer relatorioOtrosTrabalhadores2 = analiseAcidente.getNr_relatorio_acidente_outros_colaboradores2();
Integer relatorioOtrosTrabalhadores3 = analiseAcidente.getNr_relatorio_acidente_outros_colaboradores3();
Integer relatorioOtrosTrabalhadores4 = analiseAcidente.getNr_relatorio_acidente_outros_colaboradores4();
String numerosRelatoriosOutrasOcorrenciasOutrosTrabalhadores[] =
new String[]{
relatorioOtrosTrabalhadores1 != null ? "" + relatorioOtrosTrabalhadores1 : null,
relatorioOtrosTrabalhadores2 != null ? "" + relatorioOtrosTrabalhadores2 : null,
relatorioOtrosTrabalhadores3 != null ? "" + relatorioOtrosTrabalhadores3 : null,
relatorioOtrosTrabalhadores4 != null ? "" + relatorioOtrosTrabalhadores4 : null
};
for( int r = 0; r < numerosRelatoriosOutrasOcorrenciasOutrosTrabalhadores.length; r++ )
{
if( numerosRelatoriosOutrasOcorrenciasOutrosTrabalhadores[ r ] == null )
{
continue;
}
String numeroRelatorio = numerosRelatoriosOutrasOcorrenciasOutrosTrabalhadores[ r ];
Element relatorioElement = new Element( "Relatorio" );
relatorioElement.setText( numeroRelatorio );
relatoriosOutrasOcorrenciasOutrosTrabalhadoresElement.addContent( relatorioElement );
}
outrasOcorrenciasOutrosTrabalhadoresElement.addContent( relatoriosOutrasOcorrenciasOutrosTrabalhadoresElement );
acidenteElement.addContent( outrasOcorrenciasOutrosTrabalhadoresElement );
Element lesaoElement = new Element( "Lesao" );
Element areasLesaoElement = new Element( "Areas" );
boolean cabeca = "y".equals( analiseAcidente.getLesao_cabeca() );
boolean pescoco = "y".equals( analiseAcidente.getLesao_pescoco() );
boolean tronco = "y".equals( analiseAcidente.getLesao_tronco() );
boolean superiorDireito = "y".equals( analiseAcidente.getLesao_membro_sup_dir() );
String detalheSuperiorDireito = analiseAcidente.getEspecif1();
boolean superiorEsquerdo = "y".equals( analiseAcidente.getLesao_membro_sup_esq() );
String detalheSuperiorEsquerdo = analiseAcidente.getEspecif2();
boolean inferiorDireito = "y".equals( analiseAcidente.getLesao_membro_inf_dir() );
String detalheInferiorDireito = analiseAcidente.getEspecif3();
boolean inferiorEsquerdo = "y".equals( analiseAcidente.getLesao_membro_inf_esq() );
String detalheInferiorEsquerdo = analiseAcidente.getEspecif4();
String areasLesao[][] =
new String[][]{
cabeca ? new String[] { "Cabe\u00e7a", "" } : null,
pescoco ? new String[] { "Pesco\u00e7o", "" } : null,
tronco ? new String[] { "Tronco", "" } : null,
superiorDireito ? new String[] { "Membro Superior Direito", detalheSuperiorDireito } : null,
superiorEsquerdo ? new String[] { "Membro Superior Esquerdo", detalheSuperiorEsquerdo } : null,
inferiorDireito ? new String[] { "Membro Inferior Direito", detalheInferiorDireito } : null,
inferiorEsquerdo ? new String[] { "Membro Inferior Esquerdo", detalheInferiorEsquerdo } : null,
};
for( int a = 0; a < areasLesao.length; a++ )
{
if( areasLesao[ a ] == null )
{
continue;
}
String area[] = areasLesao[ a ];
Element areaLesaoElement = new Element( "Area" );
Element nomeAreaLesaoElement = new Element( "Nome" );
nomeAreaLesaoElement.setText( area[ 0 ] );
areaLesaoElement.addContent( nomeAreaLesaoElement );
Element detalheAreaLesaoElement = new Element( "Detalhe" );
detalheAreaLesaoElement.setText( area[ 1 ] );
areaLesaoElement.addContent( detalheAreaLesaoElement );
areasLesaoElement.addContent( areaLesaoElement );
}
lesaoElement.addContent( areasLesaoElement );
Element tipoLesaoElement = new Element( "Tipo" );
tipoLesaoElement.setText( analiseAcidente.getTipo_lesao() );
lesaoElement.addContent( tipoLesaoElement );
acidenteElement.addContent( lesaoElement );
Element incapacidadeElement = new Element( "Incapacidade" );
Element tipoIncapacidadeElement = new Element( "Tipo" );
String tipoIncapacidade = analiseAcidente.getTipo_incapacidade();
if( "n".equals( tipoIncapacidade ) )
{
tipoIncapacidade = "Nenhuma";
}
else if( "t".equals( tipoIncapacidade ) )
{
tipoIncapacidade = "Tempor\u00e1ria";
}
else if( "p".equals( tipoIncapacidade ) )
{
tipoIncapacidade = "Permanente";
}
tipoIncapacidadeElement.setText( tipoIncapacidade );
incapacidadeElement.addContent( tipoIncapacidadeElement );
Element coeficienteIncapacidadeElement = new Element( "Coeficiente" );
coeficienteIncapacidadeElement.setText( "" + analiseAcidente.getCoef_incapacidade() );
incapacidadeElement.addContent( coeficienteIncapacidadeElement );
Date dataAvaliacao = analiseAcidente.getData_aval_incapacidade();
incapacidadeElement.addContent( createDataElement( "DataAvaliacao", dataAvaliacao ) );
Date dataRevisao = analiseAcidente.getData_rev_incapacidade();
incapacidadeElement.addContent( createDataElement( "DataRevisao", dataRevisao ) );
Element periodoIncapacidadeElement = new Element( "PeriodoIncapacidade" );
Date inicioIncapacidade = analiseAcidente.getPeriodo_incapacidade_de();
periodoIncapacidadeElement.addContent( createDataElement( "Inicio", inicioIncapacidade ) );
Date fimIncapacidade = analiseAcidente.getPeriodo_incapacidade_a();
periodoIncapacidadeElement.addContent( createDataElement( "Fim", fimIncapacidade ) );
incapacidadeElement.addContent( periodoIncapacidadeElement );
acidenteElement.addContent( incapacidadeElement );
return acidenteElement;
}
protected Element createRecomendacoesSIPRPElement()
{
Element recomendacoesSIPRPElement = new Element( "RecomendacoesSIPRP" );
for( int r = 0; r < recomendacoes.length; r++ )
{
Element recomendacaoElement = new Element( "Recomendacao" );
recomendacaoElement.setText( recomendacoes[ r ].getRecomendacao() );
recomendacoesSIPRPElement.addContent( recomendacaoElement );
}
return recomendacoesSIPRPElement;
}
protected Element createMedidasElement()
{
Element medidasElement = new Element( "MedidasAdoptar" );
for( int m = 0; m < medidas.length; m++ )
{
Element medidaElement = new Element( "Medida" );
medidaElement.setText( medidas[ m ].getMedida() );
medidasElement.addContent( medidaElement );
}
return medidasElement;
}
protected Element createTomadaConhecimentoElement()
{
Element tomadaConhecimentoElement = new Element( "TomadaConhecimento" );
tomadaConhecimentoElement.addContent(
createAssinaturaElement( "DepartamentoSeguranca",
analiseAcidente.getAveriguador(),
analiseAcidente.getData_inicio_processo() ) );
tomadaConhecimentoElement.addContent(
createAssinaturaElement( "TecnicoHST",
analiseAcidente.getNome_resp_consolidacao(),
analiseAcidente.getData_consolidacao() ) );
tomadaConhecimentoElement.addContent(
createAssinaturaElement( "ResponsavelSeguranca",
analiseAcidente.getNome_resp_seg(),
analiseAcidente.getData_assinatura_seg() ) );
tomadaConhecimentoElement.addContent(
createAssinaturaElement( "ResponsavelRH",
analiseAcidente.getNome_resp_rh(),
analiseAcidente.getData_assinatura_rh() ) );
tomadaConhecimentoElement.addContent(
createAssinaturaElement( "SuperiorHierarquico",
acidentado.getNome_superior_hierarquico(),
acidentado.getData_email_superior_hierarquico() ) );
return tomadaConhecimentoElement;
}
protected Element createAssinaturaElement( String nome, String nomeStr, Date data )
{
Element assinaturaElement = new Element( nome );
Element nomeElement = new Element( "Nome" );
nomeElement.setText( nomeStr );
assinaturaElement.addContent( nomeElement );
assinaturaElement.addContent( createDataElement( "Data", data ) );
return assinaturaElement;
}
protected Element createDataElement( String nome, Date data )
{
Element dataElement = new Element( nome );
Element anoElement = new Element( "Ano" );
dataElement.addContent( anoElement );
Element mesElement = new Element( "Mes" );
dataElement.addContent( mesElement );
Element diaElement = new Element( "Dia" );
dataElement.addContent( diaElement );
if( data != null )
{
Calendar cal = Calendar.getInstance();
cal.setTime( data );
anoElement.setText( "" + cal.get( Calendar.YEAR ) );
int mes = cal.get( Calendar.MONTH ) + 1;
mesElement.setText( mes > 9 ? ( "" + mes ) : ( "0" + mes ) );
int dia = cal.get( Calendar.DAY_OF_MONTH );
diaElement.setText( dia > 9 ? ( "" + dia ) : ( "0" + dia ) );
}
return dataElement;
}
protected Element createHoraElement( String nome, Date hora )
{
Element horaElement = new Element( nome );
Element horasElement = new Element( "Horas" );
horaElement.addContent( horasElement );
Element minutosElement = new Element( "Minutos" );
horaElement.addContent( minutosElement );
if( hora != null )
{
Calendar cal = Calendar.getInstance();
cal.setTime( hora );
int horas = cal.get( Calendar.HOUR_OF_DAY );
horasElement.setText( horas > 9 ? ( "" + horas ) : ( "0" + horas ) );
int minutos = cal.get( Calendar.MINUTE );
minutosElement.setText( minutos > 9 ? ( "" + minutos ) : ( "0" + minutos ) );
}
return horaElement;
}
}