List of usage examples for com.lowagie.text.pdf PdfPCell setPhrase
public void setPhrase(Phrase phrase)
Phrase
for this cell. 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))); } }