com.hris.payroll.reports.ReportViewer.java Source code

Java tutorial

Introduction

Here is the source code for com.hris.payroll.reports.ReportViewer.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hris.payroll.reports;

import com.hris.common.abstractclasses.AbstractWindow;
import com.vaadin.server.StreamResource;
import com.vaadin.shared.ui.MarginInfo;
import com.vaadin.ui.Embedded;
import com.vaadin.ui.VerticalLayout;
import java.util.Date;

/**
 *
 * @author jetdario
 */
public class ReportViewer extends AbstractWindow {

    private String reportType;
    private int branchId;
    private Date payrollDate;

    public ReportViewer(String reportType, int branchId, Date payrollDate) {
        this.reportType = reportType;
        this.branchId = branchId;
        this.payrollDate = payrollDate;

        setWidth("900px");
        setHeight("600px");
        center();

        StreamResource resource = null;

        switch (reportType) {
        case "Payslip": {
            String filename = "Payslip-" + new Date().getTime() + ".pdf";
            resource = new StreamResource(new PayslipReportPDF(getBranchId(), getPayrollDate()), filename);
            break;
        }

        case "Advances Summary": {
            String filename = "Advances-" + new Date().getTime() + ".pdf";
            resource = new StreamResource(new AdvancesSummaryReportPdf(getBranchId(), getPayrollDate()), filename);
            break;
        }

        default: {
            String filename = "Advances-" + new Date().getTime() + ".pdf";
            resource = new StreamResource(new AdvancesReportPdf(getBranchId(), getPayrollDate(), reportType),
                    filename);
            break;
        }
        }

        resource.setMIMEType("application/pdf");

        VerticalLayout v = new VerticalLayout();
        v.setSizeFull();
        v.setSpacing(true);
        v.setMargin(new MarginInfo(false, false, true, false));

        Embedded em = new Embedded();
        em.setSource(resource);
        em.setSizeFull();
        em.setType(Embedded.TYPE_BROWSER);
        v.addComponent(em);
        v.setExpandRatio(em, 1);

        setContent(v);
    }

    public String getReportType() {
        return reportType;
    }

    private int getBranchId() {
        return branchId;
    }

    private Date getPayrollDate() {
        return payrollDate;
    }

}