+package org.simantics.document.linking.report.pdf;\r
+\r
+import java.util.List;\r
+\r
+import org.simantics.document.linking.report.DocumentLine;\r
+import org.simantics.document.linking.report.DocumentTitlePage;\r
+import org.simantics.document.linking.report.Table;\r
+import org.simantics.document.linking.report.Document.TextSize;\r
+import org.simantics.document.linking.report.TableColumn.Alignment;\r
+\r
+\r
+public class PDFTitlePage extends DocumentTitlePage implements PDFElement {\r
+ \r
+ PDFDocument document;\r
+ PDFPage page;\r
+ public PDFTitlePage(PDFDocument writer) {\r
+ this.document = writer;\r
+ }\r
+ \r
+ @Override\r
+ public PDFPage getPage() {\r
+ return page;\r
+ }\r
+ \r
+ @Override\r
+ public void writeTitle(List<DocumentLine> titleLines) throws Exception {\r
+ Alignment alignment = (Alignment)titleLines.get(0).getHints().get(Alignment.class);\r
+ if (alignment == null)\r
+ alignment = Alignment.CENTER;\r
+ TextSize textSize = (TextSize)titleLines.get(0).getHints().get(TextSize.class);\r
+ if (textSize == null)\r
+ textSize = TextSize.HUGE;\r
+ \r
+ document.nextPage();\r
+ this.page = document.contentStream.getCurrentPage();\r
+ Table table = document.newElement(Table.class);\r
+ table.addColumn("Names", 1.0).setAlignment(alignment);\r
+ table.setLinesVisible(false);\r
+ table.setHeaderVisible(false);\r
+ table.setTextSize(textSize);\r
+ int lines = (document.contentStream.getAvailableLines()-3)/2;\r
+ for (int i = 0; i < lines; i++)\r
+ table.writeRow("");\r
+ for (DocumentLine line : titleLines) {\r
+ TextSize s = (TextSize)line.getHints().get(TextSize.class);\r
+ if (s != null)\r
+ textSize = s;\r
+ table.setTextSize(textSize);\r
+ table.writeRow(line.getLine());\r
+ }\r
+ table.setTextSize(TextSize.SMALL);\r
+ table.setLinesVisible(true);\r
+ table.setHeaderVisible(true);\r
+ document.nextPage();\r
+ \r
+ }\r
+ \r
+ \r
+\r
+}\r