Example usage for com.lowagie.text.pdf PdfPCell setPhrase

List of usage examples for com.lowagie.text.pdf PdfPCell setPhrase

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfPCell setPhrase.

Prototype

public void setPhrase(Phrase phrase) 

Source Link

Document

Sets the Phrase for this cell.

Usage

From source file:org.oscarehr.web.reports.ocan.NeedRatingOverTimeReportGenerator.java

License:Open Source License

private void addSummaryOfNeedsRow(PdfPTable summaryOfNeedsTable, String needType, String needTypeKey,
        List<OcanNeedRatingOverTimeSummaryOfNeedsBean> currentBeanList) {
    //row3// ww  w.ja  v a2s. c o m
    PdfPCell c2 = new PdfPCell();
    c2.setBackgroundColor(Color.BLUE);
    c2.setPhrase(new Phrase(needType, new Font(Font.HELVETICA, 14, Font.BOLD, Color.WHITE)));
    summaryOfNeedsTable.addCell(c2);

    if (currentBeanList.size() > 0) {
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.GREEN);
        c2.setPhrase(new Phrase(String.valueOf(currentBeanList.get(0).getConsumerNeedMap().get(needTypeKey)),
                new Font(Font.HELVETICA, 14, Font.BOLD)));
        c2.setHorizontalAlignment(Element.ALIGN_RIGHT);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.LIGHT_GRAY);
        c2.setPhrase(new Phrase(String.valueOf(currentBeanList.get(0).getStaffNeedMap().get(needTypeKey)),
                new Font(Font.HELVETICA, 14, Font.BOLD)));
        c2.setHorizontalAlignment(Element.ALIGN_RIGHT);
        summaryOfNeedsTable.addCell(c2);
    }
    if (currentBeanList.size() > 1) {
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.BLACK);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.GREEN);
        c2.setPhrase(new Phrase(String.valueOf(currentBeanList.get(1).getConsumerNeedMap().get(needTypeKey)),
                new Font(Font.HELVETICA, 14, Font.BOLD)));
        c2.setHorizontalAlignment(Element.ALIGN_RIGHT);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.LIGHT_GRAY);
        c2.setPhrase(new Phrase(String.valueOf(currentBeanList.get(1).getStaffNeedMap().get(needTypeKey)),
                new Font(Font.HELVETICA, 14, Font.BOLD)));
        c2.setHorizontalAlignment(Element.ALIGN_RIGHT);
        summaryOfNeedsTable.addCell(c2);
    }
    if (currentBeanList.size() > 2) {
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.BLACK);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.GREEN);
        c2.setPhrase(new Phrase(String.valueOf(currentBeanList.get(2).getConsumerNeedMap().get(needTypeKey)),
                new Font(Font.HELVETICA, 14, Font.BOLD)));
        c2.setHorizontalAlignment(Element.ALIGN_RIGHT);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.LIGHT_GRAY);
        c2.setPhrase(new Phrase(String.valueOf(currentBeanList.get(2).getStaffNeedMap().get(needTypeKey)),
                new Font(Font.HELVETICA, 14, Font.BOLD)));
        c2.setHorizontalAlignment(Element.ALIGN_RIGHT);
        summaryOfNeedsTable.addCell(c2);
    }

}

From source file:org.oscarehr.web.reports.ocan.NeedRatingOverTimeReportGenerator.java

License:Open Source License

private void addSummaryOfNeedsDomainRow(PdfPTable summaryOfNeedsTable, int rowNum, List<String> domains,
        List<OcanNeedRatingOverTimeNeedBreakdownBean> ocans,
        OcanNeedRatingOverTimeNeedBreakdownBean lastBreakDownBean) {

    PdfPCell c2 = new PdfPCell();
    c2.setBackgroundColor(Color.BLUE);
    c2.setPhrase(new Phrase(domains.get(rowNum), new Font(Font.HELVETICA, 14, Font.BOLD, Color.WHITE)));
    summaryOfNeedsTable.addCell(c2);//from  ww  w  . j a va 2  s .c  om

    if (lastBreakDownBean != null) {
        boolean checkmark = false;
        if (!ocans.get(0).getNeeds().get(rowNum).getConsumerNeed()
                .equals(lastBreakDownBean.getNeeds().get(rowNum).getConsumerNeed())) {
            checkmark = true;
        }
        if (!ocans.get(0).getNeeds().get(rowNum).getStaffNeed()
                .equals(lastBreakDownBean.getNeeds().get(rowNum).getStaffNeed())) {
            checkmark = true;
        }
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.BLACK);
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        if (checkmark) {
            c2.setPhrase(new Phrase("X", new Font(Font.HELVETICA, 14, Font.BOLD, Color.WHITE)));
        }
        summaryOfNeedsTable.addCell(c2);
    }

    if (ocans.size() > 0) {
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.GREEN);
        c2.setPhrase(new Phrase(ocans.get(0).getNeeds().get(rowNum).getConsumerNeed(),
                new Font(Font.HELVETICA, 14,
                        (ocans.get(0).getNeeds().get(rowNum).getConsumerNeed().equals("Unmet Need") ? Font.BOLD
                                : Font.NORMAL),
                        (ocans.get(0).getNeeds().get(rowNum).getConsumerNeed().equals("Unmet Need") ? Color.RED
                                : Color.BLACK))));
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.LIGHT_GRAY);
        c2.setPhrase(new Phrase(ocans.get(0).getNeeds().get(rowNum).getStaffNeed(),
                new Font(Font.HELVETICA, 14,
                        (ocans.get(0).getNeeds().get(rowNum).getStaffNeed().equals("Unmet Need") ? Font.BOLD
                                : Font.NORMAL),
                        (ocans.get(0).getNeeds().get(rowNum).getStaffNeed().equals("Unmet Need") ? Color.RED
                                : Color.BLACK))));
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        summaryOfNeedsTable.addCell(c2);
    }
    if (ocans.size() > 1) {
        boolean checkmark = false;
        if (!ocans.get(1).getNeeds().get(rowNum).getConsumerNeed()
                .equals((ocans.get(0).getNeeds().get(rowNum).getConsumerNeed()))) {
            checkmark = true;
        }
        if (!ocans.get(1).getNeeds().get(rowNum).getStaffNeed()
                .equals((ocans.get(0).getNeeds().get(rowNum).getStaffNeed()))) {
            checkmark = true;
        }
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.BLACK);
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        if (checkmark) {
            c2.setPhrase(new Phrase("X", new Font(Font.HELVETICA, 14, Font.BOLD, Color.WHITE)));
        }
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.GREEN);
        c2.setPhrase(new Phrase(ocans.get(1).getNeeds().get(rowNum).getConsumerNeed(),
                new Font(Font.HELVETICA, 14,
                        (ocans.get(1).getNeeds().get(rowNum).getConsumerNeed().equals("Unmet Need") ? Font.BOLD
                                : Font.NORMAL),
                        (ocans.get(1).getNeeds().get(rowNum).getConsumerNeed().equals("Unmet Need") ? Color.RED
                                : Color.BLACK))));
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.LIGHT_GRAY);
        c2.setPhrase(new Phrase(ocans.get(1).getNeeds().get(rowNum).getStaffNeed(),
                new Font(Font.HELVETICA, 14,
                        (ocans.get(1).getNeeds().get(rowNum).getStaffNeed().equals("Unmet Need") ? Font.BOLD
                                : Font.NORMAL),
                        (ocans.get(1).getNeeds().get(rowNum).getStaffNeed().equals("Unmet Need") ? Color.RED
                                : Color.BLACK))));
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        summaryOfNeedsTable.addCell(c2);
    }
    if (ocans.size() > 2) {
        boolean checkmark = false;
        if (!ocans.get(2).getNeeds().get(rowNum).getConsumerNeed()
                .equals((ocans.get(1).getNeeds().get(rowNum).getConsumerNeed()))) {
            checkmark = true;
        }
        if (!ocans.get(2).getNeeds().get(rowNum).getStaffNeed()
                .equals((ocans.get(1).getNeeds().get(rowNum).getStaffNeed()))) {
            checkmark = true;
        }
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.BLACK);
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        if (checkmark) {
            c2.setPhrase(new Phrase("X", new Font(Font.HELVETICA, 14, Font.BOLD, Color.WHITE)));
        }
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.GREEN);
        c2.setPhrase(new Phrase(ocans.get(2).getNeeds().get(rowNum).getConsumerNeed(),
                new Font(Font.HELVETICA, 14,
                        (ocans.get(2).getNeeds().get(rowNum).getConsumerNeed().equals("Unmet Need") ? Font.BOLD
                                : Font.NORMAL),
                        (ocans.get(2).getNeeds().get(rowNum).getConsumerNeed().equals("Unmet Need") ? Color.RED
                                : Color.BLACK))));
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        summaryOfNeedsTable.addCell(c2);
        c2 = new PdfPCell();
        c2.setBackgroundColor(Color.LIGHT_GRAY);
        c2.setPhrase(new Phrase(ocans.get(2).getNeeds().get(rowNum).getStaffNeed(),
                new Font(Font.HELVETICA, 14,
                        (ocans.get(2).getNeeds().get(rowNum).getStaffNeed().equals("Unmet Need") ? Font.BOLD
                                : Font.NORMAL),
                        (ocans.get(2).getNeeds().get(rowNum).getStaffNeed().equals("Unmet Need") ? Color.RED
                                : Color.BLACK))));
        c2.setHorizontalAlignment(Element.ALIGN_CENTER);
        summaryOfNeedsTable.addCell(c2);
    }

}

From source file:org.oscarehr.web.reports.ocan.SummaryOfActionsAndCommentsReportGenerator.java

License:Open Source License

private void createOcanEntry(PdfPTable table, SummaryOfActionsAndCommentsOCANBean ocanBean) {
    Font f = new Font(Font.HELVETICA, 12, Font.BOLD, Color.BLACK);
    //header//from   w  ww .j  a v a  2s .  co  m
    PdfPCell c1 = new PdfPCell();
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    c1.setPhrase(new Phrase("Rating", f));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(2);
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase(ocanBean.getOcanName() + " - " + dateFormatter.format(ocanBean.getOcanDate()), f));
    table.addCell(c1);

    //actions
    c1 = new PdfPCell();
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setBorderWidthBottom(0);
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase("Actions", f));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setPhrase(new Phrase(ocanBean.getActions(), normalText));
    table.addCell(c1);

    //By Whom
    c1 = new PdfPCell();
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setBorderWidthBottom(0);
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase("By Whom", f));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setPhrase(new Phrase(ocanBean.getByWhom(), normalText));
    table.addCell(c1);

    //review date
    c1 = new PdfPCell();
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setBorderWidthBottom(0);
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase("Review Date", f));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setPhrase(new Phrase(ocanBean.getReviewDate(), normalText));
    table.addCell(c1);

    //consumer
    c1 = new PdfPCell();
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase(convertNeedToWord(ocanBean.getConsumerNeedRating()), boldText));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase("Consumer Comments", f));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setPhrase(new Phrase(includeComments ? ocanBean.getConsumerComments() : "", normalText));
    table.addCell(c1);

    //staff
    c1 = new PdfPCell();
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase(convertNeedToWord(ocanBean.getStaffNeedRating()), boldText));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setBackgroundColor(Color.LIGHT_GRAY);
    c1.setPhrase(new Phrase("Staff Comments", f));
    table.addCell(c1);
    c1 = new PdfPCell();
    c1.setColspan(1);
    c1.setPhrase(new Phrase(includeComments ? ocanBean.getStaffComments() : "", normalText));
    table.addCell(c1);
}

From source file:org.oscarehr.web.reports.ocan.SummaryOfActionsAndCommentsReportGenerator.java

License:Open Source License

private void createDomainHeader(PdfPTable table, String name) {
    Font f = new Font(Font.HELVETICA, 14, Font.BOLD, Color.BLACK);
    PdfPCell emptyCell = new PdfPCell();
    emptyCell.setBorder(0);/*from  w  w  w. j  av  a 2 s .  co m*/
    table.addCell(emptyCell);

    PdfPCell headerCell = new PdfPCell();
    headerCell.setColspan(2);
    headerCell.setPhrase(new Phrase(name, f));
    headerCell.setHorizontalAlignment(Element.ALIGN_CENTER);
    headerCell.setBackgroundColor(Color.LIGHT_GRAY);
    table.addCell(headerCell);
}

From source file:org.oscarehr.web.reports.ocan.SummaryOfActionsAndCommentsReportGenerator.java

License:Open Source License

private PdfPTable createNeedHeader(String name) throws DocumentException {
    Font whiteFont = new Font(Font.HELVETICA, 14, Font.BOLD, Color.WHITE);
    PdfPTable table = new PdfPTable(3);
    table.setWidthPercentage(100);//from ww  w  .  j  ava  2  s.  c om
    table.setWidths(new float[] { 0.10f, 0.20f, 0.70f });
    PdfPCell emptyCell = new PdfPCell();
    emptyCell.setBorder(0);
    table.addCell(emptyCell);

    PdfPCell headerCell = new PdfPCell();
    headerCell.setColspan(2);
    headerCell.setPhrase(new Phrase(name, whiteFont));
    headerCell.setHorizontalAlignment(Element.ALIGN_CENTER);
    headerCell.setBackgroundColor(Color.LIGHT_GRAY);
    table.addCell(headerCell);
    return table;
}

From source file:org.tellervo.desktop.print.BasicBoxLabel.java

License:Open Source License

/**
 * Get PdfPTable containing the samples per object
 * /*from   www.ja  v  a 2s .c om*/
 * @return PdfPTable
 * @throws DocumentException 
 */
private void addTable(WSIBox b) throws DocumentException {
    float[] widths = { 0.15f, 0.75f, 0.2f };
    PdfPTable tbl = new PdfPTable(widths);
    PdfPCell headerCell = new PdfPCell();

    tbl.setWidthPercentage(100f);

    // Write header cells of table
    headerCell.setBorderWidthBottom(headerLineWidth);
    headerCell.setBorderWidthTop(headerLineWidth);
    headerCell.setBorderWidthLeft(0);
    headerCell.setBorderWidthRight(0);
    headerCell.setPhrase(new Phrase("Object", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_LEFT);
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase("Elements", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_LEFT);
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase("# Samples", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    tbl.addCell(headerCell);

    // Find all objects associated with samples in this box
    SearchParameters objparam = new SearchParameters(SearchReturnObject.OBJECT);
    objparam.addSearchConstraint(SearchParameterName.SAMPLEBOXID, SearchOperator.EQUALS,
            b.getIdentifier().getValue().toString());
    EntitySearchResource<TridasObject> objresource = new EntitySearchResource<TridasObject>(objparam);
    objresource.setProperty(TellervoResourceProperties.ENTITY_REQUEST_FORMAT,
            TellervoRequestFormat.COMPREHENSIVE);
    TellervoResourceAccessDialog dialog = new TellervoResourceAccessDialog(objresource);

    objresource.query();
    dialog.setVisible(true);
    if (!dialog.isSuccessful()) {
        System.out.println("oopsey doopsey.  Error getting objects");
        return;
    }
    List<TridasObject> obj = objresource.getAssociatedResult();

    // Check that there are not too many objects to fit on box label
    if (obj.size() > 10) {
        System.out.println("Warning this label has " + Integer.toString(obj.size())
                + " objects associated with it so is unlikely to fit and may take some time to produce!");
    }

    if (obj.size() < 4) {
        // Not many objects so add some space to the table for prettiness sake
        headerCell.setBorder(0);
        headerCell.setPhrase(new Phrase(" "));
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
    }

    // Sort objects into alphabetically order based on labcode
    TridasComparator sorter = new TridasComparator();
    Collections.sort(obj, sorter);

    Integer sampleCountInBox = 0;

    // Loop through objects
    List<TridasObject> objdone = new ArrayList<TridasObject>(); // Array of top level objects that have already been dealt with
    mainobjloop: for (TridasObject myobj : obj) {
        // Need to check if this object has already been done as there will be duplicate top level objects if there are samples 
        // from more than one subobject in the box 
        if (objdone.size() > 0) {
            try {
                for (TridasObject tlo : objdone) {
                    TridasObjectEx tloex = (TridasObjectEx) tlo;
                    TridasObjectEx myobjex = (TridasObjectEx) myobj;

                    if (tloex.getLabCode().compareTo(myobjex.getLabCode()) == 0) {
                        // Object already been done so skip to next
                        continue mainobjloop;
                    } else {
                        // Object has not been done so add to the done list and keep going
                        objdone.add(myobj);
                    }
                }
            } catch (Exception e) {
            }

        } else {
            objdone.add(myobj);
        }

        // Add object code to first column         
        PdfPCell dataCell = new PdfPCell();
        dataCell.setBorderWidthBottom(0);
        dataCell.setBorderWidthTop(0);
        dataCell.setBorderWidthLeft(0);
        dataCell.setBorderWidthRight(0);
        dataCell.setHorizontalAlignment(Element.ALIGN_LEFT);
        String objCode = null;

        if (myobj instanceof TridasObjectEx)
            objCode = ((TridasObjectEx) myobj).getLabCode();
        dataCell.setPhrase(new Phrase(objCode, bodyFontLarge));
        tbl.addCell(dataCell);

        // Search for elements associated with this object
        System.out.println("Starting search for elements associated with " + myobj.getTitle().toString());
        SearchParameters sp = new SearchParameters(SearchReturnObject.ELEMENT);
        sp.addSearchConstraint(SearchParameterName.SAMPLEBOXID, SearchOperator.EQUALS,
                b.getIdentifier().getValue());
        sp.addSearchConstraint(SearchParameterName.ANYPARENTOBJECTID, SearchOperator.EQUALS,
                myobj.getIdentifier().getValue());
        EntitySearchResource<TridasElement> resource = new EntitySearchResource<TridasElement>(sp);
        resource.setProperty(TellervoResourceProperties.ENTITY_REQUEST_FORMAT, TellervoRequestFormat.SUMMARY);
        TellervoResourceAccessDialog dialog2 = new TellervoResourceAccessDialog(resource);
        resource.query();
        dialog2.setVisible(true);
        if (!dialog2.isSuccessful()) {
            System.out.println("oopsey doopsey.  Error getting elements");
            return;
        }
        //XMLDebugView.showDialog();
        List<TridasElement> elements = resource.getAssociatedResult();
        TridasComparator numSorter = new TridasComparator(TridasComparator.Type.TITLES,
                TridasComparator.NullBehavior.NULLS_LAST,
                TridasComparator.CompareBehavior.AS_NUMBERS_THEN_STRINGS);
        Collections.sort(elements, numSorter);

        // Loop through elements 
        Integer smpCnt = 0;
        ArrayList<String> numlist = new ArrayList<String>();
        for (TridasElement myelem : elements) {
            // Add element title to string
            if (myelem.getTitle() != null) {
                String mytitle = myelem.getTitle();
                numlist.add(mytitle);
            }

            // Grab associated samples and add count to running total
            List<TridasSample> samples = myelem.getSamples();
            smpCnt += samples.size();
        }

        // Add element names to second column
        dataCell.setPhrase(new Phrase(hyphenSummarize(numlist), bodyFontLarge));
        tbl.addCell(dataCell);

        // Add sample count to third column
        dataCell.setPhrase(new Phrase(smpCnt.toString(), bodyFontLarge));
        dataCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        tbl.addCell(dataCell);

        sampleCountInBox += smpCnt;

    }

    if (obj.size() < 4) {
        // Not many objects so add some space to the table for prettiness sake
        headerCell.setBorder(0);
        headerCell.setPhrase(new Phrase(" "));
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
    }

    headerCell.setBorderWidthBottom(headerLineWidth);
    headerCell.setBorderWidthTop(headerLineWidth);
    headerCell.setBorderWidthLeft(0);
    headerCell.setBorderWidthRight(0);

    headerCell.setPhrase(new Phrase(" ", bodyFontLarge));
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase("Grand Total", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase(sampleCountInBox.toString(), bodyFontLarge));
    tbl.addCell(headerCell);

    // Add table to document
    document.add(tbl);
}

From source file:org.tellervo.desktop.print.CompleteBoxLabel.java

License:Open Source License

/**
 * Get PdfPTable containing the samples per object
 * //from  www . j a v  a  2s  .co  m
 * @return PdfPTable
 * @throws DocumentException 
 */
private void addTable(WSIBox b) throws DocumentException {
    float[] widths = { 0.15f, 0.75f, 0.2f };
    PdfPTable tbl = new PdfPTable(widths);
    PdfPCell headerCell = new PdfPCell();

    tbl.setWidthPercentage(100f);

    // Write header cells of table
    headerCell.setBorderWidthBottom(headerLineWidth);
    headerCell.setBorderWidthTop(headerLineWidth);
    headerCell.setBorderWidthLeft(0);
    headerCell.setBorderWidthRight(0);
    headerCell.setPhrase(new Phrase("Object", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_LEFT);
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase("Elements", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_LEFT);
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase("# Samples", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    tbl.addCell(headerCell);

    // Find all objects associated with samples in this box
    SearchParameters objparam = new SearchParameters(SearchReturnObject.OBJECT);
    objparam.addSearchConstraint(SearchParameterName.SAMPLEBOXID, SearchOperator.EQUALS,
            b.getIdentifier().getValue().toString());
    EntitySearchResource<TridasObject> objresource = new EntitySearchResource<TridasObject>(objparam);
    objresource.setProperty(TellervoResourceProperties.ENTITY_REQUEST_FORMAT,
            TellervoRequestFormat.COMPREHENSIVE);
    TellervoResourceAccessDialog dialog = new TellervoResourceAccessDialog(objresource);

    objresource.query();
    dialog.setVisible(true);
    if (!dialog.isSuccessful()) {
        System.out.println("oopsey doopsey.  Error getting objects");
        return;
    }
    List<TridasObject> obj = objresource.getAssociatedResult();

    // Check that there are not too many objects to fit on box label
    if (obj.size() > 10) {
        System.out.println("Warning this label has " + Integer.toString(obj.size())
                + " objects associated with it so is unlikely to fit and may take some time to produce!");
    }

    if (obj.size() < 4) {
        // Not many objects so add some space to the table for prettiness sake
        headerCell.setBorder(0);
        headerCell.setPhrase(new Phrase(" "));
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
    }

    // Sort objects into alphabetically order based on labcode
    TridasComparator sorter = new TridasComparator();
    Collections.sort(obj, sorter);

    Integer sampleCountInBox = 0;

    // Loop through objects
    List<TridasObject> objlist = new ArrayList<TridasObject>(); // Array of top level objects that have already been dealt with

    for (TridasObject myobj : obj) {
        objlist.add(myobj);
        if (myobj.isSetObjects()) {
            for (TridasObject obj2 : myobj.getObjects()) {
                objlist.add(obj2);
            }
        }
    }

    Collections.sort(objlist, sorter);

    mainobjloop: for (TridasObject myobj : objlist) {
        // Need to check if this object has already been done as there will be duplicate top level objects if there are samples 
        // from more than one subobject in the box 
        /*if(objdone.size()>0)
        {
           try{for(TridasObject tlo : objdone){
              TridasObjectEx tloex = (TridasObjectEx) tlo;
              TridasObjectEx myobjex = (TridasObjectEx) myobj;
                      
              //if (tloex.getLabCode().compareTo(myobjex.getLabCode())==0){
          // Object already been done so skip to next
              //   continue mainobjloop;
              //}
              //else {
          // Object has not been done so add to the done list and keep going
          objdone.add(myobj);
              //}
           }} catch (Exception e){}
                   
        }
        else
        {
           objdone.add(myobj);
        }*/

        // Add object code to first column         
        PdfPCell dataCell = new PdfPCell();
        dataCell.setBorderWidthBottom(0);
        dataCell.setBorderWidthTop(0);
        dataCell.setBorderWidthLeft(0);
        dataCell.setBorderWidthRight(0);
        dataCell.setHorizontalAlignment(Element.ALIGN_LEFT);
        String objCode = null;

        if (myobj instanceof TridasObjectEx)
            objCode = ((TridasObjectEx) myobj).getMultiLevelLabCode();

        // Search for elements associated with this object
        System.out.println("Starting search for elements associated with " + myobj.getTitle().toString());
        SearchParameters sp = new SearchParameters(SearchReturnObject.ELEMENT);
        sp.addSearchConstraint(SearchParameterName.SAMPLEBOXID, SearchOperator.EQUALS,
                b.getIdentifier().getValue());
        sp.addSearchConstraint(SearchParameterName.OBJECTID, SearchOperator.EQUALS,
                myobj.getIdentifier().getValue());
        EntitySearchResource<TridasElement> resource = new EntitySearchResource<TridasElement>(sp);
        resource.setProperty(TellervoResourceProperties.ENTITY_REQUEST_FORMAT, TellervoRequestFormat.SUMMARY);
        TellervoResourceAccessDialog dialog2 = new TellervoResourceAccessDialog(resource);
        resource.query();
        dialog2.setVisible(true);
        if (!dialog2.isSuccessful()) {
            System.out.println("oopsey doopsey.  Error getting elements");
            return;
        }
        //XMLDebugView.showDialog();
        List<TridasElement> elements = resource.getAssociatedResult();

        if (elements == null || elements.size() == 0)
            continue;

        dataCell.setPhrase(new Phrase(objCode, bodyFontLarge));
        tbl.addCell(dataCell);

        TridasComparator numSorter = new TridasComparator(TridasComparator.Type.TITLES,
                TridasComparator.NullBehavior.NULLS_LAST,
                TridasComparator.CompareBehavior.AS_NUMBERS_THEN_STRINGS);
        Collections.sort(elements, numSorter);

        // Loop through elements 
        Integer smpCnt = 0;
        ArrayList<String> numlist = new ArrayList<String>();
        for (TridasElement myelem : elements) {
            // Add element title to string
            if (myelem.getTitle() != null) {
                String mytitle = myelem.getTitle();
                numlist.add(mytitle);
            }

            // Grab associated samples and add count to running total
            List<TridasSample> samples = myelem.getSamples();
            smpCnt += samples.size();
        }

        // Add element names to second column
        dataCell.setPhrase(new Phrase(hyphenSummarize(numlist), bodyFontLarge));
        tbl.addCell(dataCell);

        // Add sample count to third column
        dataCell.setPhrase(new Phrase(smpCnt.toString(), bodyFontLarge));
        dataCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        tbl.addCell(dataCell);

        sampleCountInBox += smpCnt;

    }

    if (obj.size() < 4) {
        // Not many objects so add some space to the table for prettiness sake
        headerCell.setBorder(0);
        headerCell.setPhrase(new Phrase(" "));
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
        tbl.addCell(headerCell);
    }

    headerCell.setBorderWidthBottom(headerLineWidth);
    headerCell.setBorderWidthTop(headerLineWidth);
    headerCell.setBorderWidthLeft(0);
    headerCell.setBorderWidthRight(0);

    headerCell.setPhrase(new Phrase(" ", bodyFontLarge));
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase("Grand Total", tableHeaderFontLarge));
    headerCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    tbl.addCell(headerCell);
    headerCell.setPhrase(new Phrase(sampleCountInBox.toString(), bodyFontLarge));
    tbl.addCell(headerCell);

    // Add table to document
    document.add(tbl);
}

From source file:org.tellervo.desktop.print.ProSheet.java

License:Open Source License

/**
 * Get PdfPTable containing the ring width data for this series
 * /*from   www. j  a  v a2s.  c o  m*/
 * @return PdfPTable
 * @throws DocumentException 
 */
private void getElementTable() throws DocumentException {

    PdfPTable tbl = new PdfPTable(5);

    PdfPCell headerCell = new PdfPCell();

    tbl.setWidthPercentage(100f);
    float[] widths = { 0.1f, 0.4f, 0.2f, 0.1f, 0.2f };

    tbl.setWidths(widths);

    // Set up header
    headerCell.setPhrase(new Phrase("Element", tableHeaderFont));
    headerCell.setBorderWidthBottom(headerLineWidth);
    headerCell.setBorderWidthTop(headerLineWidth);
    headerCell.setBorderWidthLeft(0);
    headerCell.setBorderWidthRight(0);
    headerCell.setPaddingTop(5);
    headerCell.setPaddingBottom(5);
    tbl.addCell(headerCell);

    headerCell.setPhrase(new Phrase("Comments", tableHeaderFont));
    tbl.addCell(headerCell);

    headerCell.setPhrase(new Phrase("Taxon", tableHeaderFont));
    tbl.addCell(headerCell);

    headerCell.setPhrase(new Phrase("# Rings", tableHeaderFont));
    tbl.addCell(headerCell);

    headerCell.setPhrase(new Phrase("Dates", tableHeaderFont));
    tbl.addCell(headerCell);

    // Loop through rows
    for (org.tellervo.desktop.sample.Element e : this.elements) {
        Sample s = null;

        try {
            s = e.load();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
            continue;
        }

        // Find element details for this series 
        SearchParameters param = new SearchParameters(SearchReturnObject.DERIVED_SERIES);
        param.addSearchConstraint(SearchParameterName.SERIESDBID, SearchOperator.EQUALS,
                s.getIdentifier().getValue().toString());

        EntitySearchResource<TridasObject> searchResource = new EntitySearchResource<TridasObject>(param,
                TridasObject.class);
        searchResource.setProperty(TellervoResourceProperties.ENTITY_REQUEST_FORMAT,
                TellervoRequestFormat.COMPREHENSIVE);
        TellervoResourceAccessDialog dialog = new TellervoResourceAccessDialog(searchResource);
        searchResource.query();
        dialog.setVisible(true);

        List<TridasObject> oblist = searchResource.getAssociatedResult();

        if (oblist.size() != 1) {
            System.out.println(e.getName() + " has more than one (or no) associated objects so skipping");
            continue;
        }
        TridasObject obj = oblist.get(0);

        List<TridasElement> ellist = obj.getElements();
        if (ellist.size() != 1) {
            System.out.println(e.getName() + " has more than one (or no) associated element so skipping");
            continue;
        }
        TridasElement el = ellist.get(0);

        // make lab code
        LabCode labcode = new LabCode();
        labcode.appendSiteCode(((TridasObjectEx) obj).getLabCode());
        labcode.setElementCode(el.getTitle());

        PdfPCell dataCell = new PdfPCell();
        dataCell.setBorderWidthBottom(0);
        dataCell.setBorderWidthTop(0);
        dataCell.setBorderWidthLeft(0);
        dataCell.setBorderWidthRight(0);
        dataCell.setPaddingTop(5);
        dataCell.setPaddingBottom(5);
        dataCell.setHorizontalAlignment(Element.ALIGN_LEFT);

        // Title Column
        dataCell.setPhrase(new Phrase(LabCodeFormatter.getSamplePrefixFormatter().format(labcode).toString(),
                tableBodyFont));
        tbl.addCell(dataCell);

        // Comments Column
        if (el.getComments() != null)
            dataCell.setPhrase(new Phrase(el.getComments(), tableBodyFont));
        else
            dataCell.setPhrase(new Phrase(" ", tableBodyFont));
        tbl.addCell(dataCell);

        // Taxon Column
        dataCell.setHorizontalAlignment(Element.ALIGN_LEFT);
        dataCell.setPhrase(new Phrase(el.getTaxon().getNormal().toString(), tableBodyFont));
        tbl.addCell(dataCell);

        // Rings Column
        dataCell.setHorizontalAlignment(Element.ALIGN_CENTER);
        dataCell.setPhrase(new Phrase(String.valueOf(s.countRings()), tableBodyFont));
        tbl.addCell(dataCell);

        // Dates column
        String datingLabel;
        String datingType = s.getSeries().getInterpretation().getDating().getType().value().toString();
        datingLabel = s.getSeries().getInterpretation().getFirstYear().getValue().toString();
        if (datingType == "Absolute") {
            datingLabel += s.getSeries().getInterpretation().getFirstYear().getSuffix().toString();
        }
        datingLabel += " - " + String.valueOf(
                s.getSeries().getInterpretation().getFirstYear().getValue().intValue() + s.countRings() - 1);
        if (datingType == "Relative") {
            datingLabel += " (Rel. Date)";
        }

        dataCell.setHorizontalAlignment(Element.ALIGN_LEFT);
        dataCell.setPhrase(new Phrase(datingLabel, tableBodyFont));
        tbl.addCell(dataCell);
    }

    // Add table to document
    document.add(tbl);
}

From source file:org.tellervo.desktop.print.SeriesReport.java

License:Open Source License

/**
 * Get PdfPTable containing the ring width data for this series
 * //from   w ww  .  ja  va 2 s.  c  o m
 * @return PdfPTable
 * @throws DocumentException 
 * @throws IOException 
 * @throws MalformedURLException 
 */
private void getDataTable(Boolean wj) throws DocumentException, MalformedURLException, IOException {
    // THE actual table
    PdfPTable mainTable = new PdfPTable(11);
    // Cell for column headers
    PdfPCell colHeadCell = new PdfPCell();
    // Model for data
    DecadalModel model;
    // Flag to show if there are *any* ring remarks
    Boolean hasRemarks = false;

    float[] columnWidths = new float[] { 20f, 8f, 8f, 8f, 8f, 8f, 8f, 8f, 8f, 8f, 8f };
    mainTable.setWidths(columnWidths);
    mainTable.setWidthPercentage(100f);

    if (wj == true) {
        if (s.hasWeiserjahre() == true) {
            model = new WJTableModel(s);
            document.add(new Chunk("Weiserjahre:", subSubSectionFont));
        } else {
            return;
        }
    } else {
        model = new UnitAwareDecadalModel(s);
        document.add(new Chunk("Ring widths:", subSubSectionFont));
    }

    int rows = model.getRowCount();

    // Do column headers
    if (wj == true) {
        colHeadCell.setPhrase(new Phrase("inc/dec", tableHeaderFont));
    } else if (this.s.getTridasUnits() == null) {
        // Unitless
        colHeadCell.setPhrase(new Phrase(" ", tableHeaderFont));
    } else {
        // Normal tridas units
        try {
            /*if(this.s.getTridasUnits().getNormalTridas().equals(NormalTridasUnit.MICROMETRES))
            {
               colHeadCell.setPhrase(new Phrase("microns", tableHeaderFont));
            }*/

            // Use the current default display units

            colHeadCell.setPhrase(new Phrase(displayUnits.value(), tableHeaderFont));

            /*if(displayUnits.equals(NormalTridasUnit.MICROMETRES))
            {
               colHeadCell.setPhrase(new Phrase("microns", tableHeaderFont));
            }
            else if(displayUnits.equals(NormalTridasUnit.HUNDREDTH_MM))
            {
               colHeadCell.setPhrase(new Phrase("1/100th mm", tableHeaderFont));
            }
            */

        } catch (Exception e) {
            colHeadCell.setPhrase(new Phrase(" ", tableHeaderFont));
        }
    }
    colHeadCell.setBorderWidthBottom(headerLineWidth);
    colHeadCell.setBorderWidthTop(headerLineWidth);
    colHeadCell.setBorderWidthLeft(headerLineWidth);
    colHeadCell.setBorderWidthRight(headerLineWidth);
    mainTable.addCell(colHeadCell);
    for (int i = 0; i < 10; i++) {
        colHeadCell.setPhrase(new Phrase(Integer.toString(i), tableHeaderFont));
        colHeadCell.setHorizontalAlignment(Element.ALIGN_CENTER);
        colHeadCell.setBorderWidthBottom(headerLineWidth);
        colHeadCell.setBorderWidthTop(headerLineWidth);
        colHeadCell.setBorderWidthLeft(lineWidth);
        colHeadCell.setBorderWidthRight(lineWidth);

        if (i == 0)
            colHeadCell.setBorderWidthLeft(headerLineWidth);
        if (i == 9)
            colHeadCell.setBorderWidthRight(headerLineWidth);
        mainTable.addCell(colHeadCell);
    }

    // Loop through rows
    for (int row = 0; row < rows; row++) {
        // Loop through columns
        for (int col = 0; col < 11; col++) {
            // Mini table to hold remark icons
            PdfPTable remarksMiniTable = new PdfPTable(3);
            float[] widths = { 0.3f, 0.3f, 0.6f };
            remarksMiniTable.setWidths(widths);
            remarksMiniTable.setWidthPercentage(100);

            // Get ring value or year number for first column
            Phrase cellValuePhrase = null;
            Object value = model.getValueAt(row, col);
            if (value == null) {
                cellValuePhrase = new Phrase("");
            } else {
                /*if(displayUnits.equals(NormalTridasUnit.HUNDREDTH_MM))
                {
                   try{
                   Integer val = (Integer) value;
                   val =val/10;
                   cellValuePhrase = new Phrase(String.valueOf(val), getTableFont(col));
                   } catch (Exception e){
                      cellValuePhrase = new Phrase(value.toString(), getTableFont(col));
                        
                   }
                }
                else if(displayUnits.equals(NormalTridasUnit.FIFTIETH_MM))
                {
                   try{
                   Integer val = (Integer) value;
                   val =val/20;
                   cellValuePhrase = new Phrase(String.valueOf(val), getTableFont(col));
                   } catch (Exception e){
                      cellValuePhrase = new Phrase(value.toString(), getTableFont(col));
                        
                   }               
                }
                else if(displayUnits.equals(NormalTridasUnit.TWENTIETH_MM))
                {
                   try{
                   Integer val = (Integer) value;
                   val =val/50;
                   cellValuePhrase = new Phrase(String.valueOf(val), getTableFont(col));
                   } catch (Exception e){
                      cellValuePhrase = new Phrase(value.toString(), getTableFont(col));
                        
                   }               
                }
                else if(displayUnits.equals(NormalTridasUnit.TENTH_MM))
                {
                   try{
                   Integer val = (Integer) value;
                   val =val/100;
                   cellValuePhrase = new Phrase(String.valueOf(val), getTableFont(col));
                   } catch (Exception e){
                      cellValuePhrase = new Phrase(value.toString(), getTableFont(col));
                        
                   }               
                }
                else if(displayUnits.equals(NormalTridasUnit.MICROMETRES))
                {*/
                cellValuePhrase = new Phrase(value.toString(), getTableFont(col));
                //}
            }

            // Get any remarks and compile them into a mini table
            org.tellervo.desktop.Year year = model.getYear(row, col);
            List<TridasRemark> remarksList = null;
            remarksList = s.getRemarksForYear(year);

            // If there are remarks, cycle through them adding cells to the mini table
            if (col != 0 && remarksList.size() > 0) {
                hasRemarks = true;
                // Get icons for remarks
                int cellnum = 1;
                int remarknum = 0;
                for (TridasRemark remark : remarksList) {
                    // Keep track of which remark we are on.
                    remarknum++;
                    // String for holding remark name for debugging
                    String remstr = "?";
                    // The actual remark icon
                    Image icon = null;
                    // A table cell for the remark
                    PdfPCell remarkCell = new PdfPCell();

                    // Set default attributes for remark and value cells
                    remarkCell.setBorderWidthBottom(0);
                    remarkCell.setBorderWidthTop(0);
                    remarkCell.setBorderWidthLeft(0);
                    remarkCell.setBorderWidthRight(0);
                    remarkCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    remarkCell.setPadding(0);
                    remarkCell.setUseBorderPadding(true);

                    // A table cell for the ring width value
                    PdfPCell valueCell = new PdfPCell();
                    valueCell = remarkCell;

                    // Get actual icon (either tridas or tellervo)
                    if (remark.isSetNormalTridas()) {
                        remstr = remark.getNormalTridas().toString();
                        icon = getTridasIcon(remark.getNormalTridas());
                        if (icon == null)
                            icon = Builder.getITextImageMissingIcon();
                    } else if (TELLERVO.equals(remark.getNormalStd())) {
                        remstr = remark.getNormal();
                        icon = getCorinaIcon(remark.getNormal());
                        if (icon == null)
                            icon = Builder.getITextImageMissingIcon();
                    } else {
                        if (remark.isSetValue()) {
                            remstr = remark.getValue();
                        } else if (remark.isSetNormal()) {
                            remstr = remark.getNormal();
                        } else {
                            remstr = "Unknown";
                        }
                        icon = Builder.getITextImageIcon("user.png");

                    }

                    // Print debug info for this remark
                    String errStr = "Getting icon for " + remstr + " for year " + year.toString()
                            + "(cell value = " + cellnum + ")";
                    System.out.print(errStr);

                    // Shrink the icon a bit
                    icon.scalePercent(20);

                    // Add icon to minitable
                    remarkCell.addElement(icon);
                    remarksMiniTable.addCell(remarkCell);
                    cellnum++;

                    if (cellnum == 1 && remarksList.size() < cellnum) {
                        // First cell and no remark so print blank
                        valueCell.setPhrase(new Phrase(""));
                        remarksMiniTable.addCell(valueCell);
                        cellnum++;
                    }
                    if (cellnum == 2 && remarksList.size() < cellnum) {
                        // Second cell and no remark so print blank
                        valueCell.setPhrase(new Phrase(""));
                        remarksMiniTable.addCell(valueCell);
                        cellnum++;
                    }
                    if (cellnum == 3) {
                        // In third cell so print value
                        valueCell.setPhrase(cellValuePhrase);
                        remarksMiniTable.addCell(valueCell);
                        cellnum++;
                    } else if (cellnum % 3 == 0) {
                        // In third column so print blank
                        valueCell.setPhrase(new Phrase(""));
                        remarksMiniTable.addCell(valueCell);
                        cellnum++;
                    }

                    if (remarknum == remarksList.size()) {
                        valueCell.setPhrase(new Phrase(""));
                        remarksMiniTable.addCell(valueCell);
                        remarksMiniTable.addCell(valueCell);
                    }

                    remarkCell = null;
                    valueCell = null;
                }
            } else {
                // No remarks so make mini table have blank, blank, value

                // Create blank and value cells
                PdfPCell blankCell = new PdfPCell();
                PdfPCell valueCell = new PdfPCell();

                // Set up style
                blankCell.setBorderWidthBottom(0);
                blankCell.setBorderWidthTop(0);
                blankCell.setBorderWidthLeft(0);
                blankCell.setBorderWidthRight(0);
                blankCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                blankCell.setPadding(0);
                blankCell.setUseBorderPadding(true);
                valueCell = blankCell;

                // Add cells to mini table
                remarksMiniTable.addCell(blankCell);
                remarksMiniTable.addCell(blankCell);
                valueCell.setPhrase(cellValuePhrase);
                remarksMiniTable.addCell(valueCell);
            }

            // Set border styles depending on where we are in the table

            // Defaults
            PdfPCell mainTableCell = new PdfPCell();
            mainTableCell.setBorderWidthBottom(lineWidth);
            mainTableCell.setBorderWidthTop(lineWidth);
            mainTableCell.setBorderWidthLeft(lineWidth);
            mainTableCell.setBorderWidthRight(lineWidth);
            mainTableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);

            // Row headers
            if (col == 0) {
                mainTableCell.setHorizontalAlignment(Element.ALIGN_LEFT);
                mainTableCell.setBorderWidthLeft(headerLineWidth);
                mainTableCell.setBorderWidthRight(headerLineWidth);
            }

            // First data column
            if (col == 1) {
                mainTableCell.setBorderWidthLeft(headerLineWidth);
            }

            // Last data column
            if (col == 10) {
                mainTableCell.setBorderWidthRight(headerLineWidth);
            }

            // Last row
            if (row == model.getRowCount() - 1) {
                mainTableCell.setBorderWidthBottom(headerLineWidth);
            }

            // Write mini table to cell       
            mainTableCell.addElement(remarksMiniTable);

            //mainTableCell.addElement(userRemarksMiniTable);

            // Write cell to main table
            mainTable.addCell(mainTableCell);

        }
    }

    // Add table to document
    document.add(mainTable);

    if (!wj && hasRemarks)
        getTableKey();
}

From source file:org.unitime.timetable.webutil.pdf.PdfEventTableBuilder.java

License:Open Source License

public void addText(PdfPCell cell, String text, boolean bold, boolean italic, int orientation, Color color,
        boolean newLine) {
    if (text == null)
        return;/*from   w w w  . j a  v  a2s. co m*/
    if (cell.getPhrase() == null) {
        Chunk ch = new Chunk(text, PdfFont.getSmallFont(bold, italic, color));
        cell.setPhrase(new Paragraph(ch));
        cell.setVerticalAlignment(Element.ALIGN_TOP);
        cell.setHorizontalAlignment(orientation);
    } else {
        cell.getPhrase()
                .add(new Chunk((newLine ? "\n" : "") + text, PdfFont.getSmallFont(bold, italic, color)));
    }
}