package aplicacao.command; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import org.apache.log4j.Logger; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.postgresql.Driver; import tela.view.ReportView; import aplicacao.helper.FileHelper; public abstract class ReportCommand extends AbstractHandler{ private Logger log = Logger.getLogger(getClass()); public ReportCommand() { } public JasperPrint getReport(String caminhoRelatorio){ try { String urlBanco = "jdbc:postgresql://localhost:5432/mecasoft"; DriverManager.registerDriver(new Driver()); Connection con = DriverManager.getConnection(urlBanco, "postgres", "admin"); return JasperFillManager.fillReport(FileHelper.directoryPath("reports").concat(caminhoRelatorio), getParametros(), con); } catch (SQLException e) { log.error(e); } catch (JRException e) { log.error(e); } return null; } public JasperPrint getReport(String caminhoRelatorio, List<?> listaObjetos){ try { JRDataSource jrds = new JRBeanCollectionDataSource(listaObjetos); return JasperFillManager.fillReport(FileHelper.directoryPath("reports").concat(caminhoRelatorio), getParametros(), jrds); } catch (JRException e) { log.error(e); } return null; } public ReportView getView(){ try { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); ReportView reportView = (ReportView) page.showView(ReportView.ID); page.bringToTop(reportView); return reportView; } catch (PartInitException e) { log.error(e); } return null; } public Map<String, Object> getParametros() { return new HashMap<String, Object>(); } }