diff options
Diffstat (limited to 'ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java')
-rw-r--r-- | ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java deleted file mode 100644 index 34e38062..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java +++ /dev/null @@ -1,256 +0,0 @@ -/*- - * ================================================================================ - * eCOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.pdf; - -import java.awt.Color; -import java.io.File; -import java.io.IOException; -import java.net.MalformedURLException; - -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.Globals; - -import com.lowagie.text.BadElementException; -import com.lowagie.text.Cell; -import com.lowagie.text.Document; -import com.lowagie.text.ExceptionConverter; -import com.lowagie.text.Font; -import com.lowagie.text.FontFactory; -import com.lowagie.text.Image; -import com.lowagie.text.Paragraph; -import com.lowagie.text.Rectangle; -import com.lowagie.text.pdf.PdfContentByte; -import com.lowagie.text.pdf.PdfDestination; -import com.lowagie.text.pdf.PdfOutline; -import com.lowagie.text.pdf.PdfPCell; -import com.lowagie.text.pdf.PdfPTable; -import com.lowagie.text.pdf.PdfPageEventHelper; -import com.lowagie.text.pdf.PdfWriter; - -class PageEvent extends PdfPageEventHelper { - private PdfBean pb; - private int pageNo = 0; - private int omit_page_count = 0; - private int DEFAULT_LOGO_SIZE = 100; - - public PageEvent(PdfBean pb) { - this.pb = pb; - } - - private int getWidthEntries(int howManyLogos){ - int widthEntries = 0; - - if(howManyLogos == 2) - widthEntries = 3; - else - if(howManyLogos == 1) - widthEntries = 2; - else - widthEntries = 0; - - return widthEntries; - } - - private int getHowManyLogos(){ - int howManyLogos = 0; - - if(AppUtils.isNotEmpty(pb.getLogo1Url()) && !pb.getLogo1Url().equalsIgnoreCase("<no logo>")) - howManyLogos ++; - - if(AppUtils.isNotEmpty(pb.getLogo2Url()) && !pb.getLogo2Url().equalsIgnoreCase("<no logo>")) - howManyLogos ++; - - return howManyLogos; - } - - private float[] fillWidthsArray(int howManyLogos){ - float[] widthsArray = new float[howManyLogos + 1]; - - //If one logo, we will need two columns in the header[left log, spacer] - if(howManyLogos == 1){ - widthsArray = new float[2]; - widthsArray[0] = 0.1f; - widthsArray[1] = 0.1f; - } - //If two logs, we will need three columns in the header [left log, spacer, right log] - else - if(howManyLogos == 2){ - widthsArray = new float[3]; - widthsArray[0] = 0.1f; - widthsArray[1] = 0.5f; - widthsArray[2] = 0.1f; - } - - return widthsArray; - } - public void onStartPage(PdfWriter writer, Document document) { - - Font font = FontFactory.getFont(Globals.getFooterFontFamily(), Globals.getFooterFontSize(), Font.NORMAL, Color.BLACK); - int howManyLogos = getHowManyLogos(); - - //No need to draw anything in the header if no logo was set in the report. - if(howManyLogos == 0) - return; - - float[] widths = fillWidthsArray(howManyLogos); - - PdfPTable foot = new PdfPTable(widths); - - if(AppUtils.isNotEmpty(pb.getLogo1Url()) && !pb.getLogo1Url().equalsIgnoreCase("<no logo>")) - addLogo(foot, font, pb.getLogo1Url().substring(pb.getLogo1Url().indexOf("|") + 1).trim(), Cell.ALIGN_LEFT, pb.getLogo1Size() == null ? DEFAULT_LOGO_SIZE : pb.getLogo1Size()); - - PdfPCell spacingCell = new PdfPCell(); - spacingCell.setBorderColor(Color.WHITE); - foot.addCell(spacingCell); - - //Using logo1 size for now - use logo2 size if it is required to deal it separately. - if(AppUtils.isNotEmpty(pb.getLogo2Url()) && !pb.getLogo2Url().equalsIgnoreCase("<no logo>")) - addLogo(foot, font, pb.getLogo2Url().substring(pb.getLogo2Url().indexOf("|") + 1).trim(), Cell.ALIGN_RIGHT, pb.getLogo2Size() == null ? DEFAULT_LOGO_SIZE : pb.getLogo2Size()); - - foot.setTotalWidth(getPageWidth(document)); - foot.writeSelectedRows(0, -1, 36, 600, writer.getDirectContent()); - } - - public void onEndPage(PdfWriter writer, Document document) { - - Font font = FontFactory.getFont(Globals.getFooterFontFamily(), Globals.getFooterFontSize(), Font.NORMAL, Color.BLACK); - - try { - - // footer - float[] f = { 1f, 0.4f, 1f }; - PdfPTable foot = new PdfPTable(f); - foot.getDefaultCell().setBorderWidth(0); - foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); - foot.getDefaultCell().setVerticalAlignment(Rectangle.ALIGN_BOTTOM); - - foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_LEFT); - addLeftFooter(foot, font); - - foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); - addPageNumber(foot, font, pb.isPageNumberAtFooter(), document.getPageNumber()); - - foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_RIGHT); - foot.getDefaultCell().setNoWrap(true); - - foot.addCell(new Paragraph(" " + PdfReportHandler.currentTime(pb.getTimestampPattern()), font)); - - foot.setTotalWidth(getPageWidth(document)); - foot.writeSelectedRows(0, -1, document.leftMargin(), document.bottomMargin(), writer.getDirectContent()); - - // bookmark - pageNo++; - PdfContentByte cb = writer.getDirectContent(); - PdfDestination destination = new PdfDestination(PdfDestination.FITH); - String bookmark = "Data Page " + (pageNo - omit_page_count); - if (pageNo == 1) { - if (pb.isCoverPageIncluded()) { - bookmark = "Cover Page"; - omit_page_count++; - } else if (pb.isDisplayChart()) { - bookmark = "Chart"; - omit_page_count++; - } - } - if (pageNo == 2 && pb.isCoverPageIncluded() && pb.isDisplayChart()) { - bookmark = "Chart"; - omit_page_count++; - } - - PdfOutline outline = new PdfOutline(cb.getRootOutline(), destination, bookmark); - - } catch (Exception e) { - throw new ExceptionConverter(e); - } - } - - private void addPageNumber(PdfPTable table, Font font, boolean isAdd, int pageNum) { - if (isAdd) - table.addCell(new Paragraph(Globals.getWordBeforePageNumber() + " " + pageNum + " " + Globals.getWordAfterPageNumber(), font)); - else - table.addCell(""); - } - - private void addLeftFooter(PdfPTable table, Font font) { - Font font1 = new Font(font); - font1.setSize(Globals.getAttProprieraryFontSize()); - - if (isEmpty(pb.getLeftFooter())) - table.addCell(new Paragraph(" " + Globals.getAttProprietary(), font1)); - else - table.addCell(new Paragraph(pb.getLeftFooter(), font)); - } - - private void addHeaderDummy(PdfPTable table, Font font) { - Font font1 = new Font(font); - font1.setSize(Globals.getAttProprieraryFontSize()); - - table.addCell(new Paragraph("Header row", font1)); - } - - private void addLogo(PdfPTable table, Font font, String imgSrc, int alignment, int absoluteSize) { - - Image img = null; - try { - img = Image.getInstance(pb.getFullWebContextPath() + AppUtils.getImgFolderURL() + File.separator + imgSrc); - } catch (BadElementException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - img = null; - } catch (MalformedURLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - img = null; - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - - } - if(img == null){ - //log that the input file couldnt be loaded - - } - else{ - //img.scaleAbsolute(absoluteSize, absoluteSize); - img.scalePercent(absoluteSize, absoluteSize); - PdfPCell cell = new PdfPCell(img); - cell.setBorderColor(Color.WHITE); - cell.setHorizontalAlignment(alignment); - table.addCell(cell); - } - - } - - public static float getPageWidth(Document doc) { - return doc.getPageSize().width() - doc.leftMargin() - doc.rightMargin(); - } - - public static float getPageHeight(Document doc) { - return doc.getPageSize().height() - doc.topMargin() - doc.bottomMargin(); - } - - private float getHeadTopMargin(Document doc, PdfPTable table) { - return doc.getPageSize().height() - doc.topMargin() + table.getTotalHeight(); - } - - private boolean isEmpty(String str) { - return str == null || str.trim().length() == 0; - } - -} // PageEvent |