Example usage for com.lowagie.text Element ALIGN_CENTER

List of usage examples for com.lowagie.text Element ALIGN_CENTER

Introduction

In this page you can find the example usage for com.lowagie.text Element ALIGN_CENTER.

Prototype

int ALIGN_CENTER

To view the source code for com.lowagie.text Element ALIGN_CENTER.

Click Source Link

Document

A possible value for paragraph alignment.

Usage

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set the header for the dataCollection table
 * /*w w w  .  j  a  v  a2 s  . co  m*/
 * @param document
 * @param table
 * @throws Exception
 */
private Table setDataCollectionHeader(Document document, Table table, boolean withAutoProcessing)
        throws Exception {
    int nbCol = NB_COL_DATACOLLECTION;
    boolean withoutAutoProc = !withAutoProcessing;
    boolean withSampleName = name != null;
    boolean isIfx = proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX);
    if (withoutAutoProc) {
        nbCol -= 5;
    }
    if (withSampleName) {
        nbCol += 1;
    }
    if (isIfx) {
        nbCol += 1;
    }
    table = new Table(nbCol);
    int[] headersWidth = new int[nbCol];
    int i = 0;
    // image prefix
    headersWidth[i] = 12;
    if (withSampleName && !withAutoProcessing)
        headersWidth[i] = 10;
    i++;
    // beamline
    if (withSampleName) {
        headersWidth[i++] = 5;
    }
    // run no
    headersWidth[i++] = 5;
    // nb images
    headersWidth[i++] = 6;
    // auto proc
    if (withAutoProcessing) {
        headersWidth[i++] = 9; // space group
        headersWidth[i++] = 9; // unit cell
        headersWidth[i++] = 10; // completeness
        headersWidth[i++] = 9; // rsymm
        headersWidth[i++] = 9; // resolution
    }
    // detector
    headersWidth[i++] = 7;
    // wavelength
    headersWidth[i++] = 8;
    // phi range
    headersWidth[i++] = 5;
    // crytsl class
    if (isIfx) {
        headersWidth[i++] = 8;
    }
    // comments
    headersWidth[i++] = 17;
    //
    table.setWidths(headersWidth);

    table.setWidth(100); // percentage
    table.setPadding(3);
    table.setCellsFitPage(true);
    table.getDefaultCell().setBorderWidth(1);
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

    // DataCollection Header

    table.getDefaultCell().setGrayFill(GREY_FILL_HEADER);
    table.addCell(new Paragraph("Image prefix", FONT_DOC_BOLD));
    if (withSampleName)
        table.addCell(new Paragraph("Beamline", FONT_DOC_BOLD));
    table.addCell(new Paragraph("Run no", FONT_DOC_BOLD));
    table.addCell(new Paragraph("# images", FONT_DOC_BOLD));
    if (withAutoProcessing) {
        table.addCell(new Paragraph("Space Group", FONT_DOC_BOLD));
        table.addCell(new Paragraph("Unit Cell", FONT_DOC_BOLD));
        table.addCell(new Paragraph("Completeness (Inner, Outer, Overall)", FONT_DOC_BOLD));
        table.addCell(new Paragraph("Rsymm (Inner, Outer, Overall)", FONT_DOC_BOLD));
        table.addCell(new Paragraph("Resolution", FONT_DOC_BOLD));
    }
    table.addCell(new Paragraph("Detector\nResolution\n(" + Constants.ANGSTROM + ")", FONT_DOC_BOLD));
    table.addCell(new Paragraph("Wavelength\n(" + Constants.ANGSTROM + ")", FONT_DOC_BOLD));
    table.addCell(new Paragraph("Phi range\n(" + Constants.DEGREE + ")", FONT_DOC_BOLD));
    // Column crystalClass only for IFX proposal in case of MXPress
    // experiment
    if (isIfx)
        table.addCell(new Paragraph("Crystal class", FONT_DOC_BOLD));
    table.addCell(new Paragraph("Comments", FONT_DOC_BOLD));
    table.getDefaultCell().setBorderWidth(1);
    return table;
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set a line for a specified dataCollection in the dataCollection table
 * //from  w  ww .  j  a va2 s .c  o  m
 * @param document
 * @param table
 * @param col
 * @param session
 * @param df2
 * @param df3
 * @throws Exception
 */
private void setDataCollectionData(Document document, Table table, DataCollection3VO col,
        Session3Service sessionService, AutoProc3VO autoProcValue, AutoProcScalingStatistics3VO autoProcOverall,
        AutoProcScalingStatistics3VO autoProcInner, AutoProcScalingStatistics3VO autoProcOuter,
        boolean withAutoProcessing, boolean setEDNAInfo, ScreeningOutput3VO screeningOutput,
        ScreeningOutputLattice3VO screeningOutputLattice) throws Exception {
    // Session3VO slv = sessionService.findByPk(col.getSessionId(), false,
    // false, false);
    DataCollectionGroup3VO dcGroup = col.getDataCollectionGroupVO();
    Session3VO slv = dcGroup.getSessionVO();
    // here slv is not null
    if (col.getNumberOfImages() != null) {
        if (!DataCollectionExporter.isDataCollectionScreening(col)) {
            table.getDefaultCell().setGrayFill(GREY_FILL_DATA_COLLECT);
        } else
            table.getDefaultCell().setGrayFill(GREY_FILL_DATA);
    }
    if (col.getImagePrefix() != null)
        table.addCell(new Paragraph(col.getImagePrefix(), FONT_DOC));
    else
        table.addCell("");
    // The beamline name is only displayed for select by protein or by
    // sample name
    if (name != null) {
        if (slv.getBeamlineName() != null)
            table.addCell(new Paragraph(slv.getBeamlineName(), FONT_DOC));
        else
            table.addCell("");
    }

    if (col.getDataCollectionNumber() != null)
        table.addCell(new Paragraph(col.getDataCollectionNumber().toString(), FONT_DOC));
    else
        table.addCell("");

    if (col.getNumberOfImages() != null)
        table.addCell(new Paragraph(col.getNumberOfImages().toString(), FONT_DOC));
    else
        table.addCell("");

    if (withAutoProcessing) {
        // space group
        if (autoProcValue != null && autoProcValue.getSpaceGroup() != null) {
            Paragraph p = new Paragraph(autoProcValue.getSpaceGroup(), FONT_DOC);
            table.addCell(p);
        } else if (setEDNAInfo && screeningOutputLattice != null
                && screeningOutputLattice.getSpaceGroup() != null) {
            Paragraph p = new Paragraph(screeningOutputLattice.getSpaceGroup(), FONT_DOC);
            table.addCell(p);
        } else
            table.addCell("");

        // unit cell
        if (autoProcValue != null && autoProcValue.getSpaceGroup() != null)
            table.addCell(new Paragraph(autoProcValue.getRefinedCellA() + " ("
                    + autoProcValue.getRefinedCellAlpha() + ")\n" + autoProcValue.getRefinedCellB() + " ("
                    + autoProcValue.getRefinedCellBeta() + ")\n" + autoProcValue.getRefinedCellC() + " ("
                    + autoProcValue.getRefinedCellGamma() + ")", FONT_DOC));
        else if (setEDNAInfo && screeningOutputLattice != null && screeningOutputLattice.getUnitCell_a() != null
                && screeningOutputLattice.getUnitCell_b() != null
                && screeningOutputLattice.getUnitCell_c() != null
                && screeningOutputLattice.getUnitCell_alpha() != null
                && screeningOutputLattice.getUnitCell_beta() != null
                && screeningOutputLattice.getUnitCell_gamma() != null) {
            Paragraph p = new Paragraph(df3.format(screeningOutputLattice.getUnitCell_a()) + " ("
                    + df3.format(screeningOutputLattice.getUnitCell_alpha()) + ")\n"
                    + df3.format(screeningOutputLattice.getUnitCell_b()) + " ("
                    + df3.format(screeningOutputLattice.getUnitCell_beta()) + ")\n"
                    + df3.format(screeningOutputLattice.getUnitCell_c()) + " ("
                    + df3.format(screeningOutputLattice.getUnitCell_gamma()) + ")", FONT_DOC);
            table.addCell(p);
        } else
            table.addCell("");

        // completeness, rsymm, processed resolution
        String completenessString = new String();
        String rSymmString = new String();
        String resolutionString = new String();

        if (autoProcOverall != null && autoProcInner != null && autoProcOuter != null) {
            completenessString += df2.format(autoProcInner.getCompleteness()) + "\n"
                    + df2.format(autoProcOuter.getCompleteness()) + "\n"
                    + df2.format(autoProcOverall.getCompleteness());
            rSymmString += (autoProcInner.getRmerge() == null ? "" : df2.format(autoProcInner.getRmerge()))
                    + "\n" + (autoProcOuter.getRmerge() == null ? "" : df2.format(autoProcOuter.getRmerge()))
                    + "\n"
                    + (autoProcOverall.getRmerge() == null ? "" : df2.format(autoProcOverall.getRmerge()));
            resolutionString += autoProcInner.getResolutionLimitLow() + " - "
                    + autoProcInner.getResolutionLimitHigh() + "\n" + autoProcOuter.getResolutionLimitLow()
                    + " - " + autoProcOuter.getResolutionLimitHigh() + "\n"
                    + autoProcOverall.getResolutionLimitLow() + " - "
                    + autoProcOverall.getResolutionLimitHigh();
        } else if (setEDNAInfo && screeningOutput != null && screeningOutput.getRankingResolution() != null) {
            resolutionString = df2.format(screeningOutput.getRankingResolution());
        }
        table.addCell(new Paragraph(completenessString, FONT_DOC));
        table.addCell(new Paragraph(rSymmString, FONT_DOC));
        table.addCell(new Paragraph(resolutionString, FONT_DOC));
    }

    // detector resolution
    if (col.getResolution() != null)
        table.addCell(new Paragraph(df2.format(col.getResolution()), FONT_DOC));
    else
        table.addCell("");

    // wavelength
    if (col.getWavelength() != null)
        table.addCell(new Paragraph(df3.format(col.getWavelength()), FONT_DOC));
    else
        table.addCell("");

    // phi range
    if (col.getAxisRange() != null)
        table.addCell(new Paragraph(df2.format(col.getAxisRange()), FONT_DOC));
    else
        table.addCell("");

    // Column crystalClass only for IFX proposal in case of MXPress
    // experiment
    if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX)) {
        // if (col.getCrystalClass() != null && col.getCrystalClass() != "")
        // table.addCell(new
        // Paragraph(col.getCrystalClass(), new Font(Font.HELVETICA, 8)));
        // else table.addCell("");
        DataCollectionGroup3Service dataCollectionGroupService = (DataCollectionGroup3Service) ejb3ServiceLocator
                .getLocalService(DataCollectionGroup3Service.class);
        DataCollectionGroup3VO group = dataCollectionGroupService.findByPk(col.getDataCollectionGroupVOId(),
                true, true);
        boolean firstCollect = group.isFirstCollect(col);
        if (dcGroup.getCrystalClass() != null) {
            int idCC = getCrystalClassIndex(listOfCrystalClass, dcGroup.getCrystalClass().trim().toUpperCase());
            String crystalS = "";
            if (idCC == -1) {
                crystalS = dcGroup.getCrystalClass().toString();
            } else {
                crystalS = listOfCrystalClass.get(idCC).getCrystalClassName();
            }
            String crystalCell = crystalS;
            if (!firstCollect && crystalS != null && !crystalS.equals("")) {
                crystalCell = "(" + crystalS + ")";
            }
            table.addCell(new Paragraph(crystalCell, FONT_DOC));
        } else
            table.addCell("");

    }
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
    if (col.getComments() != null && col.getComments() != "")
        table.addCell(new Paragraph(col.getComments(), FONT_DOC));
    else
        table.addCell("");
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set the energy scan table//from w ww  .  j a v  a 2s . co  m
 * 
 * @param document
 * @throws Exception
 */
private void setEnergyScansTable(Document document) throws Exception {
    if (slv == null) {// if session is null, no sense to display energy
                      // scans
        return;
    }
    document.add(new Paragraph("Energy Scans:", FONT_TITLE));
    document.add(new Paragraph(" "));
    if (energyScanList == null || energyScanList.isEmpty()) {
        document.add(new Paragraph("There is no energy scan in this report", FONT_DOC));
    } else {
        int NumColumnsES = 12;
        Table tableES = new Table(NumColumnsES);
        int headerwidthsSessionES[] = { 7, 7, 7, 7, 7, 7, 6, 6, 7, 7, 7, 25 }; // percentage
        int headerwidthsMXPressES[] = { 7, 7, 7, 7, 7, 7, 6, 6, 7, 7, 7, 8, 17 }; // percentage
        tableES.setWidths(headerwidthsSessionES);
        // Column crystalClass added only for IFX proposal in case of
        // MXPress experiment
        if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX)) {
            tableES = new Table(NumColumnsES + 1);
            tableES.setWidths(headerwidthsMXPressES);
        }

        tableES.setWidth(100); // percentage
        tableES.setPadding(3);
        tableES.setCellsFitPage(true);
        tableES.getDefaultCell().setBorderWidth(1);
        tableES.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

        // Energy Scan Header

        tableES.getDefaultCell().setGrayFill(GREY_FILL_HEADER);
        tableES.addCell(new Paragraph("Element", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Inflection Energy\n(keV)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Exposure Time\n(s)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Inflection f'\n(e)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Inflection f''\n(e)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Peak Energy\n(keV)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Peak f'\n(e)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Peak f''\n(e)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Beam size Hor.\n(" + Constants.MICRO + "m)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Beam size Ver.\n(" + Constants.MICRO + "m)", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Transm. Factor\n(%)", FONT_DOC_BOLD));
        // Column crystalClass only for IFX proposal in case of MXPress
        // experiment
        if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX))
            tableES.addCell(new Paragraph("Crystal class", FONT_DOC_BOLD));
        tableES.addCell(new Paragraph("Comments", FONT_DOC_BOLD));
        tableES.getDefaultCell().setGrayFill(GREY_FILL_DATA);
        tableES.getDefaultCell().setBorderWidth(1);

        // Energy Scan Rows

        Iterator<EnergyScan3VO> itES = energyScanList.iterator();
        while (itES.hasNext()) {
            EnergyScan3VO col = itES.next();

            if (col.getElement() != null)
                tableES.addCell(new Paragraph(col.getElement().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getExposureTime() != null)
                tableES.addCell(new Paragraph(col.getExposureTime().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getInflectionEnergy() != null)
                tableES.addCell(new Paragraph(col.getInflectionEnergy().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getInflectionFPrime() != null)
                tableES.addCell(new Paragraph(col.getInflectionFPrime().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getInflectionFDoublePrime() != null)
                tableES.addCell(new Paragraph(col.getInflectionFDoublePrime().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getPeakEnergy() != null)
                tableES.addCell(new Paragraph(col.getPeakEnergy().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getPeakFPrime() != null)
                tableES.addCell(new Paragraph(col.getPeakFPrime().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getPeakFDoublePrime() != null)
                tableES.addCell(new Paragraph(col.getPeakFDoublePrime().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getBeamSizeHorizontal() != null)
                tableES.addCell(new Paragraph(col.getBeamSizeHorizontal().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getBeamSizeVertical() != null)
                tableES.addCell(new Paragraph(col.getBeamSizeVertical().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (col.getTransmissionFactor() != null)
                tableES.addCell(new Paragraph(col.getTransmissionFactor().toString(), FONT_DOC));
            else
                tableES.addCell("");

            if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX)) {
                // if (col.getCrystalClass()!= null) tableES.addCell(new
                // Paragraph(col.getCrystalClass().toString(),
                // new Font(Font.HELVETICA, 8)));
                // else tableES.addCell("");
                if (col.getCrystalClass() != null) {
                    int idCC = getCrystalClassIndex(listOfCrystalClass,
                            col.getCrystalClass().trim().toUpperCase());
                    if (idCC == -1) {
                        tableES.addCell(new Paragraph(col.getCrystalClass().toString(), FONT_DOC));
                    } else
                        tableES.addCell(
                                new Paragraph(listOfCrystalClass.get(idCC).getCrystalClassName(), FONT_DOC));
                } else
                    tableES.addCell("");
            }

            tableES.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
            if (col.getComments() != null)
                tableES.addCell(new Paragraph(col.getComments().toString(), FONT_DOC));
            else
                tableES.addCell("");
            tableES.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

        }
        document.add(tableES);
    }
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set the XFR Spectra table/*from  www.j  a v a  2 s  .  co m*/
 * 
 * @param document
 * @throws Exception
 */
private void setXfrSpectraTable(Document document) throws Exception {
    if (slv == null) {// if session is null, no sense to display XFRSpectra
        return;
    }
    document.add(new Paragraph("XRF Spectra:", FONT_TITLE));
    document.add(new Paragraph(" "));
    if (xfeList == null || xfeList.isEmpty()) {
        document.add(new Paragraph("There is no XRF spectra in this report", FONT_DOC));
    } else {
        int NumColumnsXRF = 6;
        Table tableXRF = new Table(NumColumnsXRF);
        int headerwidthsSessionXRF[] = { 15, 15, 15, 15, 15, 25 }; // percentage
        int headerwidthsMXPressXRF[] = { 16, 16, 15, 15, 15, 8, 17 }; // percentage
        tableXRF.setWidths(headerwidthsSessionXRF);
        // Column crystalClass added only for IFX proposal in case of
        // MXPress experiment
        if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX)) {
            tableXRF = new Table(NumColumnsXRF + 1);
            tableXRF.setWidths(headerwidthsMXPressXRF);
        }

        tableXRF.setWidth(100); // percentage
        tableXRF.setPadding(3);
        tableXRF.setCellsFitPage(true);
        tableXRF.getDefaultCell().setBorderWidth(1);
        tableXRF.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

        // XRF Spectra Header

        tableXRF.getDefaultCell().setGrayFill(GREY_FILL_HEADER);
        tableXRF.addCell(new Paragraph("Energy\n(keV)", FONT_DOC_BOLD));
        tableXRF.addCell(new Paragraph("Exposure Time\n(s)", FONT_DOC_BOLD));
        tableXRF.addCell(new Paragraph("Beam size Hor.\n(" + Constants.MICRO + "m)", FONT_DOC_BOLD));
        tableXRF.addCell(new Paragraph("Beam size Ver.\n(" + Constants.MICRO + "m)", FONT_DOC_BOLD));
        tableXRF.addCell(new Paragraph("Transm. Factor\n(%)", FONT_DOC_BOLD));
        // Column crystalClass only for IFX proposal in case of MXPress
        // experiment
        if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX))
            tableXRF.addCell(new Paragraph("Crystal class", FONT_DOC_BOLD));
        tableXRF.addCell(new Paragraph("Comments", FONT_DOC_BOLD));
        tableXRF.getDefaultCell().setGrayFill(GREY_FILL_DATA);
        tableXRF.getDefaultCell().setBorderWidth(1);

        // XRF Spectra Rows
        Iterator<XFEFluorescenceSpectrum3VO> itES = xfeList.iterator();
        while (itES.hasNext()) {
            XFEFluorescenceSpectrum3VO col = itES.next();
            if (col.getEnergy() != null)
                tableXRF.addCell(new Paragraph(col.getEnergy().toString(), FONT_DOC));
            else
                tableXRF.addCell("");

            if (col.getExposureTime() != null)
                tableXRF.addCell(new Paragraph(col.getExposureTime().toString(), FONT_DOC));
            else
                tableXRF.addCell("");

            if (col.getBeamSizeHorizontal() != null)
                tableXRF.addCell(new Paragraph(col.getBeamSizeHorizontal().toString(), FONT_DOC));
            else
                tableXRF.addCell("");

            if (col.getBeamSizeVertical() != null)
                tableXRF.addCell(new Paragraph(col.getBeamSizeVertical().toString(), FONT_DOC));
            else
                tableXRF.addCell("");

            if (col.getBeamTransmission() != null)
                tableXRF.addCell(new Paragraph(col.getBeamTransmission().toString(), FONT_DOC));
            else
                tableXRF.addCell("");

            if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX)) {
                // if (col.getCrystalClass()!= null) tableXRF.addCell(new
                // Paragraph(col.getCrystalClass().toString(), new
                // Font(Font.HELVETICA, 8)));
                // else tableXRF.addCell("");
                if (col.getCrystalClass() != null) {
                    int idCC = getCrystalClassIndex(listOfCrystalClass,
                            col.getCrystalClass().trim().toUpperCase());
                    if (idCC == -1) {
                        tableXRF.addCell(new Paragraph(col.getCrystalClass().toString(), FONT_DOC));
                    } else
                        tableXRF.addCell(
                                new Paragraph(listOfCrystalClass.get(idCC).getCrystalClassName(), FONT_DOC));
                } else
                    tableXRF.addCell("");
            }

            tableXRF.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
            if (col.getComments() != null)
                tableXRF.addCell(new Paragraph(col.getComments().toString(), FONT_DOC));
            else
                tableXRF.addCell("");
            tableXRF.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

        }
        document.add(tableXRF);
    }
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set the summary - IFX proposal/*  w ww .ja  v a 2  s  . c o m*/
 * 
 * @param document
 * @throws Exception
 */
private void setSummary(Document document) throws Exception {
    if (proposalCode.toLowerCase().equals(Constants.PROPOSAL_CODE_FX) && name == null) {
        document.add(new Paragraph(" "));
        document.add(new Paragraph("Summary:", FONT_TITLE));
        document.add(new Paragraph(" "));

        int NumColumnsCC = 2;
        Table tableCC = new Table(NumColumnsCC);
        int headerwidthsCC[] = { 30, 15 }; // percentage
        tableCC.setWidths(headerwidthsCC);

        tableCC.setWidth(50); // percentage
        tableCC.setPadding(3);
        tableCC.setCellsFitPage(true);
        tableCC.getDefaultCell().setBorderWidth(1);
        tableCC.getDefaultCell().setGrayFill(GREY_FILL_HEADER);
        tableCC.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        tableCC.addCell(new Paragraph("Crystal class", FONT_DOC_BOLD));
        tableCC.addCell(new Paragraph("Number of crystals", FONT_DOC_BOLD));
        tableCC.getDefaultCell().setGrayFill(GREY_FILL_DATA);

        int nbCC = listOfCrystalClass.size();
        for (int cc = 0; cc < nbCC; cc++) {
            if (listOfNbCrystalPerClass.get(cc) > 0) {
                tableCC.addCell(new Paragraph(listOfCrystalClass.get(cc).getCrystalClassName() + " ("
                        + listOfCrystalClass.get(cc).getCrystalClassCode() + ")", FONT_DOC));
                tableCC.addCell(new Paragraph(listOfNbCrystalPerClass.get(cc).toString(), FONT_DOC));
            }
            LOG.debug("classe " + listOfCrystalClass.get(cc).getCrystalClassCode() + ": "
                    + listOfNbCrystalPerClass.get(cc).toString());
        }

        document.add(tableCC);

        // total
        // int nbPuckScreen = nbCrystal3;
        // int nbTotal = nbCrystal1 + nbCrystal2 + nbCrystalT;
        int nbPuckScreen = listOfNbCrystalPerClass.get(getCrystalClassIndex(listOfCrystalClass, "PS"));
        // nbTotal = C+CR+T+SC+SCR
        int nbTotal = listOfNbCrystalPerClass.get(getCrystalClassIndex(listOfCrystalClass, "C"))
                + listOfNbCrystalPerClass.get(getCrystalClassIndex(listOfCrystalClass, "SC"))
                + listOfNbCrystalPerClass.get(getCrystalClassIndex(listOfCrystalClass, "T"))
                + listOfNbCrystalPerClass.get(getCrystalClassIndex(listOfCrystalClass, "CR"))
                + listOfNbCrystalPerClass.get(getCrystalClassIndex(listOfCrystalClass, "SCR"));
        document.add(new Paragraph(" "));
        document.add(new Paragraph("Total number of tests: " + new String(new Integer(nbTotal).toString()),
                FONT_DOC));
        document.add(new Paragraph("Nb of puck screens: " + new String(new Integer(nbPuckScreen).toString()),
                FONT_DOC));
        document.add(new Paragraph(
                "Total number of samples: " + new String(new Integer(nbTotal + (nbPuckScreen * 10)).toString()),
                FONT_DOC));
    }
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set a table for a sessionDataObject/*  w w  w.  j  av a 2 s. c om*/
 * 
 * @param document
 * @param sessionDataObject
 * @param mRequest
 */
private void setDetailSessionObjectTable(Document document, SessionDataObjectInformation sessionDataObject,
        HttpServletRequest mRequest) {
    try {
        int nbCol = 6;
        int nbRows = 5;
        List<Param> listParam = sessionDataObject.getListParameters();
        int idParam = 0;
        int nbParam = listParam.size();
        nbRows = Math.max(nbRows, nbParam);
        boolean secondGraph = sessionDataObject.getGraph2Path() != null
                && !sessionDataObject.getGraph2Path().isEmpty();
        if (secondGraph)
            nbCol += 1;

        Table table = new Table(nbCol);

        int l = 0;

        int[] headersWidth = new int[nbCol];

        headersWidth[l++] = 10; // def
        headersWidth[l++] = 6; // parameters title
        headersWidth[l++] = 6; // parameters value
        headersWidth[l++] = 12; // Thumbnail
        headersWidth[l++] = 12; // Snapshot
        headersWidth[l++] = 22; // Graph
        if (secondGraph)
            headersWidth[l++] = 22; // Graph2
        table.setWidths(headersWidth);

        table.setWidth(100); // percentage
        table.setPadding(1);
        table.setCellsFitPage(true);
        table.setTableFitsPage(true);
        table.setBorderWidth(1);
        table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        // no header
        // first Row
        // firstCell: def : date
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        String collectTime = formatter.format(sessionDataObject.getDataTime());
        Cell c = getCellValue(collectTime);
        c.setBorderWidthBottom(0);
        table.addCell(c);
        // second Cell param
        setCellParam(table, listParam, idParam++, 1);
        // third Cell : thumbnail
        Cell cellThumbnail = getCellImage(sessionDataObject.getImageThumbnailPath());
        cellThumbnail.setRowspan(nbRows);
        cellThumbnail.setBorderWidth(0);
        table.addCell(cellThumbnail);
        // 4 Cell : snapshot
        Cell cellSnapshot = getCellImage(sessionDataObject.getCrystalSnapshotPath());
        cellSnapshot.setRowspan(nbRows);
        cellSnapshot.setBorderWidth(0);
        table.addCell(cellSnapshot);
        // 5 Cell : graph
        Cell cellGraph = getCellGraph(sessionDataObject);
        cellGraph.setRowspan(nbRows);
        cellGraph.setBorderWidth(0);
        table.addCell(cellGraph);
        // 6 Cell : graph2
        if (secondGraph) {
            Cell cellGraph2 = getCellImage(sessionDataObject.getGraph2Path());
            cellGraph2.setRowspan(nbRows);
            cellGraph2.setBorderWidth(0);
            table.addCell(cellGraph2);
        }

        // second row
        Cell c2 = getCellValue(sessionDataObject.getImagePrefix() + " " + sessionDataObject.getRunNumber());
        c2.setBorderWidth(0);
        table.addCell(c2);
        // param2
        setCellParam(table, listParam, idParam++, 1);

        // third row
        Cell c3 = getCellValue(sessionDataObject.getExperimentType());
        c3.setBorderWidth(0);
        table.addCell(c3);
        // param3
        setCellParam(table, listParam, idParam++, 1);

        // 4 row
        Cell c4 = getCellValue(sessionDataObject.getSampleNameProtein());
        c4.setBorderWidth(0);
        table.addCell(c4);
        // param4
        setCellParam(table, listParam, idParam++, 1);

        // 5 row
        Cell c5 = new Cell();
        c5.setHorizontalAlignment(Element.ALIGN_LEFT);
        c5.add(new Paragraph(sessionDataObject.getComments(), FONT_DOC_ITALIC));
        c5.setBorderWidth(0);
        c5.setRowspan(nbRows - 4);
        table.addCell(c5);
        // param4
        setCellParam(table, listParam, idParam++, 1);

        for (int i = 5; i < nbRows; i++) {
            setCellParam(table, listParam, idParam++, 1);
        }

        // results
        // workflow result status
        if (sessionDataObject.isWorkflow()) {
            Cell resultCell = getWorkflowResult(sessionDataObject.getWorkflow(), mRequest);
            resultCell.setHorizontalAlignment(Element.ALIGN_LEFT);
            resultCell.setColspan(nbCol);
            table.addCell(resultCell);
        }
        // collect OSC
        if ((sessionDataObject.isDataCollection()
                && !sessionDataObject.getDataCollection().getDataCollectionGroupVO().getExperimentType()
                        .equals(Constants.EXPERIMENT_TYPE_CHARACTERIZATION))) {
            DataCollectionExporter dcExporter = new DataCollectionExporter(df2, df3, proposalCode,
                    proposalNumber, mRequest);
            DataCollection3VO dataCollection = sessionDataObject.getDataCollection();
            DataCollectionInformation dcInfo = dcExporter.getDataCollectionInformation(dataCollection,
                    getSampleRankingVO(dataCollection.getDataCollectionId()),
                    getAutoProcRankingVO(dataCollection.getDataCollectionId()));
            Cell resultCell = getAutoProcResultStatus(dcInfo);
            resultCell.setColspan(nbCol);
            resultCell.setHorizontalAlignment(Element.ALIGN_LEFT);
            table.addCell(resultCell);
            document.add(table);
            document.add(new Paragraph(" ", VERY_SMALL_FONT));

            setAutoProcResultsTable(document, dcInfo);
        } else if (sessionDataObject.isWorkflow() && sessionDataObject.getWorkflow().isMXPressEOIA()) { // MXPRESS
            // wf
            DataCollectionExporter dcExporter = new DataCollectionExporter(df2, df3, proposalCode,
                    proposalNumber, mRequest);
            DataCollection3VO dataCollection = sessionDataObject.getListDataCollection().get(0);
            DataCollectionInformation dcInfo = dcExporter.getDataCollectionInformation(dataCollection,
                    getSampleRankingVO(dataCollection.getDataCollectionId()),
                    getAutoProcRankingVO(dataCollection.getDataCollectionId()));
            Cell resultCell = getAutoProcResultStatus(dcInfo);
            resultCell.setHorizontalAlignment(Element.ALIGN_LEFT);
            resultCell.setColspan(nbCol);
            table.addCell(resultCell);

            document.add(table);
            document.add(new Paragraph(" ", VERY_SMALL_FONT));

            setAutoProcResultsTable(document, dcInfo);
        } else if ((sessionDataObject.isDataCollection()
                && sessionDataObject.getDataCollection().getDataCollectionGroupVO().getExperimentType()
                        .equals(Constants.EXPERIMENT_TYPE_CHARACTERIZATION))) { // Characterization
            DataCollectionExporter dcExporter = new DataCollectionExporter(df2, df3, proposalCode,
                    proposalNumber, mRequest);
            DataCollection3VO dataCollection = sessionDataObject.getDataCollection();
            DataCollectionInformation dcInfo = dcExporter.getDataCollectionInformation(dataCollection,
                    getSampleRankingVO(dataCollection.getDataCollectionId()),
                    getAutoProcRankingVO(dataCollection.getDataCollectionId()));
            Cell resultCell = getCharacterizationResultStatus(dcInfo, mRequest);
            resultCell.setColspan(nbCol);
            resultCell.setHorizontalAlignment(Element.ALIGN_LEFT);
            table.addCell(resultCell);
            document.add(table);
            document.add(new Paragraph(" ", VERY_SMALL_FONT));

            setStrategyTable2(document, dcInfo);
        } else {
            List<Param> listResults = sessionDataObject.getListResults();
            if (listResults != null) {
                int nbResults = listResults.size();
                for (int j = 0; j < nbResults; j++) {
                    setCellParam(table, listResults, j, 2);
                    Cell eCell = getEmptyCell(nbCol - 3);
                    eCell.setBorderWidth(0);
                    table.addCell(eCell);
                }
            }
            document.add(table);
            document.add(new Paragraph(" ", FONT_SPACE));
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set the EDNA Table//  w  ww.jav a  2s  .c  o m
 * 
 * @param document
 * @param dcInfo
 * @throws Exception
 */
private void setEDNATable(Document document, DataCollectionInformation dcInfo) throws Exception {
    if (dcInfo.getSpacegroup() != "") {
        int noCol = 4;
        Table tableEDNA = new Table(noCol);
        int headerEDNA[] = { 10, 10, 10, 10 }; // percentage
        tableEDNA.setWidths(headerEDNA);
        tableEDNA.setWidth(70); // percentage
        tableEDNA.setPadding(3);
        tableEDNA.setCellsFitPage(true);
        tableEDNA.setTableFitsPage(true);
        // tableEDNA.getDefaultCell().setBorderWidth(1);
        tableEDNA.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        // EDNA Header
        tableEDNA.getDefaultCell().setBackgroundColor(BLUE_COLOR);
        tableEDNA.addCell(new Paragraph("Space Group", FONT_DOC_BOLD));
        tableEDNA.addCell(new Paragraph("Unit Cell", FONT_DOC_BOLD));
        tableEDNA.addCell(new Paragraph("Mosaicity\n(" + Constants.ANGSTROM + ")", FONT_DOC_BOLD));
        tableEDNA.addCell(new Paragraph("Ranking Resolution\n(" + Constants.ANGSTROM + ")", FONT_DOC_BOLD));
        tableEDNA.getDefaultCell().setBorderWidth(1);
        tableEDNA.getDefaultCell().setBackgroundColor(WHITE_COLOR);
        // EDNA data
        String unitCell = dcInfo.getCellA() + " (" + dcInfo.getCellAlpha() + ")\n" + dcInfo.getCellB() + " ("
                + dcInfo.getCellBeta() + ")\n" + dcInfo.getCellC() + " (" + dcInfo.getCellGamma() + ")";

        tableEDNA.addCell(new Paragraph(dcInfo.getSpacegroup(), FONT_DOC));
        tableEDNA.addCell(new Paragraph(unitCell, FONT_DOC));
        tableEDNA.addCell(new Paragraph(dcInfo.getMosaicity(), FONT_DOC));
        tableEDNA.addCell(new Paragraph(dcInfo.getResObserved(), FONT_DOC));
        //

        document.add(tableEDNA);
        document.add(new Paragraph(" ", VERY_SMALL_FONT));
    }
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

private void setEDNATable2(Document document, DataCollectionInformation dcInfo) throws Exception {
    if (dcInfo.getSpacegroup() != "") {
        int noCol = 4;
        Table tableEDNA = new Table(noCol);
        int headerEDNA[] = { 10, 10, 10, 10 }; // percentage
        tableEDNA.setWidths(headerEDNA);
        tableEDNA.setWidth(100); // percentage
        tableEDNA.setPadding(3);/*from  w  ww.ja  v  a2s  .  c o m*/
        tableEDNA.setCellsFitPage(true);
        tableEDNA.setTableFitsPage(true);
        // tableEDNA.getDefaultCell().setBorderWidth(1);
        tableEDNA.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        // EDNA Header
        tableEDNA.getDefaultCell().setGrayFill(GREY_FILL_HEADER);
        tableEDNA.addCell(new Paragraph("Space Group", FONT_DOC_BOLD));
        tableEDNA.addCell(new Paragraph("Unit Cell (a, b, c, alpha, beta, gamma)", FONT_DOC_BOLD));
        tableEDNA.addCell(new Paragraph("Mosaicity (" + Constants.DEGREE + ")", FONT_DOC_BOLD));
        tableEDNA.addCell(new Paragraph("Ranking Resolution (" + Constants.ANGSTROM + ")", FONT_DOC_BOLD));
        tableEDNA.getDefaultCell().setBorderWidth(1);
        tableEDNA.getDefaultCell().setBackgroundColor(WHITE_COLOR);
        // EDNA data
        String unitCell = dcInfo.getCellA() + ", " + dcInfo.getCellB() + ", " + dcInfo.getCellC() + "\n"
                + dcInfo.getCellAlpha() + ", " + dcInfo.getCellBeta() + ", " + dcInfo.getCellGamma();
        tableEDNA.addCell(new Paragraph(dcInfo.getSpacegroup(), FONT_DOC));
        tableEDNA.addCell(new Paragraph(unitCell, FONT_DOC));
        tableEDNA.addCell(new Paragraph(dcInfo.getMosaicity(), FONT_DOC));
        tableEDNA.addCell(new Paragraph(dcInfo.getResObserved(), FONT_DOC));
        //

        document.add(tableEDNA);
        document.add(new Paragraph(" ", VERY_SMALL_FONT));
    }
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

private void setImagesTable(Document document, DataCollectionInformation dcInfo) throws Exception {
    String imgCrystal = dcInfo.getPathjpgCrystal();
    String imgDiff1 = dcInfo.getPathDiffractionImg1();
    String imgDiff2 = dcInfo.getPathDiffractionImg2();
    int nbCol = 0;
    if (imgCrystal != null && !imgCrystal.equals("")) {
        nbCol++;/*from  w  w  w.  jav a 2s .c  o  m*/
    }
    if (imgDiff1 != null && !imgDiff1.equals("")) {
        nbCol++;
    }
    if (imgDiff2 != null && !imgDiff2.equals("")) {
        nbCol++;
    }
    if (nbCol > 0) {
        Table tableImage = new Table(nbCol);
        tableImage.setCellsFitPage(true);
        tableImage.setWidth(100); // percentage
        tableImage.getDefaultCell().setBorderWidth(0);
        tableImage.setBorderWidth(0);
        tableImage.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        // ------------------------------------- Insert crystal image
        // ----------------------------
        if (imgCrystal != null && !imgCrystal.equals("")) {
            try {
                Image jpgCrystal = Image.getInstance(imgCrystal);
                jpgCrystal.scaleAbsolute(CRYSTAL_IMAGE_WIDTH, CRYSTAL_IMAGE_HEIGHT);
                Cell cellCrystalImage = new Cell(jpgCrystal);
                cellCrystalImage.setLeading(0);
                cellCrystalImage.setBorderWidth(0);
                cellCrystalImage.setHorizontalAlignment(Element.ALIGN_CENTER);
                tableImage.addCell(cellCrystalImage);
            } catch (IOException e) {
                tableImage.addCell(new Paragraph(imgCrystal + " not found", FONT_DOC));
            }
        }
        // --- Image 1
        if (imgDiff1 != null && !imgDiff1.equals("")) {
            try {
                Image jpg1 = Image.getInstance(imgDiff1);
                jpg1.scaleAbsolute(DIFF_IMAGE_WIDTH, DIFF_IMAGE_HEIGHT);
                Cell cellDiffractionThumbnail1 = new Cell(jpg1);
                cellDiffractionThumbnail1.setLeading(0);
                cellDiffractionThumbnail1.setBorderWidth(0);
                cellDiffractionThumbnail1.setHorizontalAlignment(Element.ALIGN_CENTER);
                tableImage.addCell(cellDiffractionThumbnail1);
            } catch (IOException e) {
                tableImage.addCell(new Paragraph(imgDiff1 + " not found", FONT_DOC));
            }
        }
        // --- Image 2
        if (imgDiff2 != null && !imgDiff2.equals("")) {
            try {
                Image jpg2 = Image.getInstance(imgDiff2);
                jpg2.scaleAbsolute(DIFF_IMAGE_WIDTH, DIFF_IMAGE_HEIGHT);
                Cell cellDiffractionThumbnail2 = new Cell(jpg2);
                cellDiffractionThumbnail2.setLeading(0);
                cellDiffractionThumbnail2.setBorderWidth(0);
                cellDiffractionThumbnail2.setHorizontalAlignment(Element.ALIGN_CENTER);
                tableImage.addCell(cellDiffractionThumbnail2);
            } catch (IOException e) {
                tableImage.addCell(new Paragraph(imgDiff2 + " not found", FONT_DOC));
            }
        }
        //
        document.add(tableImage);
        document.add(new Paragraph(" ", VERY_SMALL_FONT));
    }
}

From source file:ispyb.client.mx.collection.PdfRtfExporter.java

License:Open Source License

/**
 * set the strategy table and wedge & subwedge strategy tables copy from
 * setStrategyTable, waiting for feedback that we can remove the old reports
 * and the first method//from  w  w w  . j av  a  2s .  co  m
 * 
 * @param document
 * @param dcInfo
 * @throws Exception
 */
private void setStrategyTable2(Document document, DataCollectionInformation dcInfo) throws Exception {
    // ------------------------------------------- Strategy Wedge
    // ------------------------------------------------
    List<StrategyWedgeInformation> strategyWedgeInformationList = dcInfo.getListStrategyWedgeInformation();
    for (Iterator<StrategyWedgeInformation> i = strategyWedgeInformationList.iterator(); i.hasNext();) {
        document.add(new Paragraph(" ", VERY_SMALL_FONT));
        StrategyWedgeInformation swi = i.next();
        Table strategyWedgeTable = new Table(10);
        int headerStrategyWedge[] = { 8, 10, 10, 10, 10, 10, 10, 10, 10, 20 }; // percentage
        strategyWedgeTable.setWidths(headerStrategyWedge);
        strategyWedgeTable.setWidth(100);
        strategyWedgeTable.setCellsFitPage(true);
        strategyWedgeTable.setTableFitsPage(true);
        strategyWedgeTable.setPadding(1);
        strategyWedgeTable.getDefaultCell().setBorderWidth(1);
        strategyWedgeTable.setBorderWidth(1);
        strategyWedgeTable.getDefaultCell().setBackgroundColor(LIGHT_GREY_COLOR);
        strategyWedgeTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

        strategyWedgeTable.addCell(new Paragraph("Wedge number", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Resolution (" + Constants.ANGSTROM + ")", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Completeness", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Multiplicity", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Total dose", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Number of Images", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Phi (" + Constants.DEGREE + ")", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Kappa (" + Constants.DEGREE + ")", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Wavelength", FONT_DOC_BOLD));
        strategyWedgeTable.addCell(new Paragraph("Comments", FONT_DOC_BOLD));

        strategyWedgeTable.getDefaultCell().setBackgroundColor(WHITE_COLOR);
        // rows
        strategyWedgeTable.addCell(new Paragraph(swi.getWedgeNumber(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getResolution(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getCompleteness(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getMultiplicity(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getDoseTotal(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getNumberOfImages(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getPhi(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getKappa(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getWavelength(), FONT_DOC));
        strategyWedgeTable.addCell(new Paragraph(swi.getComments(), FONT_DOC));

        document.add(strategyWedgeTable);

        // --- strategy sub wedge
        if (swi.getListStrategySubWedgeInformation().size() > 0) {
            document.add(new Paragraph(" ", VERY_SMALL_FONT));

            Table strategySubWedgeTable = new Table(12);
            int headerStrategySubWedge[] = { 8, 15, 10, 10, 10, 10, 10, 10, 10, 8, 8, 20 }; // percentage
            strategySubWedgeTable.setWidths(headerStrategySubWedge);
            strategySubWedgeTable.setWidth(97);
            strategySubWedgeTable.setCellsFitPage(true);
            strategySubWedgeTable.setTableFitsPage(true);
            strategySubWedgeTable.setPadding(1);
            strategySubWedgeTable.getDefaultCell().setBorderWidth(1);
            strategySubWedgeTable.setBorderWidth(1);
            strategySubWedgeTable.getDefaultCell().setBackgroundColor(LIGHT_GREY_COLOR);
            strategySubWedgeTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

            strategySubWedgeTable.addCell(new Paragraph("Sub Wedge number", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Rotation axis", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Axis start", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Axis end", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Exposure time", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Transmission", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Oscillation Range", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Completeness", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Multiplicity", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Total dose", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Number of images", FONT_DOC_BOLD));
            strategySubWedgeTable.addCell(new Paragraph("Comments", FONT_DOC_BOLD));

            strategySubWedgeTable.getDefaultCell().setBackgroundColor(WHITE_COLOR);
            // rows
            for (Iterator<StrategySubWedgeInformation> s = swi.getListStrategySubWedgeInformation()
                    .iterator(); s.hasNext();) {
                StrategySubWedgeInformation sswi = s.next();
                strategySubWedgeTable.addCell(new Paragraph(sswi.getSubWedgeNumber(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getRotationAxis(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getAxisStart(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getAxisEnd(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getExposureTime(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getTransmission(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getOscillationRange(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getCompleteness(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getMultiplicity(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getDoseTotal(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getNumberOfImages(), FONT_DOC));
                strategySubWedgeTable.addCell(new Paragraph(sswi.getComments(), FONT_DOC));
            }
            document.add(strategySubWedgeTable);
        }
    }
    document.add(new Paragraph(" ", VERY_SMALL_FONT));
}