Example usage for com.lowagie.text.pdf PdfPTable addCell

List of usage examples for com.lowagie.text.pdf PdfPTable addCell

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfPTable addCell.

Prototype

public void addCell(Phrase phrase) 

Source Link

Document

Adds a cell element.

Usage

From source file:org.areasy.common.doclet.document.Summary.java

License:Open Source License

/**
 * Prints field summaries./*from  w w w.j  a v a2s .  co  m*/
 * @param constantValue
 * @param isDeprecated
 * @param deprecatedPhrase
 * @param mainTable
 * @throws Exception
 */
private static void printField(FieldDoc fieldDoc, Object constantValue, boolean isDeprecated,
        Phrase deprecatedPhrase, PdfPTable mainTable) throws Exception {

    String name = fieldDoc.name();
    String modifier = fieldDoc.modifiers();
    String commentText = DocletUtility.getFirstSentence(fieldDoc);
    String destination = fieldDoc.qualifiedName();

    Element[] objs = HtmlParserWrapper.createPdfObjects(commentText);

    PdfPTable commentsTable = createColumnsAndDeprecated(objs, isDeprecated, deprecatedPhrase);

    if (constantValue != null) {
        // Add 2nd comment line (left cell empty, right cell text)
        commentsTable.addCell(new Phrase(""));
        Chunk valueTextChunk = new Chunk("Value: ", Fonts.getFont(TEXT_FONT, PLAIN, 10));
        Chunk valueContentChunk = new Chunk(constantValue.toString(), Fonts.getFont(CODE_FONT, BOLD, 10));
        Phrase constantValuePhrase = new Phrase("");
        constantValuePhrase.add(valueTextChunk);
        constantValuePhrase.add(valueContentChunk);
        commentsTable.addCell(constantValuePhrase);
    }

    PdfPTable anotherinnertable = new PdfPTable(1);
    anotherinnertable.setWidthPercentage(100f);
    anotherinnertable.getDefaultCell().setBorder(Rectangle.NO_BORDER);

    PdfPTable innerTable = addDeclaration(modifier, null);

    // Link to field
    LinkPhrase linkPhrase = new LinkPhrase(destination, name, Fonts.getFont(CODE_FONT, 9));

    // right part of the table
    PdfPCell cell = PDFUtility.createElementCell(2, linkPhrase);
    cell.setPaddingTop((float) 2.0);
    cell.setPaddingLeft((float) 7.0);
    anotherinnertable.addCell(cell);
    anotherinnertable.addCell(commentsTable);

    innerTable.addCell(anotherinnertable);
    mainTable.addCell(innerTable);
}

From source file:org.areasy.common.doclet.document.Summary.java

License:Open Source License

/**
 * Prints constructor summaries.//w  ww .  ja  va2 s  . c  o m
 * @param isDeprecated
 * @param deprecatedPhrase
 * @param mainTable
 * @throws Exception
 */
private static void printConstructor(ConstructorDoc constructorDoc, boolean isDeprecated,
        Phrase deprecatedPhrase, PdfPTable mainTable) throws Exception {

    String name = constructorDoc.name();
    String modifier = constructorDoc.modifiers();
    String commentText = DocletUtility.getFirstSentence(constructorDoc);
    String destination = constructorDoc.qualifiedName() + constructorDoc.signature();
    Parameter[] parms = constructorDoc.parameters();

    Element[] objs = HtmlParserWrapper.createPdfObjects(commentText);

    PdfPTable commentsTable = createColumnsAndDeprecated(objs, isDeprecated, deprecatedPhrase);

    PdfPTable anotherinnertable = new PdfPTable(1);
    anotherinnertable.setWidthPercentage(100f);
    anotherinnertable.getDefaultCell().setBorder(Rectangle.NO_BORDER);

    // Link to constructor
    Font constructorFont = Fonts.getFont(CODE_FONT, 9);
    Phrase phrase = new Phrase("", constructorFont);
    phrase.add(new LinkPhrase(destination, name, constructorFont));

    phrase.add("(");
    if ((parms != null) && (parms.length > 0)) {
        for (int i = 0; i < parms.length; i++) {
            phrase.add(PDFUtility.getParameterTypePhrase(parms[i], 9));
            phrase.add(" ");
            phrase.add(parms[i].name());
            if (i != (parms.length - 1)) {
                phrase.add(", ");
            }
        }
    }
    phrase.add(")");

    PdfPCell cell = PDFUtility.createElementCell(2, phrase);
    cell.setPaddingLeft((float) 7.0);
    anotherinnertable.addCell(cell);
    anotherinnertable.addCell(commentsTable);

    PdfPTable innerTable = addDeclaration(modifier, null);
    innerTable.addCell(anotherinnertable);

    mainTable.addCell(innerTable);
}

From source file:org.areasy.common.doclet.document.Summary.java

License:Open Source License

/**
 * Prints the summary tables for a method.
 * @param modifier/*  www  .  j av  a2s  . c o  m*/
 * @param returnType
 * @param isDeprecated
 * @param deprecatedPhrase
 * @param mainTable
 * @throws Exception
 */
private static void printMethod(MethodDoc methodDoc, String modifier, Phrase returnType, boolean isDeprecated,
        Phrase deprecatedPhrase, PdfPTable mainTable) throws Exception {

    String name = methodDoc.name();
    String destination = methodDoc.qualifiedName() + methodDoc.signature();
    String commentText = DocletUtility.getFirstSentence(methodDoc);
    Parameter[] parms = methodDoc.parameters();

    // Create inner table for both columns (left column already filled in)
    PdfPTable rowTable = addDeclaration(modifier, returnType);

    // Inner table with 1st sentence of javadoc of this method.
    // We use a table in order to be able to create two cells
    // in it (1st an empty one for intendation)

    Element[] objs = HtmlParserWrapper.createPdfObjects(commentText);
    // Phrase descPhr = new Phrase();

    PdfPTable commentsTable = createColumnsAndDeprecated(objs, isDeprecated, deprecatedPhrase);

    // Table with 1 column and 2 rows (row 1 is parameters etc.,
    // row 2 is the description
    PdfPTable rightColumnInnerTable = new PdfPTable(1);

    rightColumnInnerTable.setWidthPercentage(100f);
    rightColumnInnerTable.getDefaultCell().setBorder(Rectangle.NO_BORDER);

    // Link to method
    Font methodFont = Fonts.getFont(CODE_FONT, 9);
    Phrase phrase = new Phrase("", methodFont);
    phrase.add(new LinkPhrase(destination, name, methodFont));
    phrase.add("(");
    if ((parms != null) && (parms.length > 0)) {
        for (int i = 0; i < parms.length; i++) {
            phrase.add(PDFUtility.getParameterTypePhrase(parms[i], 9));
            phrase.add(" ");
            phrase.add(parms[i].name());
            if (i != (parms.length - 1)) {
                phrase.add(", ");
            }
        }
    }
    phrase.add(")");

    PdfPCell cell = PDFUtility.createElementCell(2, phrase);
    cell.setPaddingLeft((float) 7.0);
    rightColumnInnerTable.addCell(cell);
    rightColumnInnerTable.addCell(commentsTable);

    // Now fill in right column as well
    rowTable.addCell(rightColumnInnerTable);

    // And add inner table to main summary table as a new row
    mainTable.addCell(rowTable);
}

From source file:org.areasy.common.doclet.document.Summary.java

License:Open Source License

/**
 * Creates the inner table for both columns. The left column
 * already contains the declaration text part.
 *
 * @param text       The text (like "static final"..)
 *//*from w  w w. ja  v a 2s  . c om*/
private static PdfPTable addDeclaration(String text, Phrase returnType) throws DocumentException {
    PdfPTable innerTable = new PdfPTable(2);
    innerTable.setWidthPercentage(100f);
    innerTable.getDefaultCell().setBorder(Rectangle.NO_BORDER);
    innerTable.setWidths(new int[] { 24, 76 });
    Paragraph declarationParagraph = new Paragraph((float) 9.0);
    Chunk leftPart = new Chunk(text, Fonts.getFont(CODE_FONT, 9));
    declarationParagraph.add(leftPart);
    if (returnType != null) {
        declarationParagraph.add(returnType);
        declarationParagraph.add(new Chunk(" ", Fonts.getFont(CODE_FONT, 9)));
    }
    PdfPCell cell = new CustomPdfPCell(Rectangle.RIGHT, declarationParagraph, 1, Color.gray);
    cell.setPaddingTop((float) 4.0);
    cell.setVerticalAlignment(PdfPCell.ALIGN_TOP);

    innerTable.addCell(cell);
    return innerTable;
}

From source file:org.areasy.common.doclet.document.Summary.java

License:Open Source License

/**
 * Creates the two columns for the summary table and, if necessary,
 * fills in the "Deprecated" text. Otherwise, the given elements
 * are filled in./*from w w  w.j  a v  a2 s  . co  m*/
 *
 * @param objs             The description elements.
 * @param isDeprecated     If true, the whole class/method is deprecated.
 * @param deprecatedPhrase The phrase for the deprecated text.
 * @return The summary table columns.
 * @throws DocumentException If something failed.
 */
private static PdfPTable createColumnsAndDeprecated(Element[] objs, boolean isDeprecated,
        Phrase deprecatedPhrase) throws DocumentException {

    PdfPTable commentsTable = null;
    commentsTable = new PdfPTable(2);
    commentsTable.setWidths(new int[] { 5, 95 });
    commentsTable.setWidthPercentage(100f);
    commentsTable.getDefaultCell().setBorder(Rectangle.NO_BORDER);
    commentsTable.addCell(new Phrase(""));

    Phrase descPhr = new Phrase();

    CellNoBorderNoPadding cell = new CellNoBorderNoPadding(descPhr);

    commentsTable.addCell(cell);

    if (isDeprecated) {
        // if the method is deprecated...
        // do not print the comment text...
        // just print the deprecated text
        descPhr.add(new Phrase(AbstractConfiguration.LB_DEPRECATED_TAG, Fonts.getFont(TEXT_FONT, BOLD, 10)));
        descPhr.add(deprecatedPhrase);
    } else if (objs.length != 0) {
        for (int i = 0; i < objs.length; i++) {
            if (objs[i] instanceof List) {
                cell.addElement(objs[i]);
                descPhr = new Phrase("");
                cell.addElement(descPhr);
            } else {
                descPhr.add(objs[i]);
            }
        }
    }

    return commentsTable;
}

From source file:org.areasy.common.doclet.document.Summary.java

License:Open Source License

/**
 * Creates a summary table with a coloured title bar.
 *
 * @param title The title for the summary table.
 * @return The newly created summary table.
 * @throws DocumentException If something fails.
 *///from   w  w w. j a  va2s  .co  m
private static PdfPTable createTable(String title) throws DocumentException {

    PdfPTable mainTable = new CustomPdfPTable();
    PdfPCell colorTitleCell = new CustomPdfPCell(title + " Summary");
    // Some empty space...
    Document.instance().add(new Paragraph((float) 8.0, " "));
    mainTable.addCell(colorTitleCell);

    return mainTable;
}

From source file:org.areasy.common.doclet.document.TagLists.java

License:Open Source License

/**
 * Prints tags of a class member (method, field).
 *
 * @param title    The bold face title text for the tag (like "Parameters:")
 * @param tags     The list of tags to be printed.
 * @param compress If true, the text of all the given tags will be concatenated
 *                 into one, comma separated. This is used for the author tag,
 *                 for example, where several separate author tags should be
 *                 printed as one only.//w  w w .ja  va2s.  co m
 * @param isMember If true, the whole tag paragraph is printed with additional
 *                 intendation (because it's a tag of a method, like the
 *                 "Parameters:" tag).
 * @throws Exception
 */
private static void printTags(String title, Tag[] tags, boolean compress, boolean isMember) throws Exception {
    if ((tags != null) && (tags.length > 0)) {
        float[] widthsMember = { (float) 6.0, (float) 4.0, (float) 94.0 };
        float[] widthsClass = { (float) 6.0, (float) 94.0 };

        PdfPTable table = null;
        if (isMember) {
            table = new PdfPTable(widthsMember);
        } else {
            table = new PdfPTable(widthsClass);
        }
        table.setWidthPercentage((float) 100);

        Paragraph empty = new Paragraph(" ");

        // Add empty line after the title ("Parameters:" etc.)
        if (isMember) {
            table.addCell(new CellNoBorderNoPadding(empty));
            table.addCell(new CellNoBorderNoPadding(empty));
            table.addCell(new CellNoBorderNoPadding(empty));
        }

        PdfPCell titleCell = new CellNoBorderNoPadding(
                new Paragraph((float) 24.0, title, Fonts.getFont(TEXT_FONT, BOLD, 10)));
        titleCell.setColspan(2);
        if (isMember) {
            table.addCell(new CellNoBorderNoPadding(empty)); // indentation
            // column
        }
        table.addCell(titleCell);

        int number = tags.length;
        String tagText = "";
        if (compress) {
            number = 1;
            for (int i = 0; i < tags.length; i++) {
                tagText = tagText + getTagText(tags[i]);
                if (i < tags.length - 1) {
                    tagText = tagText + ", ";
                }
            }
        }

        for (int i = 0; i < number; i++) {

            // indentation columns
            if (isMember) {
                table.addCell(new CellNoBorderNoPadding(empty));
                table.addCell(new CellNoBorderNoPadding(empty));
            } else {
                table.addCell(new CellNoBorderNoPadding(empty));
            }

            if (!compress) {
                tagText = getTagText(tags[i]);
            }

            Element[] elements = HtmlParserWrapper.createPdfObjects(tagText);
            table.addCell(PDFUtility.createElementCell(0, Element.ALIGN_LEFT, elements));
        }

        // Add whole method block to document
        Document.instance().add(table);
    }
}

From source file:org.areasy.common.doclet.utilities.PDFUtility.java

License:Open Source License

/**
 * Create a cell element.//from   ww  w  .jav  a 2s  . c om
 */
public static PdfPCell createElementCell(int padding, int alignment, Element[] elements) {
    Element mainElement;

    // If there are no nested tables in content
    if (!hasTablesOrLists(elements)) {
        Paragraph para = new Paragraph();
        para.setAlignment(alignment);

        for (int i = 0; i < elements.length; i++) {
            try {
                para.add(elements[i]);
            } catch (Exception e) {
                String msg = "Failed to add element to paragraph: " + e.toString();
                DocletUtility.error(msg);
            }
        }

        mainElement = para;

    } else {

        PdfPTable cellTable = new PdfPTable(1);
        Paragraph currInnerPara = null;

        for (int i = 0; i < elements.length; i++) {

            Element element = elements[i];

            /* Check for special element created by TagTABLE */
            if (element instanceof TableParagraph)
                element = ((TableParagraph) elements[i]).getTable();

            if (element instanceof PdfPTable || element instanceof List) {

                if (currInnerPara != null) {
                    PdfPCell innerCell = createElementCell(0, alignment, currInnerPara);
                    innerCell.setUseDescender(true); // needs newer iText
                    innerCell.setUseAscender(true); // needs newer iText
                    innerCell.setPaddingBottom(2.0f);
                    cellTable.addCell(innerCell);
                }

                currInnerPara = null;
                cellTable.addCell(createElementCell(0, alignment, element));

            } else {
                if (currInnerPara == null) {
                    currInnerPara = new Paragraph();
                    currInnerPara.setAlignment(alignment);
                }

                try {
                    currInnerPara.add(element);
                } catch (Exception e) {
                    String msg = "Failed to add element to inner paragraph: " + e.toString();
                    DocletUtility.error(msg);
                }
            }
        }

        if (currInnerPara != null)
            cellTable.addCell(createElementCell(0, alignment, currInnerPara));

        mainElement = cellTable;
    }

    return createElementCell(padding, alignment, mainElement);
}

From source file:org.caisi.tickler.web.TicklerPrinter.java

License:Open Source License

private void addStandardTableEntry(PdfPTable table, String name, String value) {
    PdfPCell cell1 = new PdfPCell(getParagraph(name + ":"));

    cell1.setBorder(PdfPCell.BOTTOM);/*from  w w w .ja  v a2s. co  m*/
    cell1.setHorizontalAlignment(Element.ALIGN_LEFT);
    PdfPCell cell2 = new PdfPCell(getParagraph(value));
    cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell2.setBorder(PdfPCell.BOTTOM);

    table.addCell(cell1);
    table.addCell(cell2);
}

From source file:org.caisi.tickler.web.TicklerPrinter.java

License:Open Source License

public void printTicklerInfo() throws DocumentException {

    PdfPTable table = new PdfPTable(2);
    table.setWidthPercentage(50f);/* ww  w .  ja  v  a  2s.c  om*/
    table.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

    addStandardTableEntry(table, "Created By", tickler.getProvider().getFormattedName());
    addStandardTableEntry(table, "Last Updated", formatter.format(tickler.getUpdateDate()));
    addStandardTableEntry(table, "Service Date", formatter.format(tickler.getServiceDate()));
    addStandardTableEntry(table, "Assigned To", tickler.getAssignee().getFormattedName());
    addStandardTableEntry(table, "Priority", tickler.getPriority().toString());
    addStandardTableEntry(table, "Status", tickler.getStatusWeb());
    addStandardTableEntry(table, "Program",
            (tickler.getProgram() != null) ? tickler.getProgram().getName() : "N/A");

    getDocument().add(table);

    table = new PdfPTable(1);
    table.setWidthPercentage(70f);

    PdfPCell cell1 = new PdfPCell(getParagraph("Message"));

    cell1.setBorder(PdfPCell.NO_BORDER);
    cell1.setHorizontalAlignment(Element.ALIGN_LEFT);

    table.addCell(cell1);

    cell1 = new PdfPCell(getParagraph(tickler.getMessage()));
    cell1.setHorizontalAlignment(Element.ALIGN_LEFT);

    table.addCell(cell1);

    getDocument().add(table);

}