package edu.ualberta.med.biobank.export;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JasperPrint;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.viewers.ITableLabelProvider;
import edu.ualberta.med.biobank.SessionManager;
import edu.ualberta.med.biobank.gui.common.BgcPlugin;
import edu.ualberta.med.biobank.reporting.ReportingUtils;
public class PrintPdfDataExporter extends PdfDataExporter {
public PrintPdfDataExporter() {
super("Print");
}
@Override
protected void export(Data data, ITableLabelProvider labelProvider,
IProgressMonitor monitor) throws DataExportException {
canExport(data);
List<Map<String, String>> maps;
try {
maps = getPropertyMaps(data, labelProvider,
monitor, true);
} catch (Exception e1) {
// cancelled
return;
}
try {
JasperPrint jasperPrint = ReportingUtils.createDynamicReport(
data.getTitle(), data.getDescription(), data.getColumnNames(),
maps, true);
ReportingUtils.printReport(jasperPrint);
} catch (Exception e) {
BgcPlugin
.openAsyncError("Error printing PDF", e);
return;
}
try {
SessionManager.log("print",
data.getTitle(), LOG_TYPE);
} catch (Exception e) {
BgcPlugin.openAsyncError(
"Error Logging Print", e);
}
}
}