diff --git a/trunk/PlanosActuacao/lib/avalon-framework-4.2.0.jar b/trunk/PlanosActuacao/lib/avalon-framework-4.2.0.jar new file mode 100644 index 00000000..b1aa6d7c Binary files /dev/null and b/trunk/PlanosActuacao/lib/avalon-framework-4.2.0.jar differ diff --git a/trunk/PlanosActuacao/lib/batik.jar b/trunk/PlanosActuacao/lib/batik.jar new file mode 100644 index 00000000..28c8bac0 Binary files /dev/null and b/trunk/PlanosActuacao/lib/batik.jar differ diff --git a/trunk/PlanosActuacao/lib/jai_imageio.jar b/trunk/PlanosActuacao/lib/jai_imageio.jar new file mode 100644 index 00000000..359551eb Binary files /dev/null and b/trunk/PlanosActuacao/lib/jai_imageio.jar differ diff --git a/trunk/PlanosActuacao/nbproject/build-impl.xml b/trunk/PlanosActuacao/nbproject/build-impl.xml index 6ec6bc3c..dc686697 100644 --- a/trunk/PlanosActuacao/nbproject/build-impl.xml +++ b/trunk/PlanosActuacao/nbproject/build-impl.xml @@ -579,10 +579,22 @@ or ant -Dj2ee.platform.classpath=<server_classpath> (where no properties f + + + + + + + + + + + + - + @@ -620,6 +632,12 @@ or ant -Dj2ee.platform.classpath=<server_classpath> (where no properties f + + + + + + diff --git a/trunk/PlanosActuacao/nbproject/genfiles.properties b/trunk/PlanosActuacao/nbproject/genfiles.properties index 58dcac6a..0f70cea2 100644 --- a/trunk/PlanosActuacao/nbproject/genfiles.properties +++ b/trunk/PlanosActuacao/nbproject/genfiles.properties @@ -1,8 +1,8 @@ -build.xml.data.CRC32=3084e562 +build.xml.data.CRC32=78944a2b build.xml.script.CRC32=fa3993b7 build.xml.stylesheet.CRC32=cfd7ba16 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=3084e562 -nbproject/build-impl.xml.script.CRC32=db27eab1 +nbproject/build-impl.xml.data.CRC32=78944a2b +nbproject/build-impl.xml.script.CRC32=5dc756a4 nbproject/build-impl.xml.stylesheet.CRC32=8926891b diff --git a/trunk/PlanosActuacao/nbproject/project.properties b/trunk/PlanosActuacao/nbproject/project.properties index 6f0c69d4..6ba6e110 100644 --- a/trunk/PlanosActuacao/nbproject/project.properties +++ b/trunk/PlanosActuacao/nbproject/project.properties @@ -21,19 +21,25 @@ dist.javadoc.dir=${dist.dir}/javadoc dist.war=${dist.dir}/${war.name} file.reference.activation.jar=jars/activation.jar file.reference.ashwood-1.1.jar=../common/lib/ashwood-1.1.jar +file.reference.avalon-framework-4.2.0.jar=lib/avalon-framework-4.2.0.jar +file.reference.batik.jar=lib/batik.jar file.reference.cayenne-server-3.0M2.jar=../common/lib/cayenne-server-3.0M2.jar file.reference.common-src=../common/src file.reference.commons-collections-3.1.jar=../common/lib/commons-collections-3.1.jar file.reference.commons-lang-2.1.jar=../common/lib/commons-lang-2.1.jar file.reference.commons-logging-1.1.jar=../common/lib/commons-logging-1.1.jar file.reference.evolute.jar=../common/lib/evolute.jar +file.reference.fop.jar=lib/fop.jar +file.reference.jai_imageio.jar=lib/jai_imageio.jar file.reference.jcalendar-1.3.2.jar=../common/lib/jcalendar-1.3.2.jar +file.reference.jdom.jar=lib/jdom.jar file.reference.log4j-1.2.8.jar=../common/lib/log4j-1.2.8.jar file.reference.mail.jar=jars/mail.jar file.reference.mail.jar-1=../common/lib/mail.jar file.reference.postgresql-8.0-315.jdbc3.jar=jars/postgresql-8.0-315.jdbc3.jar file.reference.postgresql-8.1-407.jdbc3.jar=jars/postgresql-8.1-407.jdbc3.jar file.reference.postgresql-8.2-506.jdbc4.jar=jars/postgresql-8.2-506.jdbc4.jar +file.reference.SIPRP.jar=lib/SIPRP.jar file.reference.TableLayout.jar=../common/lib/TableLayout.jar j2ee.platform=1.5 j2ee.server.type=Tomcat60 @@ -58,7 +64,13 @@ javac.classpath=\ ${file.reference.log4j-1.2.8.jar}:\ ${file.reference.mail.jar-1}:\ ${file.reference.TableLayout.jar}:\ - ${file.reference.ashwood-1.1.jar} + ${file.reference.ashwood-1.1.jar}:\ + ${file.reference.SIPRP.jar}:\ + ${file.reference.jdom.jar}:\ + ${file.reference.fop.jar}:\ + ${file.reference.avalon-framework-4.2.0.jar}:\ + ${file.reference.batik.jar}:\ + ${file.reference.jai_imageio.jar} # Space-separated list of extra javac options javac.compilerargs= javac.debug=true diff --git a/trunk/PlanosActuacao/nbproject/project.xml b/trunk/PlanosActuacao/nbproject/project.xml index e085a39b..33574ad4 100644 --- a/trunk/PlanosActuacao/nbproject/project.xml +++ b/trunk/PlanosActuacao/nbproject/project.xml @@ -7,101 +7,113 @@ PlanosActuacao 1.6 - + ${libs.jsf12.classpath} WEB-INF/lib - + ${libs.jstl11.classpath} WEB-INF/lib - + ${libs.jsf12-support.classpath} WEB-INF/lib - + ${libs.woodstock-components.classpath} WEB-INF/lib - + ${libs.woodstock-theme-default.classpath} WEB-INF/lib - + ${file.reference.activation.jar} WEB-INF/lib - + ${file.reference.mail.jar} WEB-INF/lib - + ${file.reference.postgresql-8.0-315.jdbc3.jar} WEB-INF/lib - + ${file.reference.postgresql-8.1-407.jdbc3.jar} WEB-INF/lib - + ${file.reference.postgresql-8.2-506.jdbc4.jar} WEB-INF/lib - + ${file.reference.cayenne-server-3.0M2.jar} WEB-INF/lib - + ${file.reference.commons-collections-3.1.jar} WEB-INF/lib - + ${file.reference.commons-lang-2.1.jar} WEB-INF/lib - + ${file.reference.commons-logging-1.1.jar} WEB-INF/lib - + ${file.reference.evolute.jar} WEB-INF/lib - + ${file.reference.jcalendar-1.3.2.jar} WEB-INF/lib - + ${file.reference.log4j-1.2.8.jar} WEB-INF/lib - + ${file.reference.mail.jar-1} WEB-INF/lib - + ${file.reference.TableLayout.jar} WEB-INF/lib - + ${file.reference.ashwood-1.1.jar} WEB-INF/lib - + ${file.reference.SIPRP.jar} WEB-INF/lib - + ${file.reference.jdom.jar} WEB-INF/lib - + ${file.reference.fop.jar} WEB-INF/lib + + ${file.reference.avalon-framework-4.2.0.jar} + WEB-INF/lib + + + ${file.reference.batik.jar} + WEB-INF/lib + + + ${file.reference.jai_imageio.jar} + WEB-INF/lib + - + ${libs.exceptionhandler-runtime.classpath} WEB-INF/lib diff --git a/trunk/PlanosActuacao/src/java/global/Global.java b/trunk/PlanosActuacao/src/java/global/Global.java index 805ee727..1870bb17 100644 --- a/trunk/PlanosActuacao/src/java/global/Global.java +++ b/trunk/PlanosActuacao/src/java/global/Global.java @@ -42,5 +42,6 @@ public class Global { //public static final String ANALISE_ACIDENTES_URL = "http://192.168.111.24:8084/AnaliseAcidentesTrabalho/faces/"; //testes portatil public static final String ANALISE_ACIDENTES_URL = "https://www.siprp.pt/AnaliseAcidentesTrabalho/faces/"; //real - public static final String LOGOS_FOLDER = "/resources/images"; + public static final String LOGOS_FOLDER = "/resources/images"; + public static final String PDF_FOLDER_URL = "/resources/pdf"; } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java b/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java index 6f43ebf4..a665673d 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java @@ -10,16 +10,13 @@ import com.sun.data.provider.RowKey; import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.webui.jsf.component.Table; import com.sun.webui.jsf.component.TableRowGroup; -import db.entidades.Area; -import db.entidades.Medida; import db.entidades.PlanoActuacao; -import db.entidades.PostoTrabalho; -import db.entidades.Risco; import db.providers.UtilizadoresDataProvider; import db.entidades.Utilizador; -import db.entidades.Valor; import db.providers.PlanosDataProvider; import global.Global; +import java.io.File; +import java.io.FileInputStream; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -27,7 +24,10 @@ import java.util.List; import javax.faces.FacesException; import javax.faces.component.html.HtmlPanelGrid; import javax.faces.context.FacesContext; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletResponse; import siprp.database.cayenne.providers.PlanoActuacaoDAO; +import siprp.planoactuacao.print.PlanoActuacaoPDFCreator; import tabledataproviders.PlanosActualDataProvider; import tabledataproviders.PlanosConcluidosDataProvider; import tabledataproviders.PlanosSeguimentoDataProvider; @@ -283,9 +283,96 @@ public class ListaPlanos extends AbstractPageBean { public String goImprimirPlano_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. + PlanoActuacao p = getTableActivosRowData(); + PlanoActuacaoPDFCreator pdfCreator = new PlanoActuacaoPDFCreator(); + try + { + byte[] pdf = pdfCreator.createPDF(p.getId()); + showPdf(pdf); + } + catch(Exception ex) + { + ex.printStackTrace(); + } + return null; } + public String goImprimirPlanoFromSeguimento_action() { + // TODO: Process the action. Return value is a navigation + // case name where null will return to the same page. + PlanoActuacao p = getTableSeguimentoRowData(); + PlanoActuacaoPDFCreator pdfCreator = new PlanoActuacaoPDFCreator(); + try + { + byte[] pdf = pdfCreator.createPDF(p.getId()); + showPdf(pdf); + } + catch(Exception ex) + { + ex.printStackTrace(); + } + + return null; + } + + public String goImprimirPlanoFromConcluidos_action() { + // TODO: Process the action. Return value is a navigation + // case name where null will return to the same page. + PlanoActuacao p = getTableConcluidosRowData(); + PlanoActuacaoPDFCreator pdfCreator = new PlanoActuacaoPDFCreator(); + try + { + byte[] pdf = pdfCreator.createPDF(p.getId()); + showPdf(pdf); + } + catch(Exception ex) + { + ex.printStackTrace(); + } + + + return null; + } + + private void showPdf(byte[] pdf) throws Exception + { +// FacesContext fc = getFacesContext(); +// HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse(); +// response.setContentType("application/pdf"); +// //response.getOutputStream().flush(); +// response.flushBuffer(); +// response.getOutputStream().write(pdf, 0, pdf.length); +// fc.getResponseComplete(); + + System.out.println("PDF LEN : " + pdf.length); + +FacesContext context = FacesContext.getCurrentInstance(); + HttpServletResponse response = +(HttpServletResponse)context.getExternalContext().getResponse(); + + response.setHeader("Expires", "0"); + response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); +//response.setHeader("Content-disposition","inline; filename=kiran.pdf"); + response.setHeader("Pragma", "public"); + response.setContentType( "application/pdf" ); +//response.setHeader("Content-Disposition", "attachment;filename=\"ContactList.pdf\""); + response.addHeader("Content-disposition", "attachment;filename=\"Plano.pdf\""); + + //response.setHeader("Content-disposition", "filename=plano.pdf"); + response.setContentLength(pdf.length); + //try { + response.getOutputStream().write(pdf); + response.getOutputStream().flush(); + response.getOutputStream().close(); + context.responseComplete(); +// } catch (IOException e) { +// e.printStackTrace(); +// } + System.out.println("SHOW PDF"); + } + + private void initialize() { Utilizador u = getSessionBean1().getCurrentUser(); diff --git a/trunk/PlanosActuacao/src/java/utils/Logos.java b/trunk/PlanosActuacao/src/java/utils/Logos.java index 079b5c2c..cbd641fc 100644 --- a/trunk/PlanosActuacao/src/java/utils/Logos.java +++ b/trunk/PlanosActuacao/src/java/utils/Logos.java @@ -36,13 +36,13 @@ public class Logos { ServletContext context = (ServletContext) fc.getExternalContext().getContext(); File logoFolder = new File(context.getRealPath(Global.LOGOS_FOLDER)); - String logoFilename = logoFolder + "/logo_empresa.jpg"; + String logoFilename = logoFolder + "/logo_empresa" + empresaId.toString() + ".jpg"; OutputStream outImej = new FileOutputStream(logoFilename); outImej.write(logo, 0, len); System.out.println("LOGO PATH : " + logoFilename); outImej.close(); - return Global.LOGOS_FOLDER + "/logo_empresa.jpg"; + return Global.LOGOS_FOLDER + "/logo_empresa" + empresaId.toString() + ".jpg"; } catch(Exception ex) { diff --git a/trunk/PlanosActuacao/web/ListaPlanos.jsp b/trunk/PlanosActuacao/web/ListaPlanos.jsp index bf6937d4..57544974 100644 --- a/trunk/PlanosActuacao/web/ListaPlanos.jsp +++ b/trunk/PlanosActuacao/web/ListaPlanos.jsp @@ -87,7 +87,7 @@ - @@ -114,7 +114,7 @@ - diff --git a/trunk/PlanosActuacao/web/resources/pdf/AAA.pdf b/trunk/PlanosActuacao/web/resources/pdf/AAA.pdf new file mode 100644 index 00000000..9c205b33 Binary files /dev/null and b/trunk/PlanosActuacao/web/resources/pdf/AAA.pdf differ