--- /dev/null
+package org.simantics.document.linking.report.html;\r
+\r
+import org.simantics.document.linking.report.DocumentElement;\r
+import org.simantics.document.linking.report.TableOfContents;\r
+\r
+\r
+public class HTMLTocElement extends HTMLStreamElement implements TableOfContents {\r
+ \r
+ \r
+\r
+ HTMLTable tocTable;\r
+ \r
+ public HTMLTocElement(HTMLDocument writer) throws Exception{\r
+ super(writer);\r
+ this.os.println("<h2>Table of Contents</h2>");\r
+ tocTable = new HTMLTable(writer, os, false);\r
+ tocTable.setHeaderVisible(false);\r
+ tocTable.setLinesVisible(false);\r
+ tocTable.addColumn("Name", 1.0);\r
+ }\r
+ \r
+ @Override\r
+ public void addTocElement(String label, DocumentElement element) throws Exception{\r
+ HTMLElement e = (HTMLElement)element;\r
+ if (e.getId() == null)\r
+ throw new IllegalArgumentException("Element has no id " + element);\r
+ //os.println("<a href=\"#" + e.getId() + "\">" + label + "</a><br>");\r
+ tocTable.writeRow("<a href=\"#" + e.getId() + "\">" + label + "</a><br>");\r
+ }\r
+ \r
+ public void close() throws Exception{\r
+ tocTable.endTable();\r
+ os.print("<br>");\r
+ super.close();\r
+ }\r
+ \r
+ @Override\r
+ public String getId() {\r
+ return "toc";\r
+ }\r
+\r
+}\r