]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/pdf/PDFTocElement.java
Externalize org.simantics.document.linking.ui
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / pdf / PDFTocElement.java
index cd92ffb06a9a92e7b9e6f58e22f1e8c9ffd6ce9e..03c77cdcc74f956446f237b51cbf03a18b508e9c 100644 (file)
@@ -1,88 +1,88 @@
-package org.simantics.document.linking.report.pdf;\r
-\r
-import java.awt.Font;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.simantics.document.linking.report.DocumentElement;\r
-import org.simantics.document.linking.report.TableOfContents;\r
-import org.simantics.document.linking.report.Document.TextSize;\r
-import org.simantics.document.linking.report.TableColumn.Alignment;\r
-import org.simantics.utils.datastructures.Pair;\r
-\r
-\r
-public class PDFTocElement implements TableOfContents {\r
-       \r
-       PDFDocument writer;\r
-       PDFPageStream stream;\r
-       \r
-       Font itemFont;\r
-       Font titleFont;\r
-       \r
-       int linesPerPage;\r
-       int linesOnFirstPage;\r
-       \r
-       PDFTable tocTable;\r
-       \r
-       public PDFTocElement(PDFDocument writer) throws Exception{\r
-               this.writer = writer;\r
-               stream = new PDFPageStream();\r
-               itemFont = writer.getFont(TextSize.SMALL);\r
-               titleFont = writer.getFont(TextSize.LARGE);\r
-               stream.setDefaultFont(itemFont);\r
-               \r
-               stream.nextPage();\r
-               tocTable= new PDFTable(writer, stream);\r
-               linesPerPage = tocTable.getAvailableLines();\r
-               //linesPerPage = stream.getAvailableLines();\r
-               PDFPage page = stream.getCurrentPage();\r
-               page.setFont(titleFont);\r
-               page.writeLine("Table of Contents");\r
-               page.setFont(itemFont);\r
-               page.writeLine("");\r
-               linesOnFirstPage = tocTable.getAvailableLines();\r
-               //linesOnFirstPage = page.availableLines;\r
-       }\r
-       private List<Pair<String, PDFElement>> toc = new ArrayList<Pair<String,PDFElement>>();\r
-       @Override\r
-       public void addTocElement(String label, DocumentElement element) {\r
-               toc.add(new Pair<String, PDFElement>(label, (PDFElement)element));\r
-       }\r
-       \r
-       public void create(PDFPageStream destStream, PDFPage after) throws Exception {\r
-               int tocPages = getEstimatedPages();\r
-\r
-               List<PDFPage> pages = destStream.getPages();\r
-               int tocIndex = pages.indexOf(after)+1;\r
-               \r
-               tocTable.addColumn("Document", 0.9);\r
-               tocTable.addColumn("Page", 0.1).setAlignment(Alignment.RIGHT);\r
-               tocTable.setHeaderVisible(false);\r
-               tocTable.setLinesVisible(false);\r
-               for (Pair<String, PDFElement> item : toc) {\r
-                       int pageIndex = pages.indexOf(item.second.getPage());\r
-                       if (pageIndex >= 0) {\r
-                               pageIndex += tocPages + 1;\r
-                       }\r
-                       tocTable.writeRow(item.first, Integer.toString(pageIndex));\r
-//                     stream.getCurrentPage().writeLine( + "  " + pageIndex);\r
-               }\r
-               \r
-               pages.addAll(tocIndex, stream.getPages());\r
-               stream = null;\r
-       }\r
-       \r
-       \r
-       \r
-       public int getEstimatedPages() {\r
-               int pages = 1;\r
-               int items = toc.size();\r
-               items -= linesOnFirstPage;\r
-               while (items > 0) {\r
-                       items-= linesPerPage;\r
-                       pages++;\r
-               }\r
-               return pages;\r
-       }\r
-\r
-}\r
+package org.simantics.document.linking.report.pdf;
+
+import java.awt.Font;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.simantics.document.linking.report.DocumentElement;
+import org.simantics.document.linking.report.TableOfContents;
+import org.simantics.document.linking.report.Document.TextSize;
+import org.simantics.document.linking.report.TableColumn.Alignment;
+import org.simantics.utils.datastructures.Pair;
+
+
+public class PDFTocElement implements TableOfContents {
+       
+       PDFDocument writer;
+       PDFPageStream stream;
+       
+       Font itemFont;
+       Font titleFont;
+       
+       int linesPerPage;
+       int linesOnFirstPage;
+       
+       PDFTable tocTable;
+       
+       public PDFTocElement(PDFDocument writer) throws Exception{
+               this.writer = writer;
+               stream = new PDFPageStream();
+               itemFont = writer.getFont(TextSize.SMALL);
+               titleFont = writer.getFont(TextSize.LARGE);
+               stream.setDefaultFont(itemFont);
+               
+               stream.nextPage();
+               tocTable= new PDFTable(writer, stream);
+               linesPerPage = tocTable.getAvailableLines();
+               //linesPerPage = stream.getAvailableLines();
+               PDFPage page = stream.getCurrentPage();
+               page.setFont(titleFont);
+               page.writeLine(Messages.PDFTocElement_TocHeading);
+               page.setFont(itemFont);
+               page.writeLine(""); //$NON-NLS-1$
+               linesOnFirstPage = tocTable.getAvailableLines();
+               //linesOnFirstPage = page.availableLines;
+       }
+       private List<Pair<String, PDFElement>> toc = new ArrayList<Pair<String,PDFElement>>();
+       @Override
+       public void addTocElement(String label, DocumentElement element) {
+               toc.add(new Pair<String, PDFElement>(label, (PDFElement)element));
+       }
+       
+       public void create(PDFPageStream destStream, PDFPage after) throws Exception {
+               int tocPages = getEstimatedPages();
+
+               List<PDFPage> pages = destStream.getPages();
+               int tocIndex = pages.indexOf(after)+1;
+               
+               tocTable.addColumn("Document", 0.9); //$NON-NLS-1$
+               tocTable.addColumn("Page", 0.1).setAlignment(Alignment.RIGHT); //$NON-NLS-1$
+               tocTable.setHeaderVisible(false);
+               tocTable.setLinesVisible(false);
+               for (Pair<String, PDFElement> item : toc) {
+                       int pageIndex = pages.indexOf(item.second.getPage());
+                       if (pageIndex >= 0) {
+                               pageIndex += tocPages + 1;
+                       }
+                       tocTable.writeRow(item.first, Integer.toString(pageIndex));
+//                     stream.getCurrentPage().writeLine( + "  " + pageIndex);
+               }
+               
+               pages.addAll(tocIndex, stream.getPages());
+               stream = null;
+       }
+       
+       
+       
+       public int getEstimatedPages() {
+               int pages = 1;
+               int items = toc.size();
+               items -= linesOnFirstPage;
+               while (items > 0) {
+                       items-= linesPerPage;
+                       pages++;
+               }
+               return pages;
+       }
+
+}