]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/pdf/PDFDocument.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / pdf / PDFDocument.java
index bc4aa6d288d040575386427be61c5d192d02a575..ce0c423e26ede5f1dfaeb7f9d3bdc18a1f768a7f 100644 (file)
-package org.simantics.document.linking.report.pdf;\r
-\r
-import java.awt.Font;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.simantics.document.linking.report.Document;\r
-import org.simantics.document.linking.report.DocumentElement;\r
-import org.simantics.document.linking.report.DocumentItem;\r
-import org.simantics.document.linking.report.DocumentTitlePage;\r
-import org.simantics.document.linking.report.Table;\r
-import org.simantics.document.linking.report.TableOfContents;\r
-import org.simantics.document.linking.report.TextItem;\r
-import org.simantics.document.linking.report.URLItem;\r
-import org.simantics.document.linking.report.base.TextItemImpl;\r
-import org.simantics.document.linking.report.base.URLItemImpl;\r
-import org.simantics.utils.datastructures.Arrays;\r
-\r
-\r
-/**\r
- * PDF format reporter.\r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- */\r
-public class PDFDocument implements Document {\r
-       private String filename;\r
-       \r
-       Map<TextSize, Font> fonts = new HashMap<TextSize, Font>();\r
-       \r
-       PDFPageStream contentStream;\r
-       PDFTable currentTable;\r
-       PDFTitlePage titlePage;\r
-       PDFTocElement toc;\r
-       \r
-       public PDFDocument(String filename) throws Exception {\r
-               this.filename = filename;\r
-               contentStream = new PDFPageStream();\r
-               defaultFonts();\r
-               contentStream.setDefaultFont(fonts.get(TextSize.SMALL));\r
-       }\r
-       \r
-       public PDFDocument(String filename, Font font) throws Exception {\r
-               this.filename = filename;\r
-               contentStream = new PDFPageStream();\r
-               defaultFonts();\r
-               fonts.put(TextSize.SMALL, font);\r
-       }\r
-       \r
-       public PDFDocument(String filename, Font font, Font headerFont) throws Exception {\r
-               this.filename = filename;\r
-               contentStream = new PDFPageStream();\r
-               defaultFonts();\r
-               fonts.put(TextSize.SMALL, font);\r
-               fonts.put(TextSize.MEDIUM, headerFont);\r
-       }\r
-       \r
-       private void defaultFonts() {\r
-               fonts.put(TextSize.TINY, new Font("Arial", Font.PLAIN, 6));\r
-               fonts.put(TextSize.SMALL, new Font("Arial", Font.PLAIN, 8));\r
-               fonts.put(TextSize.MEDIUM, new Font("Arial", Font.PLAIN, 10));\r
-               fonts.put(TextSize.LARGE, new Font("Arial", Font.PLAIN, 16));\r
-               fonts.put(TextSize.HUGE, new Font("Arial", Font.BOLD, 24));\r
-               contentStream.setDefaultFont(fonts.get(TextSize.SMALL));\r
-       }\r
-       \r
-       Font getFont(TextSize size) {\r
-               return fonts.get(size);\r
-       }\r
-       \r
-       @Override\r
-       public int getAvailableLines() {\r
-               return contentStream.getAvailableLines();\r
-       }\r
-       \r
-       @Override\r
-       public int getCurrentLine() {\r
-               return contentStream.getCurrentLine();\r
-       }\r
-       \r
-       public void close() throws Exception{\r
-               if (toc != null) {\r
-                       // hackety hack.\r
-                       toc.create(contentStream, contentStream.getPages().get(0));\r
-               }\r
-               contentStream.close(filename);\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see org.simantics.document.linking.report.Document#nextPage()\r
-        */\r
-       @Override\r
-       public void nextPage() throws Exception{\r
-               contentStream.nextPage();       \r
-       }\r
-       \r
-       @SuppressWarnings("unchecked")\r
-       @Override\r
-       public <T extends DocumentElement> T newElement(Class<T> cls, String...options) throws Exception {\r
-               if (cls == Table.class) {\r
-                       return (T)newTable();\r
-               } else if (cls == TableOfContents.class) {\r
-                       return (T)getOrCreateToc();\r
-               } else if (cls == DocumentTitlePage.class) {\r
-                       if (titlePage != null)\r
-                               throw new Exception("Report may contain only one title page");\r
-                       titlePage =  new PDFTitlePage(this);\r
-                       return (T)titlePage;\r
-               }\r
-               return null;\r
-       }\r
-       \r
-       @SuppressWarnings("unchecked")\r
-       @Override\r
-       public <T extends DocumentElement> T nextElement(Class<T> cls, String...options) throws Exception {\r
-               if (cls == Table.class) {\r
-                       return (T)nextTable(Arrays.contains(options, Document.TOC));\r
-               } else if (cls == TableOfContents.class) {\r
-                       return (T)getOrCreateToc();\r
-               } \r
-               return null;\r
-       }\r
-       \r
-       @SuppressWarnings("unchecked")\r
-       @Override\r
-       public <T extends DocumentElement> T getCurrentElement(Class<T> cls) {\r
-               if (cls == Table.class) {\r
-                       return (T)getCurrentTable();\r
-               } else if (cls == TableOfContents.class) {\r
-                       return (T)toc;\r
-               } else if (cls == DocumentTitlePage.class) {\r
-                       return (T)titlePage;\r
-               }\r
-               return null;\r
-       }\r
-       \r
-       @SuppressWarnings("unchecked")\r
-       @Override\r
-       public <T extends DocumentItem> T newItem(Class<T> cls, String... options)\r
-                       throws Exception {\r
-               if (cls == TextItem.class)\r
-                       return (T)new TextItemImpl();\r
-               if (cls == URLItem.class)\r
-                       return (T)new URLItemImpl();\r
-               return null;\r
-       }       \r
-       \r
-       public Table nextTable(boolean id) throws Exception {\r
-               if (currentTable!= null) {\r
-                       closeTable();\r
-                       currentTable = new PDFTable(currentTable);\r
-                       return currentTable;    \r
-               } else {\r
-                       return newTable();\r
-               }\r
-\r
-       }\r
-       \r
-       private void closeTable() throws Exception {\r
-               if (currentTable != null && currentTable.currentLine > 0) {\r
-                       currentTable.setLinesVisible(false);\r
-                       currentTable.setHeaderVisible(false);\r
-                       currentTable.writeLine("");\r
-               }\r
-       }\r
-       \r
-       \r
-       public Table newTable() throws Exception {\r
-               closeTable();\r
-               currentTable = new PDFTable(this,contentStream);\r
-               return currentTable;\r
-       }\r
-       \r
-       \r
-       Table getCurrentTable() {\r
-               return currentTable;\r
-       }\r
-       \r
-       TableOfContents getOrCreateToc() throws Exception{\r
-               if (toc == null)\r
-                       toc = new PDFTocElement(this);\r
-               return toc;\r
-       }\r
-       \r
-       \r
-\r
-\r
-}\r
+package org.simantics.document.linking.report.pdf;
+
+import java.awt.Font;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.simantics.document.linking.report.Document;
+import org.simantics.document.linking.report.DocumentElement;
+import org.simantics.document.linking.report.DocumentItem;
+import org.simantics.document.linking.report.DocumentTitlePage;
+import org.simantics.document.linking.report.Table;
+import org.simantics.document.linking.report.TableOfContents;
+import org.simantics.document.linking.report.TextItem;
+import org.simantics.document.linking.report.URLItem;
+import org.simantics.document.linking.report.base.TextItemImpl;
+import org.simantics.document.linking.report.base.URLItemImpl;
+import org.simantics.utils.datastructures.Arrays;
+
+
+/**
+ * PDF format reporter.
+ * 
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
+ *
+ */
+public class PDFDocument implements Document {
+       private String filename;
+       
+       Map<TextSize, Font> fonts = new HashMap<TextSize, Font>();
+       
+       PDFPageStream contentStream;
+       PDFTable currentTable;
+       PDFTitlePage titlePage;
+       PDFTocElement toc;
+       
+       public PDFDocument(String filename) throws Exception {
+               this.filename = filename;
+               contentStream = new PDFPageStream();
+               defaultFonts();
+               contentStream.setDefaultFont(fonts.get(TextSize.SMALL));
+       }
+       
+       public PDFDocument(String filename, Font font) throws Exception {
+               this.filename = filename;
+               contentStream = new PDFPageStream();
+               defaultFonts();
+               fonts.put(TextSize.SMALL, font);
+       }
+       
+       public PDFDocument(String filename, Font font, Font headerFont) throws Exception {
+               this.filename = filename;
+               contentStream = new PDFPageStream();
+               defaultFonts();
+               fonts.put(TextSize.SMALL, font);
+               fonts.put(TextSize.MEDIUM, headerFont);
+       }
+       
+       private void defaultFonts() {
+               fonts.put(TextSize.TINY, new Font("Arial", Font.PLAIN, 6));
+               fonts.put(TextSize.SMALL, new Font("Arial", Font.PLAIN, 8));
+               fonts.put(TextSize.MEDIUM, new Font("Arial", Font.PLAIN, 10));
+               fonts.put(TextSize.LARGE, new Font("Arial", Font.PLAIN, 16));
+               fonts.put(TextSize.HUGE, new Font("Arial", Font.BOLD, 24));
+               contentStream.setDefaultFont(fonts.get(TextSize.SMALL));
+       }
+       
+       Font getFont(TextSize size) {
+               return fonts.get(size);
+       }
+       
+       @Override
+       public int getAvailableLines() {
+               return contentStream.getAvailableLines();
+       }
+       
+       @Override
+       public int getCurrentLine() {
+               return contentStream.getCurrentLine();
+       }
+       
+       public void close() throws Exception{
+               if (toc != null) {
+                       // hackety hack.
+                       toc.create(contentStream, contentStream.getPages().get(0));
+               }
+               contentStream.close(filename);
+       }
+       
+       /* (non-Javadoc)
+        * @see org.simantics.document.linking.report.Document#nextPage()
+        */
+       @Override
+       public void nextPage() throws Exception{
+               contentStream.nextPage();       
+       }
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public <T extends DocumentElement> T newElement(Class<T> cls, String...options) throws Exception {
+               if (cls == Table.class) {
+                       return (T)newTable();
+               } else if (cls == TableOfContents.class) {
+                       return (T)getOrCreateToc();
+               } else if (cls == DocumentTitlePage.class) {
+                       if (titlePage != null)
+                               throw new Exception("Report may contain only one title page");
+                       titlePage =  new PDFTitlePage(this);
+                       return (T)titlePage;
+               }
+               return null;
+       }
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public <T extends DocumentElement> T nextElement(Class<T> cls, String...options) throws Exception {
+               if (cls == Table.class) {
+                       return (T)nextTable(Arrays.contains(options, Document.TOC));
+               } else if (cls == TableOfContents.class) {
+                       return (T)getOrCreateToc();
+               } 
+               return null;
+       }
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public <T extends DocumentElement> T getCurrentElement(Class<T> cls) {
+               if (cls == Table.class) {
+                       return (T)getCurrentTable();
+               } else if (cls == TableOfContents.class) {
+                       return (T)toc;
+               } else if (cls == DocumentTitlePage.class) {
+                       return (T)titlePage;
+               }
+               return null;
+       }
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public <T extends DocumentItem> T newItem(Class<T> cls, String... options)
+                       throws Exception {
+               if (cls == TextItem.class)
+                       return (T)new TextItemImpl();
+               if (cls == URLItem.class)
+                       return (T)new URLItemImpl();
+               return null;
+       }       
+       
+       public Table nextTable(boolean id) throws Exception {
+               if (currentTable!= null) {
+                       closeTable();
+                       currentTable = new PDFTable(currentTable);
+                       return currentTable;    
+               } else {
+                       return newTable();
+               }
+
+       }
+       
+       private void closeTable() throws Exception {
+               if (currentTable != null && currentTable.currentLine > 0) {
+                       currentTable.setLinesVisible(false);
+                       currentTable.setHeaderVisible(false);
+                       currentTable.writeLine("");
+               }
+       }
+       
+       
+       public Table newTable() throws Exception {
+               closeTable();
+               currentTable = new PDFTable(this,contentStream);
+               return currentTable;
+       }
+       
+       
+       Table getCurrentTable() {
+               return currentTable;
+       }
+       
+       TableOfContents getOrCreateToc() throws Exception{
+               if (toc == null)
+                       toc = new PDFTocElement(this);
+               return toc;
+       }
+       
+       
+
+
+}