From 365632ea1c914c6c22547ee393a0b6ca4a2ff0fd Mon Sep 17 00:00:00 2001 From: pawc Date: Fri, 23 Oct 2015 15:12:22 +0200 Subject: [PATCH] adding export interface --- .../client/domain/services/Export.java | 63 +++++++++++++++++++ .../domain/services/IExportService.java | 10 +++ .../client/domain/ui/AdministratorFrame.java | 1 + .../controller/AdministratorController.java | 61 +++--------------- 4 files changed, 81 insertions(+), 54 deletions(-) create mode 100644 client/src/main/java/com/kritsit/casetracker/client/domain/services/Export.java create mode 100644 client/src/main/java/com/kritsit/casetracker/client/domain/services/IExportService.java diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/services/Export.java b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Export.java new file mode 100644 index 0000000..70936b2 --- /dev/null +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Export.java @@ -0,0 +1,63 @@ +package com.kritsit.casetracker.client.domain.services; + +import java.io.File; +import java.io.IOException; + +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.itextpdf.text.Chunk; +import com.itextpdf.text.Document; +import com.itextpdf.text.DocumentException; +import com.itextpdf.text.Font; +import com.itextpdf.text.Paragraph; +import com.itextpdf.text.Phrase; +import com.itextpdf.text.pdf.PdfPCell; +import com.itextpdf.text.pdf.PdfPTable; +import com.itextpdf.text.pdf.PdfWriter; + +public class Export implements IExportService{ + + private final Logger logger = LoggerFactory.getLogger(Export.class); + + private void exportToPDF(List headers, List cells, File file){ + + Document document = new Document(); + + try { + logger.info("Creating file output"); + PdfWriter.getInstance(document, + new FileOutputStream(file)); + document.open(); + document.add(createTable(headers, cells)); + document.close(); + logger.info("export to PDF: success"); + } catch (DocumentException e) { + e.printStackTrace(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + private PdfPTable createTable(List headers, List cells){ + + PdfPTable table = new PdfPTable(headers.size()); + Font boldFont = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD); + logger.info("Filling in the table"); + + for(int i=0; i headers, List cells, File file); +} + + diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/AdministratorFrame.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/AdministratorFrame.java index a2f4606..fec13e8 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/AdministratorFrame.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/AdministratorFrame.java @@ -45,6 +45,7 @@ private void setUpController() { logger.debug("Setting up controller"); IAdministratorService administratorService = ServiceFactory.getAdministratorService(user); IMenuService menuService = ServiceFactory.getMenuService(user); + IExportService exportService = ServiceFactory.getExportService(user); controller.setAdministratorService(administratorService); controller.setMenuService(menuService); controller.setStage(stage); diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index ea18e2a..d265210 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -15,6 +15,7 @@ import com.kritsit.casetracker.client.domain.services.IAdministratorService; import com.kritsit.casetracker.client.domain.services.IMenuService; +import com.kritsit.casetracker.client.domain.services.IExportService; import com.kritsit.casetracker.client.domain.services.InputToModelParseResult; import com.kritsit.casetracker.shared.domain.model.Permission; import com.kritsit.casetracker.shared.domain.model.Staff; @@ -64,6 +65,7 @@ public class AdministratorController implements IController { private FilteredList filteredStaff; private IAdministratorService administratorService; private IMenuService menuService; + private IExportService exportService; private Stage stage; private final Logger logger = LoggerFactory.getLogger(AdministratorController.class); @@ -74,6 +76,10 @@ public void setAdministratorService(IAdministratorService administratorService) public void setMenuService(IMenuService menuService){ this.menuService = menuService; } + + public void setExportService(IExportService exportService){ + this.exportService = exportService; + } public void initFrame(){ logger.info("Initiating frame"); @@ -138,7 +144,7 @@ public void initialize(){ }); exportItem.setOnAction(event->{ - exportToPDF(); + //to be done }); } @@ -373,59 +379,6 @@ private void resetPassword(String username){ } } - private void exportToPDF(){ - Document document = new Document(); - try { - PdfWriter.getInstance(document, - new FileOutputStream("Users Report.pdf")); - document.open(); - document.add(new Paragraph("Case Tracker users:")); - document.add(Chunk.NEWLINE); - document.add(createTable()); - document.close(); - } catch (DocumentException e) { - e.printStackTrace(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - - } - - private PdfPTable createTable(){ - - PdfPTable table = new PdfPTable(5); - - Font boldFont = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD); - PdfPCell cellFirstName = new PdfPCell(new Phrase("First name", boldFont)); - PdfPCell cellLastName = new PdfPCell(new Phrase("Last name", boldFont)); - PdfPCell cellUsername = new PdfPCell(new Phrase("Username", boldFont)); - PdfPCell cellDepartment = new PdfPCell(new Phrase("Department", boldFont)); - PdfPCell cellPermission = new PdfPCell(new Phrase("Permission", boldFont)); - table.addCell(cellFirstName); - table.addCell(cellLastName); - table.addCell(cellUsername); - table.addCell(cellDepartment); - table.addCell(cellPermission); - - for(int i=0; i cbxFilterPermissions; @FXML private Button btnResetPassword;